J'ai installé avec succès CUDA 8.0 dans mon PC et je peux voir ses fichiers en exécutant les commandes suivantes dans mon Ubuntu 16.10:Erreur fatale: cuda.h: Aucun fichier ou répertoire
$ 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
Puis, je me suis le code source suivant (has_cuda.c) pour vérifier si CUDA est installé:
#include<cuda.h>
int main()
{
int deviceCount;
cudaError_t e = cudaGetDeviceCount(&deviceCount);
return e == cudaSuccess ? deviceCount : -1;
}
Mais d'exécuter ce code me renvoie l'erreur suivante:
$ gcc has_cuda.c
has_cuda.c:1:17: fatal error: cuda.h: No such file or directory
#include<cuda.h>
^
compilation terminated.
j'ai cherché cuda.h dans mes répertoires et ont trouvé dans les endroits suivants:
$ 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
Je suis novice tout à fait à ce sujet, donc, ce qui peut se produire? devrais-je devoir exporter n'importe quelle variable pour indiquer où cuda.h est? Comment puis-je faire ceci?
Il semble intéressant de souligner que le point le plus pertinent de cette réponse est de renommer le fichier source pour avoir une extension '.cu', qui demande' nvcc' de le traiter comme du code CUDA. Ce lien sera dans les bibliothèques appropriées, mais il inclura également les fichiers d'en-tête nécessaires rendant le '#include' au plus redondant (au mieux, voir la réponse de Robert Crovella pour plus de détails). –
tera