GPU的新舞台

趋势观察

自诞生之日起,GPU的高速发展就一直没有停歇过。GPU的出现将CPU从繁重的图形运算中解放出来,大大提高了计算机图形处理的速度和质量,为用户带来了更真实、更绚丽的画面。到了今天,主流GPU的图形处理能力已经满足并超越了大部分电脑用户的需求,而且电脑也不可能每时每刻都在运行三维程序和游戏。于是越来越多的人开始关注一个问题:拥有强大浮点运算能力的GPU还能做些什么?

通用计算 GPU大展拳脚

GPU的迅速发展带来的并不只是频率的提高,还产生了很多全新的图形硬件技术,使GPU具有流处理、高密集并行运算、可编程流水线等特性,从而极大地提升了GPU的处理能力,拓展了GPU的应用范围。正是由于GPU具有高效的并行性和灵活的可编程性等特点,越来越多的研究人员和商业组织开始利用GPU完成一些非图形绘制方面的计算,并开创了一个新的研究领域——GPGPU(通用计算图形处理单元),其主要研究内容是在图形处理之外的其他领域,如何利用GPU进行更为广泛的科学计算。

将GPU用于通用计算的主要目的是加速计算,加速的动力来自GPU在高性能计算方面所具有的优势:1.高效的并行性(这一功能主要是通过GPU多条绘制流水线的并行计算来实现);2.高密集的运算(GPU具有128bit/256bit或更大的显存位宽);3.超长图形流水线(以数据吞吐量的最大化为目标,在并行处理大规模数据流方面具有明显优势)。

目前,GPGPU已成功应用于代数计算、流体模拟、数据库应用、频谱分析等非图形应用领域,甚至包括智能信息处理系统和数据挖掘工具等商业化应用。同时,也产生了一些针对GPU开发的通用计算工具包,能够基于GPU平台排序及线性方程组求解等科学计算进行优化实现。

软硬兼施 应用更高效

光看GPGPU超越CPU的浮点运算能力的确令人兴奋,但真正的应用却难以实现。这是因为图形API限制太大,要通过DirectX、OpenGL等API来执行其他应用,不仅算法和程序会变得很复杂,而且还有大量的额外运算开销。随着GPU进入DX10时代,统一渲染架构在可编程性上更加灵活。而要充分发挥GPU通用计算性能,必须“抛弃”传统的图形API,NVIDIA适时推出了CUDA(统一计算设备架构)。

从GeForce 8系列产品开始,NVIDIA的GPU全部支持CUDA技术。软件开发人员可以基于CUDA平台开发计算软件,借助这些软件和GPU,用户可以用比以往少得多的时间完成很多计算任务。

目前,CUDA已经在游戏、图形动画、科学计算、地质、生物、物理模拟等领域显示出了威力。例如,以前将一系列2D X光图像合成为3D图像需要耗费5个小时,而通过CUDA和GPU可以将这个过程缩短为5分钟。在模拟电脑波、视觉和嗅觉感官计算领域,CUDA让CPU和GPU协同工作获得了130倍的性能提升。在金融行业,NVIDIA和财务分析软件厂商Hanweek合作,在其股票和期权分析软件中加入GPU加速功能,结果不到1秒钟就完成了对美国所有上市股票的期权分析。

另外,Adobe最近发布的Photoshop CS4也支持GPU加速,Photoshop CS4里打开一个2GB大小、4.42亿像素的图片只需几秒钟,而对图片进行缩放、旋转也不再“卡壳”。以往令人头痛的全景图拼合,在GPU的帮助下也能在瞬间完成。

随着应用领域的不断扩大,人们对利用CUDA技术进行GPU加速的关注度越来越高。NVIDIA公司CEO黄仁勋指出,“我们认为对此技术有兴趣的人应该有上千万,不仅仅限于北美地区,中国、印度、俄罗斯、巴西等地加起来会有几十亿的商机。”

41-d01-02.jpg
乳腺癌超声波检测采用GPU加速及CUDA编程,处理时间由几小时缩短至15分钟

并行计算 时代的竞争

从上面可以看出,由于GPU架构非常适用于执行高并行量的计算任务,所以它在执行金融分析、气象预报、数据库分析及人工智能等计算任务时具有很大的优势,图形市场似乎面临新的发展机遇。不过,看准这个市场的除了已经大步走在前面的NVIDIA之外,还有Intel和AMD两个老牌芯片厂商和软件巨头微软。

Intel计划在2009或2010年推出一款特殊的处理器——Larrabee。具有32个内核的Larrabee不但能完成高质量的图形渲染,还能同时执行大量的计算任务,其浮点运算性能可与顶尖的GPU媲美。除了运算能力出众以外,Larrabee还带来了一套基于x86的标准指令集。而作为GPU通用计算概念的另一个支持者,AMD虽然没有提供相应的开发环境,但它也打算在2010年推出融合CPU和GPU的Fusion处理器。另外,微软也计划在DX10.1中加入开发高并行计算程序所需的功能函数,以便降低开发难度。

显然,由CUDA引发的高并行计算市场已经启动,随着以这类技术为代表的可编程GPU技术的不断成熟,未来的相关产品将变得无所不能,而并行计算时代的竞争也会更加激烈。