Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
cudaPrintfInit和cudaPrintfDisplay失败_C_Cuda_Printf - Fatal编程技术网

cudaPrintfInit和cudaPrintfDisplay失败

cudaPrintfInit和cudaPrintfDisplay失败,c,cuda,printf,C,Cuda,Printf,我正在使用GeForce 210、计算能力1.2和CUDA 6.5 我希望打印CUDA内核中的浮点值,我已经将“cuPrintf.cu”和“cuPrintf.cuh”包含在我的项目目录中,并将它们包含在我的代码中。它编译得很好,运行时没有错误,但不打印任何内容。这就是我编译代码的方式: $ nvcc -arch=compute_12 test.cu 我读了类似的内容,然后用cudaPrintfInit()和cudaPrintfDisplay()包围了我的内核 编译和运行时,输出为: cudaP

我正在使用GeForce 210、计算能力1.2和CUDA 6.5

我希望打印CUDA内核中的浮点值,我已经将“cuPrintf.cu”和“cuPrintf.cuh”包含在我的项目目录中,并将它们包含在我的代码中。它编译得很好,运行时没有错误,但不打印任何内容。这就是我编译代码的方式:

$ nvcc -arch=compute_12 test.cu
我读了类似的内容,然后用cudaPrintfInit()和cudaPrintfDisplay()包围了我的内核

编译和运行时,输出为:

cudaPrintfInit failed
cudaPrintfDisplay failed
我猜我的编译方式可能有问题,或者cuPrintf不允许打印float?根据所附的类似链接,问题在于每个块的线程数超过了最大值,但我的块大小是16 x 16(所以这应该不是问题)。cudaPrintfInit和cudaPrintfDisplay显示失败


我还运行了CUDA安装附带的CUDA示例代码“simplePrintf”。那很好用。救命啊

格式化输出仅受计算能力为2.x及更高版本的设备支持

intprintf(常量字符*格式[,arg,…])

将格式化输出从内核打印到主机端输出流

参考:CUDA C编程指南2015,第119页


请参阅此链接:

我可以通过运行“cuda memcheck”来解决此问题。cudaPrintf不工作,因为内核中正在生成“nan”值。某些计算中的分母变为零,当我避免这些情况时,cudaPrintfInit和cudaPrintfDisplay开始工作。

您的问题中缺少块数,即
网格值。仅猜测是一个,因此j将始终在范围
[0..15]
内,因此您将永远不会打印该值。@pQB这并不能解释为什么打印
cudaPrintfInit失败
消息。对于此类问题,请提供。提供一个简短完整的代码,说明您正在做什么。此外,请确保您没有执行任何操作,因为总网格为256 x 256,因此16 x 16个块将覆盖整个网格。无论如何,我可以解决这个问题,我在下面添加了另一个答案。
__global__ void test_kernel (float val){
    i = blockIdx.x*BLOCK_X + threadIdx.x;
    j = blockIdx.y*BLOCK_Y + threadIdx.y;
    if( j == 20 )
        cuPrintf("%f is value, %d is j", val, j);
}
cudaPrintfInit failed
cudaPrintfDisplay failed