Question directe: Comment puis-je créer un simple projet CUDA Hello World dans Visual Studio 2010?
Contexte: J'ai écrit des noyaux CUDA. Je suis intimement familier avec les fichiers .vcproj de Visual Studio 2005 - modifiés plusieurs à la main. Dans VS 2005, si je veux construire un noyau CUDA, j'ajoute une règle de construction personnalisée, puis je définis explicitement l'appel nvcc pour construire les fichiers.
J'ai migré vers Win 7 et VS 2010 parce que je veux vraiment essayer nSight. J'ai installé nSight 1.5. Mais c'est là que je suis totalement perdu. Si je continue comme avant, nvcc rapporte qu'il ne prend en charge que msvc 8.0 et 9.0. Mais le site Web indique clairement qu'il prend en charge VS 2010.
J'ai lu ailleurs que j'avais besoin d'avoir VS 2008 (msvc 9.0) également installé - mon Word. Le faire maintenant.
Mais je suppose qu'au moins une partie de mes problèmes provient des spécifications de l'outil de construction personnalisé. Plusieurssites Web parler de l'ajout d'un fichier * .rules à la construction, mais j'ai compris que cela ne s'applique qu'à VS 2008. Sous "Personnaliser la construction", je vois CUDA 3.1 et 3.2, mais lorsque j'ajoute des noyaux au projet, ils ne sont pas construits. n autre site Web proclame que la clé est de trois fichiers: Cuda.props Cuda.xml Cuda.targets , mais ce n'est pas le cas dites comment ou où ajouter ces fichiers - ou plutôt je parie que je ne comprends tout simplement pas les notes référencées sur le site.
Donc quelqu'un sait-il comment créer un projet simple dans VS 2010 qui construit un noyau CUDA - en utilisant soit la configuration nSight 1.5 ou le NvCudaRuntimeApi.v3. 2. fichier de règles livré avec le CUDA 3.2 RC?
Merci d'avance! J'offrirais une prime, mais je n'ai que 65 points au total.
CUDA TOOLKIT 4.0 et versions ultérieures
Le fichier de personnalisation de construction (installé dans le répertoire Program Files\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations
) "Enseigne" à Visual Studio comment compiler et lier tous les fichiers .cu de votre projet dans votre application. Si vous avez choisi d'ignorer l'installation des personnalisations, ou si vous avez installé VS2010 après CUDA, vous pouvez les ajouter plus tard en suivant les instructions dans Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\extras\visual_studio_integration
.
.cu
Avant les personnalisations de construction, vous devrez définir le type des fichiers .cu
Sur CUDA C/C++
(Cliquez avec le bouton droit sur le fichier, Propriétés, définir Type d'élément)cudart.lib
Au Dépendances supplémentaires)Soit dit en passant, je recommanderais d'éviter le cutil si possible, à la place lancez votre propre vérification. Cutil n'est pas pris en charge par NVIDIA, il est juste utilisé pour essayer de garder les exemples du SDK axés sur la conception réelle du programme et de l'algorithme et éviter de répéter les mêmes choses dans chaque exemple (par exemple, l'analyse de la ligne de commande). Si vous écrivez le vôtre, vous aurez un bien meilleur contrôle et vous saurez ce qui se passe. Par exemple, le wrapper cutilSafeCall
appelle exit()
si la fonction échoue - une application réelle (par opposition à un exemple) devrait probablement gérer l'échec de manière plus élégante!
[~ # ~] note [~ # ~]
Le résultat "" de l'évaluation de la valeur "$ (CudaBuildTasksPath)" de l'attribut "AssemblyFile" dans l'élément n'est pas valide
Un autre bon tutoriel ici:
http://www.stevenmarkford.com/installing-nvidia-cuda-with-visual-studio-2010/
si vous obtenez une erreur sur "<", notez cette étape (à partir d'une réponse précédente):
Si vous avez ajouté des fichiers .cu avant les personnalisations de construction, vous devrez alors définir le type des fichiers .cu sur CUDA C/C++ (cliquez avec le bouton droit sur le fichier, Propriétés, définissez Type d'élément)
Mais si vous suivez leurs étapes, cela devrait fonctionner!
Cette réponse s'applique à CUDA 3.2, à partir de 4.0 CUDA prend en charge le VC 10 compilateur directement, voir les autres réponses pour plus d'informations
Vous devez installer VS 2008 ou le SDK Windows 6.1. C'est parce que NSight 1.5 RC ou le SDK CUDA 3.2 utilisent le compilateur VC 9 sous le capot. J'ai réussi à le faire avec 2008 installé et on m'a dit qu'il devrait fonctionner avec le SDK mais pas '' t essayé.
Avec NSight 1.5 et/ou le SDK CUDA 3.2, vous ne devriez pas avoir à vous soucier des règles de construction personnalisées. J'y suis allé et c'est douloureux. Avec les dernières versions, tout ce qui s'en va:
Il faut juste construire. Faites-moi savoir si cela aide et si vous rencontrez des problèmes car cela vient de la mémoire.
La bonne nouvelle, c'est que CUDA fonctionne avec VS 2010 est devenu beaucoup plus facile.
Ade
BTW: Je mettrai à jour mon article de blog.