将cuda文件添加到visual studio中的现有c项目中

sha*_*enk 8 c++ cuda visual-studio-2010

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

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

有什么建议?

Pix*_*ist 6

我目前无法完成所有这些工作,但我认为这些步骤是必要的:

  1. 在项目浏览器构建中右键单击您的项目...(自定义?)[我的版本是德语.我无法准确地告诉关键字,但它是关于"Build ..."的.你需要在这里查看"CUDA 5.0".
  2. 在编译器选项(项目属性)的"常规"选项卡中为Cuda设置"附加包含目录".
  3. 将cuda libfile添加到链接器的"输入"选项卡中的"附加依赖项".
  4. 将文件标记为Cuda文件(您已经完成了).

  • 在VS 2013中,右键单击项目,然后单击Build Dependencies,然后单击Build Customizations ...然后弹出已安装的Cuda版本,并选中所需版本的复选框. (4认同)

eje*_*nta 5

我发现最好的方法是在现有的 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
Run Code Online (Sandbox Code Playgroud)

不理想但必要,因为似乎没有定义集来指示安装了 NVCC(除了执行 shell 命令!)


fab*_*ioM 0

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

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

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