我的問題非常像這樣one。我運行最簡單的CUDA程序,但內核不啓動。不過,我確信我的CUDA安裝是可以的,因爲我可以運行復雜的CUDA項目,這些項目由多個文件組成(我從其他人那裏獲得),沒有任何問題。在這些項目中,編譯和鏈接是通過帶有許多標誌的makefile來完成的。我認爲問題出在編譯時使用正確的標誌。我簡單地使用這樣的命令: nvcc -arch=sm_20 -lcudart test.cu
具有這樣的程序(在Linux機器上運行的):CUDA內核不啓動
__global__ void myKernel()
{
cuPrintf("Hello, world from the device!\n");
}
int main()
{
cudaPrintfInit();
myKernel<<<1,10>>>();
cudaPrintfDisplay(stdout, true);
cudaPrintfEnd();
}
程序正確編譯。當我添加cudaMemcpy()操作時,它不返回錯誤。任何有關爲什麼內核不能啓動的建議?
我相信對於計算能力的設備2。0或更高,你可以簡單地調用'printf'。你可能想要做一些錯誤檢查,看看你是否從你的調用中收到任何錯誤消息。 – Bart
另請參閱:http://stackoverflow.com/questions/6565759/cuda-cuprintf-causes-unspecified-launch-failure –
還要注意您鏈接到的問題中的第一條評論:http://stackoverflow.com/問題/ 9519272/cuda-kernel-not-launching - 你上面的代碼完全沒有錯誤檢查 - 這些函數返回一個原因的狀態,你知道。 –