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下载地址:=2,先安装显卡,得确保显卡支持CUDA加速。查询是否支持可看此网站:没有url权限3,再安装Toolkit4.0和SDK,最好选择默认。在Win7环境下,Toolkit4.0安装后文件路径为:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0SDK默认安装文件路径为: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.04,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\Release7,打开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\src8,【工具】-【选项】-【项目和解决方案】-【VC++项目设置】-【C/C++文件扩展名】添加上*.cu【包括的扩展名】添加上.cuh9,产生一些必须的库文件打开文件夹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.pdfCUDA_C_Getting_Started_Windows.pdfCUDA_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程序的!