如何在Visual Studio 2010中启动CUDA应用程序?

M. *_*its 23 c++ cuda projects-and-solutions visual-studio-2010 nsight

直接问题: 如何在visual studio 2010中创建一个简单的hello world CUDA项目?

背景: 我写过CUDA内核.我非常熟悉Visual Studio 2005中的.vcproj文件 - 手动调整了几个.在VS 2005中,如果我想构建一个CUDA内核,我会添加一个自定义构建规则,然后显式定义nvcc调用以构建文件.

我已经迁移到Win 7和VS 2010,因为我真的想尝试nSight.我安装了nSight 1.5.但这就是我完全迷失的地方.如果我像以前一样继续,nvcc报告它只支持msvc 8.0和9.0.但该网站明确表示它支持VS 2010.

我在其他地方读到了我需要安装VS 2008(msvc 9.0) - 我的话.现在这样做.

但我猜测,我的问题至少部分来自自产自定义生成工具的规格干. 一些 网站谈论添加*.rules文件添加到构建,但我已经收集,这是只适用于VS 2008在"构建自定义"我看到CUDA 3.1和3.2,但是当我添加内核他们AREN项目没有建成. 另一个网站宣称,关键是三个文件:Cuda.props Cuda.xml Cuda.targets,但它并没有说如何或在哪里添加这些文件-或者更确切地说,我会赌我只是不明白的说明在网站上引用.

因此,没有人知道如何创建在VS 2010中一个简单的项目,该项目构建了一个CUDA内核-使用无论是nSight 1.5设置或NvCudaRuntimeApi.v3.2.rules文件所附带CUDA 3.2 RC?

提前致谢!我会提供赏金,但我总共得到65分.

Tom*_*Tom 44

CUDA TOOLKIT 4.0及更高版本

构建自定义文件(安装到Program Files\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations目录中)"教"Visual Studio如何编译和链接项目中的任何.cu文件到您的应用程序中.如果您选择跳过安装自定义,或者在CUDA之后安装了VS2010,则可以按照以下说明添加它们Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\extras\visual_studio_integration.

  • 使用标准MS向导创建一个新项目(例如一个空的控制台项目)
  • 在.c或.cpp文件中实现主机(串行)代码
  • 添加NVIDIA构建定制(右键单击项目,构建自定义,勾选相关的CUDA框)
  • 如果使用CUDA 4.0,请参阅注释1
  • 在.cu文件中实现包装器和内核
  • 如果您.cu在构建自定义之前添加了文件,则需要将.cu文件类型设置为CUDA C/C++(右键单击文件,属性,设置项类型)
  • 添加CUDA运行时库(右键单击项目并选择Properties,然后在Linker中 - > Input add cudart.libto Additional Dependencies)
  • 然后只需构建您的项目,.cu文件将被编译为.obj并自动添加到链接中

顺便提一句,如果可能的话,我会提倡避免使用cutil,而是自己检查.NVIDIA不支持Cutil,它仅用于尝试将SDK中的示例集中在实际程序和算法设计上,并避免在每个示例中重复相同的事情(例如命令行解析).如果你自己编写,那么你将拥有更好的控制权并且会知道发生了什么.例如,如果函数失败,cutilSafeCall包装器会调用exit()- 真正的应用程序(而不是样本)应该可以更优雅地处理失败!


注意

  1. 仅对于CUDA 4.0,您可能需要将此修复程序应用于构建自定义.此修补程序修复了以下消息:

评估元素中"AssemblyFile"属性的值"$(CudaBuildTasksPath)"的结果""无效


Ade*_*ler 7

这个答案适用于CUDA 3.2,从4.0开始,CUDA直接支持VC 10编译器,有关详细信息,请参阅其他答案

您需要安装VS 2008或6.1 Windows SDK.那是因为NSight 1.5 RC或CUDA 3.2 SDK使用VC 9编译器.我已经安装了2008这个成功的工作,并告诉它应该使用SDK,但没有尝试过.

使用NSight 1.5和/或CUDA 3.2 SDK,您不需要使用任何自定义构建规则.我去过那里很痛苦.随着最新版本的消失:

  • 创建VC++项目.
  • 添加.CU文件.
  • 在解决方案资源管理器中选择项目文件.
  • 打开项目| 构建自定义...
  • 检查"CUDA 3.2(.targets,.props)"自定义.
  • 在项目中选择一个.CU文件,然后按Alt-Enter显示它的属性.
  • 确保它的项目类型设置为"CUDA C/C++"

它应该建立.让我知道这是否有帮助,如果你遇到问题,因为这是来自内存.

让CUDA与VS 2010合作的好消息变得更加容易.

阿德

顺便说一句:我会更新我的博文.


小智 7

另一个很好的教程:

http://www.stevenmarkford.com/installing-nvidia-cuda-with-visual-studio-2010/

如果您收到有关'<'的错误,请注意此步骤(来自上一个答案):

如果在构建自定义之前添加了.cu文件,则需要将.cu文件的类型设置为CUDA C/C++(右键单击文件,属性,设置项类型)

但如果你按照他们的步骤,它应该工作!