printf внутри функции CUDA __global__

В настоящее время я пишу матричное умножение на графическом процессоре и хотел бы отладить свой код, но поскольку я не могу использовать 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 тем, чем я думаю, и посмотреть, действительно ли эта функция вызывается.

Ответы на вопрос(4)

Ваш ответ на вопрос