我的问题很像这个。我运行最简单的 CUDA 程序,但内核没有启动。但是,我确信我的 CUDA 安装没问题,因为我可以毫无问题地运行由多个文件(我从其他人那里获取)组成的复杂 CUDA 项目。在这些项目中,编译和链接是通过带有很多标志的 makefile 完成的。我认为问题在于编译时使用的正确标志。我只是使用这样的命令:
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() 操作时,它不会返回任何错误。关于内核为什么不启动的任何建议?