我正在尝试将 CUDA 文件添加到我现有的 C++ Visual Studio 项目中。我安装了 CUDA 5.0 SDK,创建了一个新的 .cu 文件,并在 CUDA 文件属性中将其项目类型设置为 CUDA/C++。但看起来它只是没有编译给出错误,表明编译器无法识别 CUDA 关键字。我得到的错误之一是:
错误 C2065:“threadIdx”:未声明的标识符
有什么建议么?
我正在尝试将 CUDA 文件添加到我现有的 C++ Visual Studio 项目中。我安装了 CUDA 5.0 SDK,创建了一个新的 .cu 文件,并在 CUDA 文件属性中将其项目类型设置为 CUDA/C++。但看起来它只是没有编译给出错误,表明编译器无法识别 CUDA 关键字。我得到的错误之一是:
错误 C2065:“threadIdx”:未声明的标识符
有什么建议么?
我发现最好的方法是在现有的 CPU 项目中执行以下操作
1) 构建依赖 -> 构建自定义
单击 Cuda 复选框
2) 使用向导创建一个新的简单 CUDA 项目(无论如何,您可能想首先测试您的 CUDA 项目构建是否正常),将两个项目加载到 IDE 中,然后比较两个项目之间的设置,您需要在项目中添加以下内容设置
$(CudaToolkitLibDir) 到其他库设置(链接器选项卡) $(CudaToolkitIncludeDir) 到其他包含目录(c++ 选项卡)
cudart.lib 到其他依赖项(链接器选项卡)
然后比较 CUDA 选项卡
我发现出于某种原因已为目标机器架构预先选择了 32 位,因此我将其更改为 64 位。
在此之后,我在预处理器定义中添加了一个定义 _CUDA_CODE_COMPILE_ 以在 CUDA 或 CPU 编译之间切换。
#ifdef _CUDA_CODE_COMPILE_
cudaCodeFunction();
#else
cpuCodeFunction();
#endif
不理想但很有必要,因为似乎没有设置表明已安装 NVCC 的定义(除了执行 shell 命令!)
我目前无法全部完成,但我认为这些步骤是必要的:
您必须为 .cu 文件选择正确的编译器
您是否遵循任何有关如何在 Visual Studio 上设置它的教程?
http://blog.norture.com/2012/10/gpu-parallel-programming-in-vs2012-with-nvidia-cuda/
这个视频可能会有所帮助。
该视频来自 CoffeeBeforeArch YouTube 频道。
他经历了每一步: