How to get VS 2010 to recognize certain CUDA functions

点点圈 提交于 2019-11-26 17:48:31

问题


At the moment CUDA already recognizes a key CUDA C/C++ function such as cudaMalloc, cudaFree, cudaEventCreate, etc.

It also recognizes certain types like dim3 and cudaEvent_t.

However, it doesn't recognize other functions and types such as the texture template, the __syncthreads functions, or the atomicCAS function.

Everything compiles just fine, but I'm tired of seeing red underlinings all over the place and I want to the see the example parameters displayed when you type in any recognizable function.

How do I get VS to catch these functions?


回答1:


You could create a dummy #include file of the following form:

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

This should hide the fake prototypes from the CUDA and Visual C++ compilers, but still make them visible to IntelliSense.

Source for __INTELLISENSE__ macro: http://blogs.msdn.com/b/vcblog/archive/2011/03/29/10146895.aspx




回答2:


You need to add CUDA-specific keywords like __syncthreads to the usertype.dat file for visual studio. An example usertype.dat file is included with the NVIDIA CUDA SDK. You also need to make sure that visual studio recognizes .cu files as c/c++ files as described in this post:

Note however that where that post uses $(CUDA_INC_PATH), with recent versions of CUDA you should use $(CUDA_PATH)/include.

Also, I would recommend Visual Assist X -- not free, but worth the money -- to improve intellisense. It works well with CUDA if you follow these instructions:

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

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



来源:https://stackoverflow.com/questions/6180555/how-to-get-vs-2010-to-recognize-certain-cuda-functions

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!