0

我正在尝试在 VisualStudio 2010 中创建一个 Cuda 项目。我创建了一个简单的测试 .cu 文件,该文件接受一个数组并将其所有元素添加 1 并将结果发送回主机。

我已将 cudart.lib 文件添加到链接器。

在 .cu 代码中,我包含了#include cuda_runtime.h标题。

但是当我试图编译它时,它给出了两个错误。

错误 C2065:'threadIdx':未声明的标识符
错误 C2059:语法错误:'<'

安装 Nvidia Nsight Visual Studio 版本并将 .cu 文件的项目类型设置为 CUDA C/C++ 后,它开始给出两个额外的错误:

错误 D8003:缺少源文件名

错误 MSB3721:命令 ""C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\bin\nvcc.exe" -gencode=arch=compute_10,code=\"sm_10,compute_10\" --use- local-env --cl-version 2010 -ccbin "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin" -I"C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.2\C\common \inc" -I"C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.2\shared\inc" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include" -G -- keep-dir "Debug" -maxrregcount=0 --machine 32 --compile -g -Xcompiler "/EHsc /nologo /Od /Zi /MDd " -o "Debug\test.cu.obj" "\ucigrad.local\ Users\AGill\My Documents\Visual Studio 2010\Projects\cudatest\cudatest\test.cu"" 以代码 2 退出。

请帮助我如何解决它。我认为 VS2010 中的 nvcc 编译器可能存在一些问题,但我无法弄清楚。

4

4 回答 4

4

如果您像我一样对 IDE 错误(仍然让您的代码正常工作)感到恼火,请尝试在 SDK 的包含文件夹中进行纯文本搜索以查找(看似)未定义的符号,您会找到正确的标题立即包括在内。例如,“threadIdx”驻留在“device_launch_parameters.h”头文件中。

于 2013-04-06T19:03:53.810 回答
1

您收到的错误很可能表明您没有使用 NVCC 编译 CUDA 源代码。如果您在安装工具包时安装了 Visual Studio 集成,请通过选择适当的项目类型 (CUDA C/C++) 来确保您是。或者确保您已经为您的源设置了适当的构建规则。

于 2012-06-06T05:51:11.363 回答
0
  1. 有 2 种类型的错误 - 构建错误和 IDE 错误。检查构建是否成功(可以忽略 IDE 错误)

  2. 尝试 #include "cuda.h" (或使用尖括号)

  3. 重建有时可以解决问题

于 2012-06-07T06:14:28.353 回答
0

对于那些即使按照上述步骤也有问题的人,对我有用的解决方案是在 .cu 文件的属性下将“ItemType”更改为“CUDA C/C++”。

于 2022-01-20T06:34:19.370 回答