J'ai un échantillon "Hello, World!" code du net et je veux l'exécuter sur le GPU sur le serveur de mon université. Quand je tape "gcc main.c", il répond:
CL/cl.h: aucun fichier ou répertoire de ce type
Que devrais-je faire? Comment puis-je avoir ce fichier d'en-tête?
Assurez-vous que la boîte à outils appropriée est installée.
Cela dépend de ce que vous prévoyez d'exécuter votre code. Si vous avez une carte NVidia, vous devez télécharger et installer CUDA-toolkit qui contient également les binaires et les bibliothèques nécessaires pour opencl.
Utilisez-vous Linux? Si vous pensez que vous avez déjà installé OpenCL, il se peut qu'il se trouve à un emplacement différent du standard/usr/include. Tapez ce qui suit et voyez quels résultats vous obtenez:
find / -iname cl.h 2>/dev/null
Sur mon ordinateur portable par exemple, l'en-tête se trouve à /usr/local/cuda-5.5/include
. Si c'est le cas si votre fichier d'en-tête se trouve à un emplacement différent, il vous suffit de spécifier le chemin lors de la complication
g++ -I/usr/local/cuda-5.5/include main.c -lOpenCL
Vous pouvez également créer un lien symbolique à partir du chemin d'accès vers /usr/include
:
ln -s /usr/local/cuda-5.5/include/CL /usr/include
Utilisez-vous bunt ou Debian distro? Ensuite, vous pouvez utiliser ce package pour résoudre le problème avec le fichier d'en-tête manquant:
apt-get install opencl-headers
Vous devez installer la bibliothèque opencl
pour résoudre les problèmes de liaison en utilisant ce package Debian et bunt :
apt-get install ocl-icd-libopencl1
Vous pouvez également utiliser ces bibliothèques non libres : nvidia-libopencl1
(Debian) ou nvidia-libopencl1-xx
(Ubuntu).