2010-09-23 18 views
23

Domanda diretta: Come posso creare un semplice progetto CUDA Hello World all'interno di Visual Studio 2010?Come si avvia un'applicazione CUDA in Visual Studio 2010?

Sfondo: Ho scritto i kernel CUDA. Sono intimamente familiare con i file .vcproj di Visual Studio 2005, ottimizzato a mano. In VS 2005, se voglio creare un kernel CUDA, aggiungo una regola di compilazione personalizzata e poi definisco esplicitamente la chiamata nvcc per creare i file.

Sono migrato su Win 7 e VS 2010 perché voglio davvero provare nSight. Ho installato nSight 1.5. Ma è qui che sono completamente perso. Se procedo come prima, nvcc segnala che supporta solo msvc 8.0 & 9.0. Ma il sito afferma chiaramente che supporta VS 2010.

Ho letto da qualche altra parte che ho bisogno di avere VS 2008 (msvc 9.0) anche installato - la mia parola. Fare così ora.

Ma suppongo che almeno una parte dei miei problemi derivino dalle specifiche dello strumento di creazione personalizzata per uso domestico. Severalwebsites parlare di aggiungere un file * .rules alla build, ma ho capito che questo è applicabile solo a VS 2008. Sotto "Build Customizations" vedo CUDA 3.1 e 3.2, ma quando aggiungo i kernel al progetto non sono costruito Another website proclama che la chiave è composta da tre file: Cuda.props Cuda.xml Cuda.targets, ma non dice come o dove aggiungere questi file - o meglio scommetto che semplicemente non capisco il note a cui si fa riferimento nel sito web.

Così qualcuno sa come creare un semplice progetto in VS 2010, che costruisce un kernel CUDA - utilizzando la configurazione nSight 1.5 o il file NvCudaRuntimeApi.v3.2.rules che fornito con il CUDA 3.2 RC?

Grazie in anticipo! Offrirei una taglia, ma ho solo 65 punti in totale.

+0

Commento piuttosto che risposta poiché non so se questo sarà di aiuto. Potresti trovare questo link informativo: http://forums.nvidia.com/index.php?showtopic=161096 –

+0

Avevo visto questo, ma ero titubante nell'applicare la patch a nSight 1.5 poiché questa patch era stata aggiornata l'ultima volta a maggio 2010 Qualcuno l'ha usato sul nuovissimo RC? –

risposta

45

CUDA Toolkit 4.0 e versioni successive

Il file di personalizzazioni build (installato nella directory Program Files\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations) "insegna" Visual Studio come compilare e collegare tutti i file .CU nel progetto nella vostra applicazione. Se si sceglie di saltare l'installazione delle personalizzazioni o se è stato installato VS2010 dopo CUDA, è possibile aggiungerle in un secondo momento seguendo le istruzioni in Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\extras\visual_studio_integration.

  • Creare un nuovo progetto utilizzando le procedure guidate standard di MS (ad esempio, un progetto di console vuoto)
  • Implementare il vostro ospite del codice (di serie) in file .c o cpp
  • Aggiungi NVIDIA costruire personalizzazione (tasto destro del mouse sul progetto, personalizzazioni Costruire, spuntare la casella relativa CUDA)
  • vedi nota 1 se si utilizza CUDA 4.0
  • implementare il wrapper e noccioli in file .CU
  • Se y ou aggiunto .cu file davanti alle personalizzazioni di build, allora è necessario impostare il tipo di file .cu per CUDA C/C++ (tasto destro del mouse sul file, Proprietà, impostare Articolo Tipo)
  • aggiungere la libreria di runtime CUDA (tasto destro del mouse sul progetto e scegliere Proprietà , poi nel Linker -> ingresso aggiungere cudart.lib alle dipendenze aggiuntive)
  • poi basta costruire il vostro progetto ei file .CU saranno compilati a obj e ha aggiunto al collegamento automaticamente

Per inciso vorrei sostenere evitando cutil se possibile, invece rotolare il proprio controllo. Cutil non è supportato da NVIDIA, è solo usato per cercare di mantenere gli esempi nell'SDK incentrati sul programma effettivo e sulla progettazione dell'algoritmo ed evitare di ripetere le stesse cose in ogni esempio (ad esempio l'analisi della riga di comando). Se scrivi il tuo, avrai un controllo molto migliore e saprai cosa sta succedendo. Ad esempio, il wrapper cutilSafeCall chiama exit() se la funzione non riesce: un'applicazione reale (al contrario di un campione) probabilmente dovrebbe gestire l'errore in modo più elegante!


NOTA

  1. Per CUDA 4.0 solo potrebbe essere necessario applicare this fix alle personalizzazioni di compilazione. Questa patch risolve il seguente messaggio:

Il risultato "" di valutazione del valore "$ (CudaBuildTasksPath)" del "dell'attributo AssemblyFile" nell'elemento non è valido

7

Questa risposta vale per CUDA 3.2, da 4,0 in poi CUDA supporta il compilatore VC 10 direttamente, vedere altre risposte per ulteriori informazioni

È necessario sia VS 2008 o 6.1 di Windows SDK installato. Questo perché NSight 1.5 RC o CUDA 3.2 SDK utilizza il compilatore VC 9 sotto il cofano. Ho funzionato con successo con 2008 installato e mi è stato detto che dovrebbe funzionare con l'SDK ma non ho provato.

Con NSight 1.5 e/o CUDA 3.2 SDK non è necessario utilizzare regole di compilazione personalizzate. Sono stato lì ed è doloroso. Con le ultime versioni tutto questo va via:

  • Crea il tuo progetto VC++.
  • Aggiungere un file .CU ad esso.
  • Selezionare il file di progetto in Solution Explorer.
  • Apri progetto | Crea personalizzazioni ...
  • Controllare la personalizzazione "CUDA 3.2 (.targets, .props)".
  • Selezionare un file .CU nel progetto e premere Alt-Invio per mostrare le sue proprietà.
  • Assicuratevi che sia tipo di elemento è impostato su "CUDA C/C++"

Si deve solo costruire. Fammi sapere se questo ti aiuta e se incontri problemi come questo viene dalla memoria.

La buona notizia che ottenere CUDA con VS 2010 è diventato molto più semplice.

Ade

BTW: io aggiornare il mio post sul blog.

+0

Accetto la tua risposta, ma dato che ho temporaneamente regredito a VS 2008 non ho avuto la possibilità di confermare la tua risposta. Lo farò durante il weekend! Grazie mille! –

+0

Ho fatto la stessa cosa e sono tornato a VS 2010 poche settimane fa (per GTC). Dovrebbe funzionare fammi sapere se hai problemi. –

+0

Queste informazioni non sono più applicabili, CUDA 4.0 e versioni successive supportano VS2010 in modo nativo (ad esempio, non è più necessario VS2008). – Tom

7

Un'altra Buon tutorial qui:

http://www.stevenmarkford.com/installing-nvidia-cuda-with-visual-studio-2010/

se si ottiene un errore di '<' notare che questo passo (da una risposta precedente):

Se sono stati aggiunti file .cu prima delle personalizzazioni di build, allora è necessario impostare il tipo di file .CU a CUDA C/C++ (tasto destro del mouse sul file, Proprietà, impostare il tipo di articolo)

Ma se segui i loro passi, dovrebbe funzionare!

+0

Il collegamento è interrotto. Ecco [un archivio da WayBackMachine] (https://web.archive.org/web/20160324200520/http://www.stevenmarkford.com/installing-nvidia-cuda-with-visual-studio-2010/) –