并行计算综述_第1页
并行计算综述_第2页
并行计算综述_第3页
并行计算综述_第4页
并行计算综述_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、图形处理器的通用计算研究综述摘要多年来计算机图形处理器以大大超过摩尔定律的速度高速发展。图形处理器的发展极大地提 高了计算机图形处理的速度和图形质量,并促进了与计算机图形相关应用领域的快速发展,与此同时,图 形处理器绘制流水线的高速度和并行性以及近年来发展起来的可编程功能为图形处理以外的通用计算提供 了良好的运行平台,这使得基于GPU的通用计算成为近两三年来人们关注的一个研究热点。本文从介绍 GPU的发展历史及其现代GPU的基本结构开始,阐述GPU用于通用计算的技术原理,以及用于通用计 算的主要领域和最新发展情况。最后,展望了 GPU应用于通用计算的发展前景,并从软件和硬件两方面 分析了这一领

2、域未来所面临的挑战。关键字GPU ; GPGPU ; CUDA ;通用计算;可编程性1引言计算机图形处理器GPU (Graphics Processing Unit)具有极高计算性能和相对廉价的 成本,以超过摩尔定律的速度更新硬件,从2003年后在通用计算领域图形处理器GPGPU (General-Purpose Computing Graphics Processing Unit 取得长足发展。在学术界人们 研制了以下典型处理器芯片:斯坦福大学的Imagine、Merrimac及国防科学技术大学的飞腾 FT64S,而飞腾处理器已成功应用于“天河一号”超级计算机的设计中。在工业界Nvidia、

3、 AMD等公司持续更新其GPU硬件产品,利用推广软件的方式来扩大各自硬件产品的生态圈, 目前Nvidia在通用计算领域中成果显著。国内吴恩华教授2-3总结了 2004年之前GPU的发展历史和现代GPU基本结构,阐述了通 用计算的技术原理、软件工具及详细的发展之路,总结了各种应用领域的进展,如流体模拟、 代数计算、数据库应用、频谱分析等。国外Owens研究团队综述了 2008年之前GPGPU的硬 件及软件方面的应用进展妇,分别从GPU体系、计算编程模型、软件开发环境和编程语言 等方面作了详细介绍;然后重点分析了 GPU计算中的关键技术和算法问题。本文重点关注最 近3年内GPGPU发展过程中关键技

4、术的研究与进展,特别是由于海量数据处理的需要,单节 点GPU受到硬件限制,多GPU系统和GPU集群的应用研究成为新热点。本文第2节介绍GPU 通用计算的发展;第3节介绍GPGPU中关键技术的研究及进展;第4节介绍GPU通用计算的 应用;最后总结现有研究面临的挑战和展望未来工作。GPU通用计算发展GPU的提出及最早的通用计算应用GeForce 256一代号NV10于1999年8月发布。这是图形芯片领域创世之作,也是第一 款提出GPU概念的产品。GeForce 256所采用的核心技术有硬体T&L、立方环境材质贴图和 顶点混合、纹理压缩和凹凸映射贴图、双重纹理四像素256位渲染引擎等,而硬体T&L技

5、术 可以说是GPU的标志。GeForce 256称作GPU原因就在于Geforce256创新性的在图形芯片 集成了 T&L(几何光照转换)功能,使得GPU具有了初步的几何处理能力,完美的解决了 CPU 几何吞吐量不够的瓶颈。Shader的出现及其快速发展在面向图形计算GPU渐渐找到了发展方向,这个方向就是给予用户更价逼真更加迅捷快 地视觉体验,与此同时GPU架构遇到一些烦。首要问题就是,为了呈现更加丰富多彩的图形 图像效果,不能只依靠三角形生成和固定光影转换。Shader概念的提出,使得程序员可通 过它构建3D场景难度大大降低。当时最最重要的改进是增加对浮点数据的处理能力,以前 GPU只能对整

6、数进行处理,改进后提高渲染精度,使最终处理的色彩格式达到电影级别。 Shader Model 2.0时代突破了以前限制PC图形图象质量在数学上的精度障碍,它的每条渲 染流水线都升级为128位浮点颜色,让设计师更加自如的的创造出更炫丽的效果。在通用性 计算方面,浮点运算让GPU已经具备了通用计算的基础,这一点让GPU在通用计算方面高速 发展成为了可能。GPGPU的概念及其发展GPGPUC7全称General Purpose GPU,它是一种支持通用计算的图像处理器,它除了像一 般的显卡一样拥有图像处理功能之外,还能够像CPU 一样提供一定的通用计算能力。当前, 在产业界AMD公司和NVIDIA公

7、司都已经在生产这种支持通用计算的GPU,对应的典型显 卡有Firestream系列和GTX系列。也就是将GPU用于3D图形处理已外的通用计算,由于 图形处理器硬件以大大超过摩尔定律的速度发展,人们开始挖掘图形处理器的强大计算能力 来从事非图形方面的应用,并称为图形处理器通用计算(general purpose computing on the GPU,GPGPU)。现在其应用领域已扩展到了几何造型、数值计算、流体模拟、场景绘制等领 域。最初的GPGPU开发使用图形学API编程,在这种模式下,程序人员不仅要掌握需要实现 的计算,还要对图形学硬件有深入的了解,使得的开发难度很大,传统的GPU并没有

8、得到广 泛的应用。2003开始,斯坦福大学的Lan Buck等人对ANSI C进行了拓展,开发了 Brook 编译器,大大简化了开发的过程。但是早期的Brook编译的效率很低。还由于受到GPU架构 的限制,Brook也缺乏有效的数据通信机制。而后,AMD/ATI公司在其GPGPU通用计算产品Stream中采用了 Brook的改进版本Brook+作为高级开发语言。由于Brook+还有一些限制, 所以在灵活性方面并不如CUDA好。而且由于过多的封装,效率也并不很高,不支持多GPU, Rook+的kernel不支持高级的GPU命令,比如本地共享内存和原子操作等。已经被提交到了Source Forge

9、上,已经没有太多的维护了。GPGPU关键技术及进展3.1 GPU编程模型3.1.1片内编程模型从片内与片间两个角度分析编程模型的发展。对于早期GPU片内,在数据并行编程模型 基础上,程序员将各种算法映射到绘图流水线中,以此挖掘GPU硬件并行性。随着可编程部 件功能增强,出现了以顶点、子素处理器等硬件为基础的渲染模型(Shader Model)。为解 决片内负载均衡问题,统一各种可编程部件后出现了统一渲染模型(United Shader Model) 。CTM9对GPU片内编程模式有重要影响,抽象化GPU硬件来降低对底层的依赖,把开发 控制策略返还编程人员。此后,由于更适合通用计算的流处理器SP

10、(StreamProgramming) 的出现,流式编程模型(Stream Programming Model)逐渐成熟,并在Brook和CUDA编程 语言中应用10-11。3.1.2片间编程模型GPU长期以协处理或加速器的方式存在,因此GPU与CPU之间的耦合关系对片间编程模 型有影响,如Nvidia GPU与CPU之间是松耦合关系,而larrabee与Fusion是紧耦合关系.松 耦合体系侧重向用户提供灵活的编程模型,如OpenCLm存在数据并行模型、任务并行模型 和混合编程模型,根据不同应用程序的性能特点灵活选择适当编程模型;CUDA也针对片间 松耦合体系,基本编程模型是数据并行模型13

11、,而且是细粒度数据并行。此外CUDA中提供 流的机制,用户运用多流可以达到任务并行执行,因此在某种程度上CUDA给出一种任务并 行编程的途径。在松耦合体系中存在一个问题,由于CPU即是计算管理者又是执行者,因此 CPU未被充分利用。而片间紧耦合体系有效解决了该问题,平衡编程模型能在仔?。与CPU之 间合理分配计算负载,充分利用CPU计算资源;实现以线程为调度单位的细粒度数据和任务 并行计算。3.1.3编程模型发展方向 未来编程模型预计向两个方向发展。为降低并行程序设计复杂性和提高非专业开发人员的效 率,GPU片内要出现元编程模式.元程序设计是编写生成代码的程序。在元编程模式中自动 生成任务划分

12、、通信等代码,编程人员更专注于特定领域的算法设计GPU片间通信能力增 强后,片间编程模型必然向分布式方向演化。如CUDASA中的分布式编程模式能有效解决负 载均衡和全局存储管理、通信的问题,降低GPU集群应用程序的开发难度14。3.2 GPU开发语言GPU开发语言从专门的着色语言、面向流计算模型的流语言,发展到现在的面向通用计 算领域的编程语言。以下分3个方面介绍:GPU编程语言起源着色语言(Shading Language), 如GLSL、HLSL、Cg5。着色语言是独立图形处理硬件的高级编程语言,为了开发者灵活、方 便控制并行图形渲染.存在两个局限性:(1)对底层图形库依赖性强,可移植性差

13、;(2)开发 难度大,不仅要掌握并行开发技术,而且要了解硬件结构和图形库细节。随着非图形计算 应用的增多,各种领域的用户对通用编程语言的需求增大。两大GPU厂商为扩大各自硬件产 品的生态圈,分别推出不同通用计算语言,Ndivia的CUDA和AMD的Brook+。CUDA以C语 言为基础,由于具备了以下两个优点,从而迅速增加了用户数量:(1)封装图形编程底层转 化算法;(2)降低编程难度,用户无需考虑计算模型和操作资源的限制,利于集中设计特定 应用领域算法。GPU通用计算的应用4.1在医疗领域的应用(一)Foldinghome项目,它(模拟蛋白质折叠)是一个研究研究蛋白质折叠,误折, 聚合及由此

14、引起的相关疾病的分布式计算工程。我们使用联网式的计算方式和大量的分布式 计算能力来模拟蛋白质折叠的过程从而缩短人类对于癌症、阿兹海默症、帕金森氏症等的攻 克过程。在NVIDIAGeForceGPU (图形处理器)上运行Foldinghome客户端的实际结果表明, 蛋白质折叠模拟工作的速度比当今的CPU快140倍。在Foldinghome中应用如此强大的处 理性能彻底改变了这一项目,极大地缩短了我们进行生物医学研究所需的时间。(二)基于GPU通用计算的体绘制,体绘制是一种直接由三维数据产生屏幕上二维图像 的技术。体绘制的相关研究实验分别从传统的基于GPU的体绘制和基于GPU通用计算的体绘 制两个

15、方面进行。传统体绘制使用吸收发射光照,CPU计算代理几何面,GPU绘制代理几何 面用GPU通用计算时,使用阴影模型,GPU更新代理几何面,GPU进行多遍渲染。实验结构 表明,基于GPU通用计算的体会绘制无论是在代理几何更新速度还是体绘制速度都明显优于 基于传统GPU的体绘制。因此,在体绘制方面GPU的通用计算能力是值得肯定的。4.2在计算机网络领域的应用在GPU 3D云计算网络应用方面,典型的应用有:建筑师及其客户将能够审阅精密的建 筑模型,包括白天或黑夜不同设置下所渲染出的模型。在线买家将能够互动地设计家庭室内 装潢、重新摆放家具以及查看家纺的装饰方式,所有这些都具备完美、精确的光照效果。这

16、 些成功案例表明未来我们网店选购时,可以实时的查看产品的三维立体动画,预览衣服、鞋 子等的“试穿”效果,在房屋中随意摆放家具、调节灯光“体验”是否满足要求,这些强大 的网络应用让人看到GPU计算在网络方面无限美好的未来。5结束语GPU的通用计算能力已经在图形图像、医疗、高性能计算、网络等各个领域展取得了突 破性的进展。随着GPU通用计算的继续高速的发展,今后将会引领出更多更好的应用技术, 我们应该持续热衷于GPU通用性的研究和高度的关注GPU通用技术的发展,以挖掘出更强的 GPU通用计算能力。图形处理器通用计算经过多年的发展,未来仍将继续保持高速发展。 GPGPU的关键技术研究中存在如下挑战:

17、(1)由于GPU硬件标准很难统一,因此导致编程模 型中难以合理分配异构计算资源。而对硬件体系不敏感、高度抽象的通用编程语言一直会存 在调试困难的挑战;(2)各种领域中的软件和算法向GPU移植的难题始终限制GPGPU发展, 设计高可靠性和复用性的公共并行算法库是一种有效的解决途径;(3)有效地解决分布式共 享存储模型中的数据一致性问题及造成的性能损失;(4)设计优化控制GPU缓存的普适性算 法,对提高各类算法性能有重要价值.GPU通用计算的应用领域尚需拓展,复杂网络研究 中社会网络、生物蛋白网络等均存在数据量大、计算密度大的重要算法,因此对复杂网络并 行算法的研究是个崭新的交叉研究方向。参考文献

18、:Yang Xue-Jun, Yan Xiao-Bo, Xing Zuo-Cheng, Deng Yu, Jiang Jiang, Du Jing, Zhang Ying.Fei teng 64 stream processing system: Architecture, compiler, and programming. 2009, 20(8):1142-1156Wu En-Hua. State of the art and future challenge on general purposr computation by praphics processing unit. Journ

19、al of Software, 2004, 15(10):1493-1504Wu En-Hua, Lliu You-Quan. General purpose computation on GPU. Journal of computer Aided Design & Computer Graphics, 2004,16(5):601-611(in Chinese)Owens John D, Luebke D, Govindaraju N, Harris M, Kruger J, Lefohn Aaron E, Purcell Timothy J. A survey of general pu

20、rpose computation on graphics hardware. Computer Graphics Forum, 2007,26(1):80-113Owens John D, Houston M, Luebke D, Green S, Stone John E, Phillips James C. GPU computing: Graphics processing units powerful, programmable, and highly parallel are increasingly targeting general-purposr computing appl

21、ications. Proceedings of the IEEE, 2008 , 96(5): 879-899http: / / wwwlnvidialcom/ object/gpu1html OL7 Dun das J, M udg e T . Improving Data Cache Performance by Pre-ex ecuting Instructions Under a Cache Miss C / Proc of the 1997 Int, l Conf on Supercomputing, 1997.Owens John D, Houston M, Luebke D,

22、Green S, Stone John E, Phillips James C. GPU computing: Graphics processing units powerful, programmable, and highly parallel are increasingly targeting general-purpose computing applications. Proceedings of the IEEE, 2008, 96(5):879-899Hensley Justin. AMD CTM overview/Proceedings of the Special Int

23、erest Group on Computer Graphics and Interactive Techniques (SIGGRAPH, 07). San Diego, California, USA, 2007 : 7-33Liu Wei, Lewis Brian, Zhou Xiao-Cheng et al. Abalanced programming model for emerging heterogeneous multicore system/Procecdings of the 2nd USENIX Conference on Hot Topics in Paralelism. California, USA, 2010: 3-6

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论