我在我的電腦成功安裝CUDA 8.0,我可以在我的Ubuntu 16.10運行以下命令來查看其中的文件:致命錯誤:cuda.h:沒有這樣的文件或目錄
$ sudo find/-name nvcc
/usr/local/cuda-8.0/bin/nvcc
$ sudo find/-name cuda
/usr/local/cuda
/usr/local/cuda-8.0/targets/x86_64-linux/include/thrust/system/cuda
/usr/share/doc/cuda
/usr/include/nvidia-367/cuda
然後,我得到了下面的源代碼(has_cuda.c)檢查是否已安裝CUDA:
#include<cuda.h>
int main()
{
int deviceCount;
cudaError_t e = cudaGetDeviceCount(&deviceCount);
return e == cudaSuccess ? deviceCount : -1;
}
但運行此代碼返回我下面的錯誤:
$ gcc has_cuda.c
has_cuda.c:1:17: fatal error: cuda.h: No such file or directory
#include<cuda.h>
^
compilation terminated.
我找cuda.h在我的目錄,發現他們在以下地點:
$ sudo find/-name cuda.h
/usr/local/cuda-8.0/targets/x86_64-linux/include/cuda.h
/usr/include/nvidia-367/cuda/cuda.h
/usr/include/linux/cuda.h
/usr/src/linux-headers-4.8.0-22/include/linux/cuda.h
/usr/src/linux-headers-4.8.0-22/include/uapi/linux/cuda.h
/usr/src/linux-headers-4.8.0-32/include/linux/cuda.h
/usr/src/linux-headers-4.8.0-32/include/uapi/linux/cuda.h
我很菜鳥就這一點,所以,有什麼可怎麼回事?我是否應該輸出任何變量來指出cuda.h的位置?我怎樣才能做到這一點?
似乎值得強調的是這個答案最相關的一點是要重命名的源文件有'.cu'擴展,指示'nvcc'把它當作CUDA代碼。這將鏈接到相關的庫中,但它也將包括必要的頭文件,使頂層冗餘的'#include'(最好,詳見Robert Crovella的答案)。 –
tera