技术开发 频道

GPU高性能开发技术:CUDA实战

    【IT168 技术】本文将集中讨论如何使用CUDA代码创建一个非托管DLL,并在C#程序中使用它,列举的例子将展示在数组上做计算的for()循环的托管、非托管和新的.NET 4并行版本之间的一些差异。

  我将简要地介绍如何配置CUDA环境和运行示例程序,CUDA本身已经超出了本文的范围,我只会谈及CUDA内核执行速度和内存管理。

  硬件开启CUDA和.NET 4(Visual Studio 2010 IDE或C# Express 2010)是成功运行示例代码的前提条件,Visual C++ Express 2008已经成为标准的CUDA C编辑器(2010版本修改了自定义生成规则功能,不支持CUDA SDK提供的生成规则)。

  第1部分:为CUDA配置环境和工具

  CUDA是由NVIDIA引入的一个通用目的并行计算架构,CUDA程序(内核)运行在GPU而不是CPU上,性能更好(数百个核心可以同时运行数千个计算线程),它带有一个软件环境,允许开发人员使用C作为高级编程语言,这个计算技术可用于数学、科学、金融、建模、图像处理等领域。

  针对开发的CUDA基础配置

  下载并安装适配你操作系统的CUDA工具包,建议使用最新的版本进行设备模拟(如果你没有支持CUDA的设备,用模拟器是个不错的主意,虽然它可能有一些限制);

  下载并安装相同操作系统,相同工具包版本的SDK;

   在安装SDK时如果遇到问题,请更新显示驱动。

  Visual C++ Express 2008(或Visual Studio 2008)配置

  1、语法着色

   从主窗口中打开“工具”*“选项”,选中“文本编辑器”*“文件扩展名”,添加“.cu”和“.cuh”扩展名;

   将usertype.dat文件从“[sdk dir]\C\doc\syntax_highlighting\visual_studio_8\”拷贝到“Program Files\Microsoft Visual Studio 9.0\Common7\IDE\”文件夹;

   重启Visual Studio。

  2、新建项目,32位Windows XP版本

   默认SDK位于“c:\Documents and Settings\All Users\Application Data\NVIDIA Corporation\NVIDIA GPU Computing SDK\”;

   默认工具包位于“C:\CUDA\”;

   创建空白Win32控制台应用程序,添加.cu扩展名的源文件;

   在“解决方案资源管理器”窗口选择新创建的项目,然后点击右键,选择“自定义生成规则”,使用“查找已有”按钮定位到“[sdk dir] \C\common\”文件夹中的Cuda.rules文件,添加它,并在可用规则文件列表上做上标记;

   再次选中“项目”*“属性”,选择“发布配置”,然后在树形视图中依次选择“配置属性”*“链接程序”*“常规”*“附加库目录”,添加“C:\CUDA\lib;C:\Documents and Settings\All Users\Application Data\NVIDIA Corporation\NVIDIA GPU Computing SDK\C\common\lib”;

   选择“配置属性”*“链接程序”*“输入”*“附加依赖”,输入cudart.lib;

   为“调试配置”使用相同的设置;对于模拟器配置,使用“配置管理器”基于发布和调试添加新的配置,然后将它们分别命名为“EMU-Release”和“EMU-Debug”(或你自己想一个名字);从“配置”组合框选择“EMU-Release”,将“cudart.lib”修改为“cudartemu.lib”,从树形视图中选择“CUDA生成规则(版本号)”,点击“常规”,将“仿真模式”设置为“是”;为“EMU-Debug”做相同的配置。

  3、新建项目,64位Windows 7版本

   Default SDK location is c:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK\

   默认SDK位置是“c:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK\”;

   Default toolkit location is C:\CUDA\

   默认工具包位置是“C:\CUDA\”;

   剩下的操作和32位Windows XP版本类似,但也有以下一些不同的地方:

  1)使用配置管理器创建新解决方案配置AMD64_Release,AMD64_Debug和模拟器版本(如果需要的话,直接从Release和Debug配置拷贝设置);

  2)使用配置管理器添加新创建的x64平台解决方案,从32位版本拷贝设置;

  3)在项目上下文窗口为所有AMD64配置选择x64平台;

  4)依次点击“链接程序”*“常规”*“附加库目录”,增加“c:\CUDA\lib64; c:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK\C\common\lib”;

  5)再点击“链接程序”*“输入”*“附加依赖”,输入cudart.lib。

0
相关文章