GPU技术的发展和演进
GPU(图形处理器)在1999年由Nvidia在其跨时代的产品—Nvidia geforce 256中提出,最初被用来处理着色、渲染、平面绘图、3D绘图等功能。到了Nvidia GeForce 6800这一代GPU,其并行计算能力大大提高。其后的产品G80在基于DXIO统一渲染架构下,抛弃以前的渲染管线而采用统一的流处理器来做图像渲染。除了用做图像浪染外,流处理器自身有着强大的运算能力。在G80产品中有128个ALU,其并行计算能力远超CPU。CPU和GPU的运算能力差距如图16-1所示。
图16-1 GPU和CPU的计算能力对比
CUDA(Compute Unified Device Architecture,统一计算架构)是Nvidia所推出的一种集成技术,是该公司对于新一代GPU,也就是GPGPU的正式名称。通过这个技术,用户可利用Nvidia的GeForce8以后的GPU和较新的Quadro GPU进行计算。
CUDA也用来指GPU编程中C-编译器的开发环境。Nvidia营销的时候,往往将编译器与架构混合推广,造成混乱。实际上,CUDA架构可以兼容OpenCL或者自家的C-编译器。
实际上,CUDA是在2006年11月与G80这款产品一同诞生的,在2007年2月Nvidia首次发布了CODA的公测版,而在2007年6月,CUDA1.0版与Tesla系列显卡正式登场,到了2007年底,CUDA1.1测试版放出。任意一台拥有GeForce 8以上的显卡都能够支持CUDA,最新的版本是GeForce GTX 200系列产品发布时同步推出的CUDA 2.0版本。在CUDA 2.0版本中,增加了如下内容:支持双精度运算(仅支持GT200系列产品)、支持Windows VISTA操作系统(包括32bit和64bit )、支持MacOS X操作系统、分析调试器、3D纹理支持及优化数据传输等。