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

直接问题:如何在Visual Studio 2010中创build一个简单的hello world CUDA项目?

背景:我写了CUDA内核。 我非常熟悉Visual Studio 2005中的.vcproj文件 – 手动调整了几个。 在VS 2005中,如果我想构build一个CUDA内核,我添加一个自定义构build规则,然后明确定义nvcc调用来构build这些文件。

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

我读了其他地方,我需要VS 2008(msvc 9.0)也安装 – 我的话。 现在这样做。

但是我猜测我的问题至less有一部分来自于自制的定制构build工具规范。 有几个 网站提到将* .rules文件添加到构build中,但是我已经知道这只适用于VS 2008.在“构build自定义”下,我看到了CUDA 3.1和3.2,但是当我添加内核到项目中时,它们并不是没有build立。 另一个网站宣称,关键是三个文件: Cuda.props Cuda.xml Cuda.targets ,但它没有说如何或在哪里添加这些文件 – 或者说,我会赌博,我只是不明白的笔记在网站中引用。

那么有没有人知道如何在VS 2010中创build一个简单的项目来构buildCUDA内核 – 使用nSight 1.5安装程序还是使用CUDA 3.2 RC附带的NvCudaRuntimeApi.v3.2.rules文件?

提前致谢! 我会提供一个赏金,但我只有总共65点。

CUDA TOOLKIT 4.0及更高版本

构build自定义文件(安装到Program Files\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations目录中)“教导”Visual Studio如何编译和链接项目中的任何.cu文件到您的应用程序中。 如果您select跳过安装自定义设置,或者在CUDA之后安装了VS2010,则可以按照Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\extras\visual_studio_integration

  • 使用标准MS向导创build一个新项目(例如,一个空的控制台项目)
  • 在.c或.cpp文件中实现您的主机(串行)代码
  • 添加NVIDIA构build定制(右键单击项目, 构build定制 ,勾选相关的CUDA框)
  • 如果使用CUDA 4.0,请参阅注1
  • 在.cu文件中实现你的包装和内核
  • 如果您在构build自定义之前添加了.cu文件,那么您需要将.cu文件的types设置为CUDA C/C++ (右键单击文件, 属性 ,设置项目types
  • 添加CUDA运行时库(右键单击项目并select属性 ,然后在链接器 – >input添加cudart.lib其他依赖项
  • 然后build立你的项目和.cu文件将被编译为.obj并自动添加到链接

顺便提一句,我会主张尽可能避免cutil ,而不是自己的检查。 NVIDIA并不支持Cutil,它只是用来保持SDK中的例子集中在实际的程序和algorithmdevise上,并避免在每个例子中重复相同的事情(例如命令行parsing)。 如果你自己写,那么你将会有更好的控制,并知道发生了什么。 例如,如果函数失败, cutilSafeCall包装调用exit() – 真正的应用程序(而不是示例)应该可以更优雅地处理失败!


注意

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

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

此答案适用于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,您不需要使用任何自定义构build规则。 我去过那里,很痛苦。 随着最新版本的消失:

  • 创build你的VC ++项目。
  • 添加一个.CU文件。
  • 在解决scheme资源pipe理器中select项目文件。
  • 打开项目| 构build自定义…
  • 检查“CUDA 3.2(.targets,.props)”定制。
  • 在项目中select一个.CU文件,然后按Alt-Enter显示它的属性。
  • 确保它的项目types设置为“CUDA C / C ++”

它应该build立。 让我知道这是否有帮助,如果你遇到问题,因为这是从记忆。

CUDA与VS 2010合作的好消息简单得多。

阿德

顺便说一句:我会更新我的博客文章。

另一个好教程在这里:

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

如果您收到有关“<”的错误,请注意此步骤(来自以前的答案):

如果您在构build自定义之前添加了.cu文件,那么您需要将.cu文件的types设置为CUDA C / C ++(右键单击文件,属性,设置项目types)

但是,如果你遵循他们的步骤,它应该工作!