web-dev-qa-db-fra.com

Erreur lors de la compilation de CUDA à partir d'une invite de commande

J'essaie de compiler un programme de test cuda sur Windows 7 via une invite de commande, Je suis cette commande:

nvcc test.cu

Mais tout ce que j'ai, c'est cette erreur:

nvcc fatal : Cannot find compiler 'cl.exe' in PATH

Quelle peut être la cause de cette erreur?

31
Imperian

Vous devrez ajouter le dossier contenant le fichier "cl.exe" à la variable d’environnement de votre chemin. Par exemple: 

C:\Program Files\Microsoft Visual Studio 10.0\VC\bin

Modifier : OK, allez dans Poste de travail -> Propriétés -> Paramètres système avancés -> Variables d’environnement. Ici, cherchez "CHEMIN" dans la liste, et ajoutez le chemin ci-dessus (ou l’emplacement de votre fichier cl.exe).

35
Tudor

Résolvez ce problème en ajoutant ces options à nvcc

nvcc x.cu ...   -ccbin "D:\Program Files\Microsoft Visual Studio 11.0\VC\bin"

par exemple, mon compilateur est VS2012. et cl.exe est dans ce répertoire

15
Prof. Hell

cl.exe est le compilateur C/C++ de Microsoft. Le problème est donc que vous n'avez pas installé où la ligne de commande peut le trouver.

3
Chris Dodd

nvcc n'est qu'une interface pour la partie du programme spécifique à CUDA. Il doit appeler un compilateur complet pour terminer le travail. Dans ce cas, le compilateur Visual Studio 'cl.exe' est introuvable. 

Vérifiez les chemins, la documentation nvcc, etc.

1
Steve Fallows

Je vois qu'il s'agit d'une vieille question, mais j'ai récemment eu cette erreur sur mon Visual Studio 2012 lorsque j'ai essayé de construire mon projet CUDA. Apparemment, j'avais changé mon projet CUDA pour le pack de novembre 2012, pour le ramener à la v110, qui est généralement corrigé par défaut de cette erreur. 

Dans Visual Studio, cliquez avec le bouton gauche de la souris sur le projet CUDA, -> propriétés -> Propriétés de configuration-> Général -> jeu d'outils Plate-forme, puis choisissez: Visual Studio 2012 (v110).

Je pourrais probablement le faire fonctionner avec le pack de novembre 2012, mais le code CUDA n'utilise aucune des fonctions supplémentaires de ce pack, donc ce n'est pas nécessaire. (Ce pack contient les modèles variadiques pour C++ 11.)

0
Donna