printf dentro da função CUDA __global__
Atualmente, estou escrevendo uma multiplicação de matrizes em uma GPU e gostaria de depurar meu código, mas como não consigo usar printf dentro de uma função de dispositivo, há algo mais que posso fazer para ver o que está acontecendo dentro dessa função. Esta é minha função atual:
__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;
}
Eu adoraria saber se Ad e Bd é o que eu acho que é, e ver se essa função está realmente sendo chamada.