GPU的新舞台 通用计算领域大展拳脚

2009-6-11 来源: 互联网

关键字: GPU NVIDIA 通用计算 

  GPU登陆计算舞台

  自诞生之日起,GPU的高速发展就一直没有停歇过。GPU的出现将CPU从繁重的图形运算中解放出来,大大提高了计算机图形处理的速度和质量,为用户带来了更真实、更绚丽的画面。到了今天,主流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秒钟就完成对美国所有上市股票的期权分析。


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

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


Photoshop CS4加入了对CUDA的支持




责任编辑:熊东旭