问题描述
||
目前,CUDA已经识别出关键的CUDA C / C ++函数,例如
cudamalloc
,cudaFree
,cudaEventCreate
等。
它还可以识别某些类型,例如dim3
和cudaEvent_t
。
但是,它无法识别其他功能和类型,例如纹理模板,“ 5”功能或“ 6”功能。
一切编译都很好,但是我厌倦了到处都看到红色下划线,并且我想看看当您键入任何可识别的函数时显示的示例参数。
如何获得VS来捕获这些功能?
解决方法
您可以创建以下形式的虚拟#include文件:
#pragma once
#ifdef __INTELLISENSE__
void __syncthreads();
...
#endif
这应该将伪造的原型隐藏在CUDA和Visual C ++编译器中,但仍使它们对IntelliSense可见。
__INTELLISENSE__
宏的来源:http://blogs.msdn.com/b/vcblog/archive/2011/03/29/10146895.aspx
, 您需要将__syncthreads之类的CUDA特定关键字添加到Visual Studio的usertype.dat文件中。 NVIDIA CUDA SDK随附一个示例usertype.dat文件。您还需要确保Visual Studio如本文所述将.cu文件识别为c / c ++文件:
但是请注意,在该帖子使用ѭ9的情况下,对于CUDA的最新版本,您应该使用ѭ10。
另外,我建议使用Visual Assist X(不是免费的,但值得的)来改善智能感知。如果您遵循以下说明,它将与CUDA配合使用:
http://www.wholetomato.com/forum/topic.asp?TOPIC_ID=5481
http://forums.nvidia.com/index.php?showtopic=53690