我想使用ManagedCuda的ManagedCuda / CudaBlas为矩阵乘法实现性能优化的代码。
基本实现相对较快且可行:
handle.Gemm(Operation.NonTranspose, Operation.NonTranspose, N, N, N, alpha, d_A, N, d_B, N, beta, d_C, N);
我现在要使用张量核心(V100图形卡)->指定张量操作。
下面的纯Cuda代码(cublasGemmEx)可以完美地工作。如何直接在ManagedCuda中实现呢?
我已经尝试过“ GemmStridedBatched”,但这似乎不适用于大型矩阵。
cublasGemmEx(cublasHandle, CUBLAS_OP_N, CUBLAS_OP_N,
MATRIX_M, MATRIX_N, MATRIX_K,
&alpha,
a_fp16, CUDA_R_16F, MATRIX_M,
b_fp16, CUDA_R_16F, MATRIX_K,
&beta,
c_cublas, CUDA_R_32F, MATRIX_M,
CUDA_R_32F, CUBLAS_GEMM_DFALT_TENSOR_OP);