2010-05-03 15 views
2

Je cours Windows 7 Pro x64 sur un Core i5 avec un NVIDIA 3100m, qui est compatible CUDA.Pourquoi nvcc ne trouve-t-il pas mon installation Visual C++?

J'ai essayé d'installer à la fois les toolkits CUDA 32 bits et 64 bits de NVIDIA, malheureusement avec l'un d'entre eux je ne peux rien compiler; nvcc dit "impossible de trouver une version cl prise en charge, seuls MSVC 8.0 et MSVC 9.0 sont supportés".

J'ai les compilateurs x86 et x86-64 installés via le Kit de développement Windows 7 (version du compilateur 15.00.30729.01 pour les deux arcs). Les deux compilateurs fonctionnent correctement. J'ai construit et testé le code C et C++ en les utilisant. J'ai essayé d'exécuter nvcc à partir de shells de commande configurés pour la compilation 32 bits et 64 bits, et en utilisant l'option de ligne de commande -ccbin pour nvcc pour pointer vers le répertoire d'installation de Visual C++.

Quelle est la bonne façon de gérer cette configuration? Y a-t-il un moyen pour que nvcc soit plus bavard sur ce qui se passe? Le drapeau -v n'est pas terrible utile. Idéalement, un moyen de montrer ce que c'est trouver par rapport à ce qu'il s'attend à trouver. Est-ce que cela fonctionnera mieux si j'installe Visual C++ Express à la place? Ou est seulement une version commerciale de VC++ pris en charge pour une utilisation avec CUDA?

Répondre

2

Il semble que vous n'ayez pas installé Visual Studio 2005 ou 2008, mais le numéro de version de votre compilateur indique qu'il s'agit de MSVC 9.0. Le moyen le plus simple de tout faire fonctionner est d'installer Visual Studiso et je crois qu'Express fonctionnera.

En outre, vous pouvez jeter un oeil à ce sujet sur Nvidia Forum

7

Inclure cette ligne

compilateur bindir = C: \ Program Files (x86) \ Microsoft Visual Studio 9.0 \ VC \ bin

dans

C: \ CUDA \ bin64 \ nvcc.profile

+0

Je n'ai pas ce répertoire (C: \ Program Files (x86) \ Microsoft Visual Studio 9.0 \ VC \ bin). Quel fichier recherche-t-il dans ce répertoire? – mcmillab

+0

CL.EXE Je crois – mcmillab

+0

Cela a fonctionné comme un charme! J'ai seulement 'C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ VC \ bin', mais cela a fonctionné aussi. – OptimusCrime

4

Avec CUDA v6.0, ayant une ancienne version de Visual Studio (j'utilise 2010) est toujours nécessaire, mais les autres solutions ne fonctionne pas pour moi.

Pour faire ce travail, ajoutez ce qui suit à votre nvcc.profile (C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v6.0/bin/nvcc.profile):

CUDA_NVCC_FLAGS += --compiler-bindir = "-IE:/PROGRA~2/MICROS~2.0/VC/bin" 

I J'ai aussi besoin de cet argument pour empêcher nvcc de trouver la version la plus récente (malheureusement incompatible) de cl.exe

1

J'essayais de faire fonctionner CUDA 6.5 avec VS 2010 express. Après la désinstallation de VS 2010 express, l'installation de Windows SDK 7.1 et la réinstallation de VS 2010 express, la définition de Windows SDK 7.1 comme jeu d'outils, etc. Rien n'a fonctionné. En fin de compte ce qui a fonctionné pour moi était d'ajouter ce qui suit à CUDA_NVCC_FLAGS:

--cl-version 2010 

Vous devrez peut-être ajouter:

--machine 32 

J'ai essayé les drapeaux appropriés dans la ligne de commande en premier.

This link was very helpful