Question

Question directe: Comment puis-je créer un projet simple bonjour monde CUDA au sein visual studio 2010

Contexte: J'ai écrit noyaux CUDA. Je suis intimement familier avec les fichiers .vcproj à partir de Visual Studio 2005 - peaufiné plusieurs à la main. Dans VS 2005, si je veux construire un noyau CUDA, j'ajoute une règle de génération personnalisée et définir explicitement l'appel nvcc pour créer les fichiers.

J'ai migré vers Windows 7 et VS 2010 parce que je veux vraiment essayer nSight. J'ai nSight 1.5 installé. Mais c'est là où je suis totalement perdu. Si je procède comme avant, les rapports de FPUNV qu'il ne supporte que Msvc 8,0 et 9,0. Mais le site indique clairement qu'il prend en charge VS 2010.

Je lis quelque part ailleurs que je dois avoir VS 2008 (msvc 9.0) a également installé - ma parole. Faire maintenant.

Mais je devine que au moins une partie de mes problèmes découlent des spécifications de l'outil de construction personnalisés Homegrown. Plusieurs websites parler de l'ajout d'un * .rules fichier à la construction, mais je l'ai recueilli que ce n'est applicable à VS 2008. Sous la rubrique « construire Personnalisations » Je vois CUDA 3.1 et 3.2, mais quand j'ajouter les noyaux au projet, ils ne sont pas construits. Une autre site clame que la clé est de trois fichiers: Cuda.props Cuda.xml Cuda.targets , mais il ne dit pas comment ou où ajouter ces fichiers - ou plutôt je vais parie que je ne comprends pas les notes référencées sur le site.

Alors Quelqu'un sait comment créer un projet simple dans VS 2010 qui construit un noyau CUDA - en utilisant soit la configuration nSight 1.5 ou le fichier NvCudaRuntimeApi.v3.2.rules qui est livré avec le CUDA 3.2 RC?

Merci d'avance! J'offre une prime, mais je n'ai 65 points au total.

Était-ce utile?

La solution

CUDA TROUSSE 4.0 et versions ultérieures

La construction fichier customisations (installé dans le répertoire Program Files\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations) « enseigne » Visual Studio comment compiler et lier des fichiers .cu dans votre projet dans votre application. Si vous avez choisi d'ignorer l'installation des customisations, ou si vous avez installé VS2010 après CUDA, vous pouvez les ajouter ultérieurement en suivant les instructions Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\extras\visual_studio_integration.

  • Créer un nouveau projet à l'aide des assistants standards de MS (par exemple, un projet de console vide)
  • Mettre en œuvre votre code hôte (série) dans les fichiers .c ou .cpp
  • Ajoutez la personnalisation de construction NVIDIA (faites un clic droit sur le projet, personnalisations Build , cochez la case CUDA correspondante)
  • Voir la note 1 si vous utilisez CUDA 4.0
  • Mettre en oeuvre vos emballages et les noyaux dans les fichiers .cu
  • Si vous avez ajouté des fichiers .cu avant que les customisations de construction, alors vous devrez définir le type des fichiers .cu à CUDA C/C++ (clic droit sur le fichier, Propriétés , set article Type )
  • Ajoutez la bibliothèque d'exécution CUDA (clic droit sur le projet et choisissez Propriétés , puis dans Linker -> Entrée ajouter cudart.lib à Dépendances supplémentaires )
  • Ensuite, il suffit de construire votre projet et les fichiers .cu seront compilés à .obj et ajoutés au lien automatiquement

Soit dit en passant, je préconiserait éviter cutil si possible, à la place rouler votre propre vérification. Cutil est pas pris en charge par NVIDIA, il est juste utilisé pour essayer de garder les exemples dans le SDK mis l'accent sur la conception du programme réel et de l'algorithme et éviter de répéter les mêmes choses dans tous les exemples (par exemple d'analyse de ligne de commande). Si vous écrivez votre propre alors vous aurez un bien meilleur contrôle et vous savez ce qui se passe. Par exemple, l'emballage cutilSafeCall appelle exit() si la fonction échoue - une application réelle (par opposition à un échantillon) devrait probablement gérer l'échec plus élégante


NOTE

  1. Pour CUDA 4.0 seulement vous devrez peut-être appliquer ce correctif la customisations de construction. Ce patch corrige le message suivant:
  

Le résultat « » d'évaluation de la valeur « $ (CudaBuildTasksPath) » du « attribut AssemblyFile » dans l'élément est non valide

Autres conseils

Cette réponse s'applique à CUDA 3.2, de 4,0 partir CUDA prend en charge le compilateur VC 10 directement, voir d'autres réponses pour plus d'informations

Vous devez soit VS 2008 ou le 6.1 SDK Windows installé. En effet, nSight 1.5 RC ou l'utilisation du SDK CUDA 3.2 du compilateur VC 9 sous le capot. J'ai ce travail avec succès 2008 installé et me dit qu'il devrait travailler avec le SDK, mais n'a pas essayé.

Avec nSight 1,5 et / ou le kit de développement CUDA 3.2, vous ne devriez pas avoir à muck avec des règles de construction personnalisée. Je suis là et il est douloureux. Avec la dernière builds tout ce qui va loin:

  • Créer votre projet VC ++.
  • Ajouter un fichier .cu à lui.
  • Sélectionnez le fichier de projet dans la solution Explorer.
  • Ouvrir un projet | Personnalisations Build ...
  • Cochez la case « CUDA 3.2 (.targets, .props) » personnalisation.
  • Sélectionnez un fichier .CU dans votre projet et appuyez sur Alt-Entrée pour afficher les propriétés de il.
  • Assurez-vous que son type d'objet est réglé sur "CUDA C / C ++"

Il faut juste construire. Faites-moi savoir si cela aide et si vous avez un problème car cela est de la mémoire.

Les bonnes nouvelles qu'il se CUDA travailler avec VS 2010 juste obtenu beaucoup plus facile.

Ade

BTW. Je vais mettre à jour mon blog

Un autre bon tutoriel ici:

http://www.stevenmarkford.com/installing-nvidia-cuda- / avec-studio-visuel 2010

si vous obtenez une erreur sur « < » noter que cette étape (à partir d'une réponse précédente):

Si vous avez ajouté .cu fichiers avant que les customisations de construction, alors vous aurez besoin de définir le type des fichiers .cu à CUDA C / C ++ (clic droit sur le fichier, Propriétés, définissez Type d'article)

Mais si vous suivez les étapes, il devrait fonctionner!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top