我目前正在尝试在 CUDA 中实现矩阵的产品:第一个矩阵是 3D 矩阵(N,M,Z),第二个是 2D 矩阵(M,L)。我看不出这个乘法的代码有什么问题。有人可以帮我解决这个问题吗?谢谢
这是我的内核:
__global__ void matrixMul(float * A, float * B, float * C,int N, int M, int Z, int L) {
int idx = blockIdx.x*blockDim.x + threadIdx.x;
int idy = blockIdx.y*blockDim.y + threadIdx.y;
for(int z=0; z<width; z++){
C[idx*width+idy] += A[idy + idx*width ]*B[idx*width+idy+z*width*height];
}
}