智慧的老鸟

一个程序员需要有一棵Gank的心,Dota能培养我。

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

    GPU是显示卡的“心脏”,GPU是显示卡的“大脑”,它决定了该显卡的档次和大部分性能,同时也是2D显示卡和3D显示卡的区别依据。2D显示芯片在处理3D图像和特效时主要依赖
CPU的处理能力,称为“软加速”。3D显示芯片是将三维图像和特效处理功能集中在显示芯片内,也即所谓的“硬件加速”功能。
    GPU通用计算方面的标准目前有 OPEN CL、CUDA、ATI STREAM。其中,OpenCL(全称Open Computing Language,开放运算语言)是第一个面向异构系统通用目的并行编程的开放式、
免费标准,也是一个统一的编程环境
    提高计算机性能一般有两种思想,一种是提高GUP的时钟频率,虽然计算机的发展已经实现了这种飞速提高,但是硬件的发展都是会遇到颈瓶的约束,包括功耗发热以及晶体管
的大小已经接近物理机械,除非出现新的物理技术,比如激光传导等还处于幻想中的技术;另一种思想也就是现在提高计算机性能的主流思想——片上多核技术,用多个普通的核
进行多核计算。GPU就是多核中的一个重要成员。GPU一开始用于处理图像,但是,应用的发展使得很多领域都对GPU有着广泛的应用。CUDA架构专门为GPU计算设计了一种全新模块,
其所有功能不仅使GPU能执行图形计算,还能高效地执行通用计算。
 CUDA是由NVIDIA引入的一个通用目的并行计算架构,CUDA程序(内核)运行在GPU而不是CPU上,性能更好(数百个核心可以同时运行数千个计算线程),它带有一个软件环境,允许
开发人员使用C作为高级编程语言,这个计算技术可用于数学、科学、金融、建模、图像处理等领域。

开发环境:
a 支持CUDA的图形处理器,GeForce 8800 GTX以来的NVIDIA退出的每款GPU都能支持CUDA。
(需要G80以上核心的显卡才能进行硬件设备编程,你的显卡用软件虚拟编程也可以,虚拟编程性能上有所不同,但是用来学习上足够用了。)
b CUDA开发工具箱
c 标准c编译器

///////////////////////////////////安装配置, 摘自网络///////////////////////////////////////////////
1,需要安装的软件:CUDA Toolkit4.0 + GPUComputing SDK + CUDA Wizard + +对应的显卡驱动+ Visual Assist破解版 + VS2008
下载地址:http://dl.vmall.com/download/gpucomputingsdk_4.0.19_win_32.part1.rar?f=c0bx4c5qpo&i=287&h=1351819750&v=1278912e&u=dcd9bed2&ip=124.74.45.130&p=0&lpid=
2,先安装显卡,得确保显卡支持CUDA加速。查询是否支持可看此网站:没有url权限
3,再安装Toolkit4.0和SDK,最好选择默认。在Win7环境下,Toolkit4.0安装后文件路径为:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0
SDK默认安装文件路径为:C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.0,注意:ProgramData Win7为隐藏文件,
XP系统下默认安装路径为C:\Documents and Settings\All Users\Application Data\NVIDIACorporation\NVIDIA GPU Computing SDK 4.0
4,C:\ProgramData\NVIDIACorporation\NVIDIA GPU Computing SDK 4.0\C\src该目录下,为SDK所带的demo程序,有VS2005、VS2008和VS2010三个版本。
5,安装CUDAWizard,下载地址:
安装后,重新打开VS2008,此时【新建项目类型】多了【CUDA】一项,此时可以新建CUDA C程序了。但此时肯定编译通不过,缺少必要的环境变量设置。
6,Ctrl+R,输入cmd,进入命令提示窗口
输入set cuda,看是否出现以CUDA开头的环境变量,如果没有,说明SDK安装不正确,重新安装之后,在环境变量中设置【用户变量】中的【path】,添加上
C:\Program Data\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.0\C\bin\win32\Debug和
C:\Program Data\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.0\C\bin\win32\Release
7,打开VS2008,【工具】-【选项】-【项目和解决方案】-【VC++目录】-【包含文件】添加上C:\ProgramFiles\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include、和
C:\ProgramData\NVIDIACorporation\NVIDIA GPU Computing SDK 4.0\C\common\inc
【库文件】添加上C:\ProgramFiles\NVIDIA GPU Computing Toolkit\CUDA\v4.0\lib和C:\ProgramData\NVIDIACorporation\NVIDIA GPU Computing SDK 4.0\C\common\lib
【源文件】添加上C:\ProgramData\NVIDIACorporation\NVIDIA GPU Computing SDK 4.0\C\common\src
8,【工具】-【选项】-【项目和解决方案】-【VC++项目设置】-【C/C++文件扩展名】添加上*.cu【包括的扩展名】添加上.cuh
9,产生一些必须的库文件
打开文件夹C:\ProgramData\NVIDIACorporation\NVIDIA GPU Computing SDK 4.0\C\common
用VS打开Release_vs2008.sln(包含有cutil_vs2008和rendercheckgl_vs2008项目),选择【生成】-【批生成】,选择【Debug|Win32】和【Release|Win32】,点击【生成】,即可生成一些必须的库文件。
还有C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.0\shared下的shrUtils_vs2008.sln,选择批生成,选择win32下的Debug和Release。
10,高亮显示:
(1)如果没有 usertype.dat文件在目录 "Microsoft Visual Studio 8\Common7\IDE" 下,请复制目录C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.0\C\doc\syntax_highlighting\visual_studio_8下的usertype.dat到上述目录, 如果有了就将这个文件追加到"Microsoft Visual Studio 8\Common7\IDE\usertype.dat"之后。
(2)启动Visual Studio 8. 选择菜单 "Tools->Options...".  然后打开 "Text Editor" in the tree view on the left, and click on "File Extension".  Type cu in the "Extension" box, set the editor to "Microsoft Visual C++" and click "Add".  Click "OK" on the dialog box. 
(3)Restart Visual Studio and your CUDA code should now have syntax highlighting.
注意:CUDA共有两个环境,一个为CUDADriver API,另一个CUDA Runtime API。运行时API是在驱动API基础上进一步抽象的结果,使用起来更加简洁;驱动API接近底层硬件,较为复杂,但能实现运行时API不能实现的功能。
一般我们写程序都是以Runtime API来写,它的所有函数前缀都为cuda;Driver API的所有函数前缀都为cu,它们的函数基本上都一一对应。
现在所研究的cudaEncode是以Driver API来写的,有待进一步改进为Runtime API形式。
11,安装VisualAssist。之后,配置VA,使其对CUDA也支持。
Ctrl+R,输入regedit,进入注册表编辑器,之后进入注册表编辑:HKEY_CURRENT_USER\Software\Whole Tomato\Visual Assist X\VANet9\找到右边的ExtSource项,将其值添加.cu;.cuh;之后关闭。
12 学习资料:
C:\ProgramData\NVIDIA Corporation\NVIDIAGPU Computing SDK 4.0\C\doc文件夹下的
CUDA_C_Best_Practices_Guide.pdf
CUDA_C_Getting_Started_Windows.pdf
CUDA_C_Programming_Guide.pdf
书籍有:GPU高性能编码CUDA实战(CUDA By Example)
GPU高性能运算之CUDA
///////////////////////////////////安装配置///////////////////////////////////////////////

注意:
第一,下载的安装包要对应自己的操作系统,是windows还是linux,是64x还是32x。
第二,英伟达给出的安装包目前已经到达5.X系列版本,而且官网中只能下到最新版本的,这个版本的最大优点就是讲tool和sdk和驱动集成在一个安装包中,大概1G。
但是,如果你的电脑不是NV8以上的显卡,那么,无法把这套环境打通。查质料了解,只有2.0包含之前的版本是可以模拟GPU的。
第三,即使你在不符合开发包对应的显卡电脑中编译通过了,调用查GPU的函数,它会返回给你0个。
第四,用2.0开发包,模拟的GPU并行化不是真正意义上的并行化,它只是用多线程在cpu上模拟GPU,并不能看到效率的提高。

总之,个人认为,GPU的环境有那么一点坑爹!安装个一天两天才成功是很正常的事情,因为我们都是小鸟。
但是等我们安装完成后,都会看到自己的helloworld程序的!

posted on 2012-11-02 13:51  智慧的老鸟  阅读(5428)  评论(0编辑  收藏  举报