VS使用CUDA对于cooperative_groups.h文件无法识别原由

本人在使用VS2019调用CUDA给予的样例代码时,产生了以下错误。

VS使用CUDA对于cooperative_groups.h文件无法识别原由_第1张图片

对于命名空间cooperative_groups无法识别,查找cooperative_groups.h发现其内容因VSIntellisense无法识别其

__CUDACC__导致主文件显示错误。VS使用CUDA对于cooperative_groups.h文件无法识别原由_第2张图片

在官网文档中对于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__
在命令行上指定--expt-extended-lambda标志时定义。 有关更多详细信息,请参阅“CUDA C编程指南”。
__CUDACC_VER_MAJOR__
使用nvcc的主要版本号定义。
__CUDACC_VER_MINOR__
使用nvcc的次要版本号定义。
__CUDACC_VER_BUILD__
使用nvcc的构建版本号定义。

因此对于为编译时VS是识别不出CUDA的宏定义的。

目前我在官网上还没找到具体的解决方案,总之程序可以运行只是识别不出来罢了。

你可能感兴趣的:(图像处理,CUDA)