● GPU协处理器定位与发展
虽然目前的超级计算机已经开始大面积使用GPU最为协处理器,但是GPU从诞生到被用于通用处理器,还是经历了相当长的一段时间。这主要是由于GPU的可编程性发展历程决定的。
在传统的GPU种,Shader单元从出现(2001年DirectX 8发布标志着Shader单元出现)到运算能力迅速提升(2007年Geforce 8800GTX发布,通用计算影响力显著扩大)经过了很长时间。在这段时间里,显卡对于高端大规模并行运算是毫无价值的,即使有少量业界先行者开始了思考和研究,也无法形成对整个产业的影响力。
这个阶段在超级计算机与集群中,往往要拆除“多余的”显卡以节能功耗,而自从AMD公司的Stream架构NVIDIA公司的CUDA架构奠定了GPU通用计算地位之后,现在的设计开始逐渐采用大量GPU来获得更加廉价和绿色的计算能力。CUDA的强大性能引发了一场通用计算革命,这场革命将极大地改变计算机的面貌。
第一版中国“天河一号”超级计算机
2009年10月29日,国防科技大学成功研制出的峰值性能为每秒1206万亿次的“天河一号”超级计算机在湖南长沙亮相。我国成为继美国之后世界上第二个能够研制千万亿次超级计算机的国家。天河一号采用6144个Intel通用多核处理器和5120个AMD图形加速处理器GPU,其中GPU的型号正是大家熟悉的ATI上一代高端GPU产品HD 4870X2。截止2009年11月17日,“天河一号”超级计算机在第34届TOP500榜单中排名第五。
“天河一号”刀片节点与AMD Radeon HD 4870X2
随着GPU的可编程性不断增强,GPU的应用能力已经远远超出了图形渲染任务,利用GPU完成通用计算的研究逐渐活跃起来,将GPU用于图形渲染以外领域的计算成为GPGPU(General Purpose computing on graphics processing units,基于GPU的通用计算)。GPGPU计算通常采用CPU+GPU的异构模式,但是传统的GPGPU受硬件可编程性和开发方式的制约,应用领域受到了限制,开发难度也很大。
2007年6月推出的CUDA是一种将GPU作为数据并行计算设备的软硬件体系。CUDA不需要借助于图形学API,并采用了比较容易掌握的类C语言进行开发。开发人员能够从熟悉的C语言比较平稳地从CPU过度到GPU,而不必重新学习语法。当然,要开发高性能的GPU通用计算程序,开发人员仍然需要掌握并行算法和GPU架构方面的基本知识。
NVIDIA之所以能够占领超级计算机市场,并将GPU概念更深入地变为通用处理器,其实并不是因为其性能出众,特别是理论浮点吞吐性能,而是因为底层硬件设计的可编程性出色,能过通过CUDA硬件和CUDA软件平台移植大量并行计算程序。所以GPU作为协处理器才能够在近几年间飞速发展,渗透到全世界著名的超级计算机和高性能计算客户端中。
CUDA能够有效利用GPU强劲的处理能力和巨大的存储器带宽进行图形渲染以外的计算,广泛应用于图像处理、视频传播、信号处理、人工智能、模式识别、金融分析、数值计算、石油勘探、天文计算、流体力学、生物计算、分子动力学计算、数据库管理、编码加密等领域,并在这些领域中对CPU获得了一到两个数量级的加速。取得了令人瞩目的成绩。
- 第3页:GPU协处理器定位与发展
- 第4页:Tesla与FireStream计算单元