本人在使用VS2019调用CUDA给予的样例代码时,产生了以下错误。
对于命名空间cooperative_groups无法识别,查找cooperative_groups.h发现其内容因VSIntellisense无法识别其
__CUDACC__导致主文件显示错误。
在官网文档中对于CUDA的运行方式做了如下阐述,CUDA应用程序的源文件由传统主机代码和针对设备(GPU)代码构成,CUDA将两种代码在编译时进行分离,使用主机编译器对主机代码编译,对于GPU代码使用NVIDIA专有编译器(一般为NVCC),后将CUDA代码嵌入进主机代码中。
NVCC编译器对CUDA源文件进行拆分,编译,预处理,合并,并可隐藏对开发人员编译的细节。接受一系列传统编译器的选项,例如宏定义和库路径。
nvcc预定义以下宏:
__NVCC__
在编译C / C ++ / CUDA源文件时定义。
__CUDACC__
在编译CUDA源文件时定义。
__CUDACC_RDC__
在可重定位设备代码模式下编译CUDA源文件时定义(请参阅NVCC选项以进行单独编译)。
__CUDACC_DEBUG__
在设备调试模式下编译CUDA源文件时定义(请参阅指定编译器/链接器行为的选项)。
__CUDACC_RELAXED_CONSTEXPR__
在命令行上指定--expt-relaxed-constexpr标志时定义。 有关更多详细信息,请参阅“CUDA C编程指南”。
__CUDACC_EXTENDED_LAMBDA__
在命令行上指定--ex