Come ottenere VS 2010 per riconoscere alcune funzioni CUDA

Al momento CUDA riconosce già una funzione CUDA C / C ++ cudaMalloc come cudaMalloc , cudaFree , cudaEventCreate , ecc.

Riconosce anche alcuni tipi come dim3 e cudaEvent_t .

Tuttavia, non riconosce altre funzioni e tipi come il modello di trama, le funzioni __syncthreads o la funzione atomicCAS .

Tutto si compila bene, ma sono stanco di vedere i sottosquadri rossi dappertutto e voglio vedere i parametri di esempio visualizzati quando si digita una funzione riconoscibile.

Come ottengo VS per prendere queste funzioni?

Puoi creare un file #include fittizio del seguente modulo:

 #pragma once #ifdef __INTELLISENSE__ void __syncthreads(); ... #endif 

Questo dovrebbe hide i falsi prototipi dai compilatori CUDA e Visual C ++, ma renderli comunque visibili a IntelliSense.

Fonte per la macro __INTELLISENSE__ : http://blogs.msdn.com/b/vcblog/archive/2011/03/29/10146895.aspx

Devi aggiungere parole chiave specifiche per CUDA come __syncthreads al file usertype.dat per visual studio. Un esempio di file usertype.dat è incluso con NVIDIA CUDA SDK. È inoltre necessario assicurarsi che visual studio riconosca i file .cu come file c / c ++ come descritto in questo post :

Nota comunque che dove quel post usa $(CUDA_INC_PATH) , con le versioni recenti di CUDA dovresti usare $(CUDA_PATH)/include .

Inoltre, consiglierei Visual Assist X – non è gratuito, ma vale i soldi – per migliorare l’intellisense. Funziona bene con CUDA se segui queste istruzioni:

http://www.wholetomato.com/forum/topic.asp?TOPIC_ID=5481

http://forums.nvidia.com/index.php?showtopic=53690