我目前正在 GPU 上编写矩阵乘法并想调试我的代码,但是由于我不能在设备函数中使用 printf,所以我可以做些什么来查看该函数内部发生了什么。这是我当前的功能:
__global__ void MatrixMulKernel(Matrix Ad, Matrix Bd, Matrix Xd){
int tx = threadIdx.x;
int ty = threadIdx.y;
int bx = blockIdx.x;
int by = blockIdx.y;
float sum = 0;
for( int k = 0; k < Ad.width ; ++k){
float Melement = Ad.elements[ty * Ad.width + k];
float Nelement = Bd.elements[k * Bd.width + tx];
sum += Melement * Nelement;
}
Xd.elements[ty * Xd.width + tx] = sum;
}
我很想知道 Ad 和 Bd 是否是我认为的那样,并看看该函数是否真的被调用了。