GPU及其通用计算

来源:互联网 发布:网络诈骗案例都有哪些 编辑:程序博客网 时间:2024/05/08 06:31

GPU及其通用计算

GPU英文全称Graphic Processing Unit,中文翻译为“图形处理器”。GPU是相对于CPU的一个概念,由于在现代的计算机中(特别是家用系统中的游戏发烧友、影音发烧友和工作系统中的图像处理、视频处理工程师)图形的处理变得越来越重要,需要一个专门的图形的核心处理器。

NVIDIA公司在1999年发布GeForce 256图形处理芯片时首先提出GPU的概念。GPU使显卡减少了对CPU的依赖,并进行部分原本CPU的工作,尤其是在3D图形处理时。GPU所采用的核心技术有硬体T&L、立方环境材质贴图和顶点混合、纹理压缩和凹凸映射贴图、双重纹理四像素256位渲染引擎等,而硬体T&L技术可以说是GPU的标志。下图为GPU的图像处理机制。

 

图1 GPU的图像处理机制

 

近年来,GPU正在以大大超过摩尔定律的速度高速发展,极大的提高了计算机图形处理的速度和质量,不但促进了图像处理、虚拟现实、计算机仿真等相关应用领域的快速发展,同时也为人们利用GPU进行图形处理以外的通用计算提供了良好的运行平台。

 

                  图2 GPU和CPU的浮点运算能力的变化比较

从图2我们可以看出,目前GPU的浮点运算能力已经达到了接近370 GFLOPS,而CPU却只有32 GFLOPS,二者对比差别很大,另外,GPU有更大的内存带宽,目前已经达到了86.4GB/s,相当于CPU的10倍。如果能够充分利用这种计算能力和存取能力,那么GPU将能够更好地体现其价值。

图形处理器技术的迅速发展带来的并不只是速度的提高,还产生了很多全新的图形硬件技术,使GPU具有流处理、高密集并行运算、可编程流水线等特性,从而极大的拓展了GPU的处理能力和应用范围。

正是由于GPU具有高效的并行性和灵活的可编程性等特点,越来越多的研究人员和商业组织开始利用GPU完成一些非图形绘制方面的计算,并开创了一个新的研究领域:基于GPU的通用计算(GPGPU,General-Purpose computation on GPU),其主要研究内容是如何利用GPU在图形处理之外的其他领域进行更为广泛的科学计算。目前已成功应用于运动规划、代数运算、优化计算、偏微分方程、数值求解、流体模拟、数据库应用、频谱分析等非图形应用领域,甚至包括智能信息处理系统和数据挖掘工具等商业化应用。同时,也产生了一些针对GPU开发的通用计算工具包,能够基于GPU平台对FFT、BLAS、排序及线性方程组求解等科学计算进行优化实现。

 

                     

                             图3 GPU计算的应用范围

基于GPU的通用计算已成为近几年人们关注的一个研究热点。将GPU用于通用计算的主要目的是为了加速计算,加速的动力来自GPU在高性能计算方面所具有的优势:

(1)高效的并行性。这一功能主要是通过GPU多条绘制流水线的并行计算来体现的。在目前主流的GPU中,配置多达16个片段处理流水线,6个顶点处理流水线。多条流水线可以在单一控制部件的集中控制下运行,也可以独立运行。GPU的顶点处理流水线使用MIMD方式控制,片段处理流水线使用SIMD结构。相对于并行机而言,GPU提供的并行性在十分廉价的基础上,为很多适合于在GPU上进行处理的应用提供了一个很好的并行方案。

(2)高密集的运算。GPU通常具有128位或256位的内存位宽,因此GPU在计算密集型应用方面具有很好的性能。

(3)超长图形流水线。GPU超长图形流水线的设计以吞吐量的最大化为目标(如NVIDIA GeForce 3流水线有800个阶段),因此GPU作为数据流并行处理机,在对大规模的数据流并行处理方面具有明显的优势。

如图4所示,CPU中的大部分晶体管主要用于构建控制电路(如分支预测等)和Cache,只有少部分的晶体管来完成实际的运算工作。GPU与CPU的设计目标不同,其控制电路相对简单,而且对Cache的需求较小,所以大部分晶体管可以组成各类专用电路和多条流水线,使GPU的计算速度有了突破性的飞跃,拥有惊人的处理浮点运算的能力。

 

图 4  GPU与CPU内部结构比较

正是由于GPU在并行处理和计算密集型问题求解等方面所具有的诸多优势,GPU已成为目前普通PC机所拥有的强大、高效的计算资源。从系统架构上看,GPU是针对向量计算进行了优化的高度并行的数据流处理机。这种以数据流作为处理单元的处理机,在对数据流的处理上可以获得很高的效率。根据NVIDIA公司开发的GPU工具包CUDA(Compute Unified Device Architecture)的测试结果显示,利用GPU实现FFT、BLAS、排序及线性方程组求解等科学计算,与单纯依靠CPU实现的算法相比,平均性能提高了近20倍。

由此可见,GPU的发展速度(包括集成度、计算密集型问题的处理能力等)已远远超过通用处理器,特别是随着可编程能力、并行处理能力和应用范围方面得到不断提升和扩展,使得GPU已成为当前计算机系统中具备高性能处理能力的部件。因此,充分利用现有计算资源,发挥GPU的高性能计算能力,在GPU与CPU的协作模式、GPU通用计算的计算模式以及性能优化等方面进行深入研究,将对进一步拓展目前高性能计算体系结构,为科学计算和工程应用提供新型的计算资源具有重要意义,而M2M算法模型可以最大化利用GPU计算特点,未来的文章中我们将描述M2M算法是如何体现GPU的性能优势。


PS:引自http://blog.csdn.net/m2mgroup/article/details/3352736

原创粉丝点击