現在、CUDA で行列の積を実装しようとしています。最初の行列は 3D 行列 (N、M、Z) で、2 番目の行列は 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];
}
}