0
我正在尝试在CUDA中实现矩阵乘积: 第一个矩阵是3D矩阵(N,M,Z),第二个矩阵是2D矩阵(M,L)。 我看不出这个乘法的代码有什么问题。 有人可以帮我解决这个问题吗? 谢谢CUDA中的3D矩阵乘法
这里是我的内核:
__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];
}
}
究竟是什么问题?将内核命名为“matrixMult”而不是“matrixAdd”会不会更好? – Stefan 2013-04-23 10:02:55
您正试图计算超矩阵产品?或者是其他东西? – talonmies 2013-04-23 10:06:37
你好,我的isssue是获得我的结果的最快方法。我正在尝试运行此产品的并发计算。我对我的索引有疑问。我认为C(i,j,t)= sum i = 1到n(a(r + it)* B(i,t)...前面的索引给出了一些奇怪的结果。 – ALFRAM 2013-04-23 10:11:52