10

我正在尝试将 CUDA 文件添加到我现有的 C++ Visual Studio 项目中。我安装了 CUDA 5.0 SDK,创建了一个新的 .cu 文件,并在 CUDA 文件属性中将其项目类型设置为 CUDA/C++。但看起来它只是没有编译给出错误,表明编译器无法识别 CUDA 关键字。我得到的错误之一是:

错误 C2065:“threadIdx”:未声明的标识符

有什么建议么?

4

4 回答 4

7

我发现最好的方法是在现有的 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 命令!)

于 2017-09-05T08:10:41.367 回答
6

我目前无法全部完成,但我认为这些步骤是必要的:

  1. 在项目资源管理器构建中右键单击您的项目...(自定义?)[我的版本是德语。我无法准确说出关键字,但它与“构建...”有关。您需要在此处检查“CUDA 5.0”。
  2. 在编译器选项(项目属性)的“常规”选项卡中为 Cuda 设置“附加包含目录”。
  3. 将 cuda libfile 添加到链接器“输入”选项卡中的“附加依赖项”。
  4. 将文件标记为 Cuda 文件(您已经完成了)。
于 2013-07-18T04:32:41.043 回答
0

您必须为 .cu 文件选择正确的编译器

您是否遵循任何有关如何在 Visual Studio 上设置它的教程?

http://blog.norture.com/2012/10/gpu-parallel-programming-in-vs2012-with-nvidia-cuda/

于 2013-07-18T04:07:31.773 回答
0

这个视频可能会有所帮助。

该视频来自 CoffeeBeforeArch YouTube 频道。
他经历了每一步:

  1. 创建一个空的 C 项目。
  2. 在构建依赖项中进行更改。
  3. 在解决方案属性的链接器部分添加某些库。
于 2021-01-16T11:12:39.807 回答