我的问题与这个很相似:链接。我运行了最简单的CUDA程序,但是内核没有启动。然而,我确定我的CUDA安装没问题,因为我可以运行由别人编写的包含多个文件的复杂CUDA项目,而且没有任何问题。在这些项目中,编译和链接都是通过makefile进行的,并使用了许多标志。我认为问题在于正确的编译标志。我只是用像这样的命令:
程序编译正确,当我添加cudaMemcpy()操作时,它没有返回任何错误。为什么内核无法启动?
nvcc -arch=sm_20 -lcudart test.cu
来编译这样一个程序(要在Linux机器上运行)。 __global__ void myKernel()
{
cuPrintf("Hello, world from the device!\n");
}
int main()
{
cudaPrintfInit();
myKernel<<<1,10>>>();
cudaPrintfDisplay(stdout, true);
cudaPrintfEnd();
}
程序编译正确,当我添加cudaMemcpy()操作时,它没有返回任何错误。为什么内核无法启动?
printf
。并且您可能希望进行一些错误检查,以查看是否从调用中获得任何错误消息。 - Bart