高等计算机体系结构文献综述GPU发展_第1页
高等计算机体系结构文献综述GPU发展_第2页
高等计算机体系结构文献综述GPU发展_第3页
高等计算机体系结构文献综述GPU发展_第4页
高等计算机体系结构文献综述GPU发展_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、北京科技大学高等计算机体系结构文献综述题目:GPU的发展研究学院计算机与通信工程学院班级124班学号S20121170姓名陈叁时间2012年11月02日引言随着半导体工艺的发展,芯片上集成的晶体管数目按照摩尔定律增加,各种处理器的存储和计算能力也因此不断提高。作为最常用的两类处理器芯片,CPU和GPU的性能发展呈现不同的规律。CPU是计算机的主控处理部件,需要应对各种复杂的控制过程,追求的标量性能注重通用性,因此在其芯片体系结构设计时,不得不将大量的芯片资源用于分支预测、乱序执行等复杂的控制逻辑,从而限制了其计算性能的提升。而GPU原本只负责加速图形计算,功能相对比较单一,芯片的控制逻辑比较简

2、单,主要的芯片资源都用于提升计算性能,因此其计算能力发展更为迅速。例如,AMD公司2009年第一季度发布的专业级流处理GPUFireStream9270i的单精度浮点峰值性能达到1.2TFlops,而Intel公司顶级的Core2Extreme9650四核处理器的浮点处理能力仅有96GFlops,可见在计算性能方面,GPU要高出CPU整整一个数量级。计算性能增长的同时,GPU的存储性能也在不断提升,24GB的存储容量、256512位宽的存储总线都为GPU发挥出强大的计算能力提供了充分的保证。除了计算性能外,从性/价比和性能/功耗比上看,GPU相对于通用CPU同样拥有明显的优势。这些特性都使得G

3、PU成为搭建超级计算机的良好选择,可以在有限的系统规模和金钱开销的限制下达到非常高的峰值计算性能,因此越来越受到高性能计算领域的关注。计算性能不断提升的同时,限制GPU广泛应用的另一制约因素)可编程性,也在不断提高。早期的GPU仅负责图形加速,流水线的功能固定,只能执行有限的几个操作以完成图像的生成。硬件工艺的进步使得GPU内处理单元的结构越来越复杂,功能也越来越灵活,其流水线具备了执行用户自定义程序的能力,从而具备了初步的可编程性。从最初的底层图形API发展到现在高度抽象的CUDA2、Brook+3以及OpenCL4,GPU的可编程性得到了极大的提升,已经具备了开发非图形领域应用的基本能力,

4、GPU上的通用计算(GeneralPurposecomputationonGPUs,简称GPGPU5)也成为体系结构、编程及编译等领域热点的研究方向之一。二、CPU/GPU协同并行计算研究进展a)GP3义及相关技术GPU文全称(GraphicProcessingUnit),中文翻译为“图形处理器"。GPUl相对于CPU勺一个概念,由于在现代的计算机中图形的处理变得越来越重要,需要一个专门的图形的核心处理器。GP电显示卡的“大脑”,它决定了该显卡的档次和大部分性能,同时也是2D显示卡和3D显示卡的区别依据。GPU使显卡减少了对CPU的依赖,并进行部分原本CPU勺工作,尤其是在3D图形处

5、理时。GP所采用的核心技术有硬体T&L、立方环境材质贴图和顶点混合、纹理压缩和凹凸映射贴图双重纹理四像素256位渲染引擎等,而硬体T&战术可以说是GPU的标志。T&L技术是最近在图形加速卡上都可以看得到的规格名称之一,这个名词的原来意义是:Transforming以及Lighting,光影转换。在图形加速卡中,T&L的最大功能是处理图形的整体角度旋转以及光源阴影等三维效果。3D图上有许多的连结点,每一个连结点都可视为一条线的转折点,通过这些连结点,图形芯片可以很清楚地将整个对象的结构辨识出来。然而,这些连结点在这张3D殳计图上的位置是固定不动的,换句话说,不管我

6、们从任何一个角度来看这个对象,连结点的位置并没有变动,变动的只有角度的不同。不过,对象图案若只进行到Transforming的阶段,在对象的表面也只有连结点而已,并没有加上颜色色块或任何材质的贴图表现,因此,很像是立体的3腌视图。一般来说,T&L的效能常用单位时间内所能处理多少个多边形的连结点变化以及光源运算为基准。像nVidia的GeForce2便能在每秒钟处理2500万个多边形,而有的产品甚至能达到3000万个多边形的效能。纹理压缩中将压缩后的数据存储进显存并不是终结。重要的是需要用显示芯片把这些压缩后的数据进行解压缩,再经过运算贴图到3D莫型上。这个过程就需要显示芯片在硬件上支持

7、了,如果不支持,对于压缩后的数据无法识别,照样不能完成纹理压缩,也不能发挥出纹理压缩的优势。凹凸贴图(bumpmapping),又称为皱面贴图,是一项计算机图形学技术,在这项技术中每个待渲染的像素在计算照明之前都要加上一个从高度图中找到的扰动。这样得到的结果表面表现更加丰富、细致,更加接近物体在自然界本身的模样b)协同计算概念CPU/GPU协同并行计算,其关键在于如何实现两者的高效“协同”。从国内外大量的研究工作来看,“协同”分为两个层次:1)CPU仅负责管理GPU的工作,为GPU提供数据并接收GPU传回的数据,由GPU承担整个计算任务;2)除管理GPU外,CPU还负责一部分计算任务,与GPU

8、共同完成计算。第一层次的“协同”比较简单,CPU与GPU间分工明确,但浪费了宝贵的CPU计算资源。如IBM的Power7处理器具有32个核心,因此CPU也具有强大的计算能力。可见,第二层次的“协同”是未来协同并行计算的发展方向三、GPGPO系结构目前可以生产支持通用计算的GPU厂家主要有AMD、NVIDIA和Intel。我们将简要介绍这陈希2012年11月2日三个厂商目前主流GPU的核心体系结构。1. AMD:APU为进一步提升处理器的工作效率,AMD公司将CPU和GPU的核心进行融合(Fusion),推出了APU7(AcceleratedProcessingUnits)系列处理器,以加速多媒

9、体和向量处理能力。业界有观点认为,这种融合的体系结构是未来处理器的发展方向。SEMDcnujncpijnorminterfilesvsicmmemorv图1AMDAPU结构示意图从图1可以看出,APU处理器将多核的x86CPU核心、GPU处理器核心(SIMD引擎阵列)、高速总线以及存控融合在一块单一芯片上,可以实现数据在不同处理核心间的高速传输,大大缓解了目前CPU和GPU之间的通信受限于外部总线的问题。2. NVIDIA:FermiFermi是NVIDIA公司推出的最新一代GPU,提供了强大的双精度浮点计算能力。Fermi较之以往GPU的不同之处在于:首先,为面向对数据精确度要求较高的应用,

10、Fermi首次在GPU勺存储器中引入了ECC校验的功能;其次,Fermi在保持了主流GPU中使用的SharedMemory作为片上存储层次外,还首次引入了通用的数据Cache,以更好地支持通用计算。Fermi中的Cache包含被SM私有的L1Cache和被所有SM享的L2Cache。此外,Fermi中的SharedMemory和Cache可以通过配置互相转化。最后,Fermi支持多Kernel同时执行。图2NVIDIAFermi体系结构示意图图2给出了Fermi的体系结构框图。图中包含16个SM,分布在共享的L2Cache周围,每SM均包含L1Cache、寄存器文件等私有存储资源,32个流处理

11、核心构成的计算阵列和线程调度单元。处理器的外围则分布着DRAMHost和线程调度等接口。值得注意的是,Fermi之前的GPU中SM内大多包含8个流处理核心,如GT200,因此需要4拍才能发射一个warp,而Fermi中将流处理核心数提升至32个,而且采用双发射技术,使得每拍可以发射2个warp,极大提升了线程发射效率。四、CUD陶介CUDA全称统一计算设备框架(ComputeUnifiedDeviceArchitecture,简称CUDA),是NVIDIA公司针对其GPU设计提出的GPGPU程卞II型,它也以笊言为基础,降低了编程难度。在CUDA计算模型中,应用程序分为host端和device

12、端,前者是指运行于CPU上的部分,后者则是运行于GPU上的部分,这部分代码称为核心(Kernel)函数。CPU代码准备好数据后,复制到显卡的存储器中,再调用核心函数进行执行,执行完毕后再由CPU代码将计算结果拷贝回主存。在CUDA计算模型下,GPU执行的最小单位是线程,多个线程组成一个线程块,线程块中线程可以共享一片存储器,并以任意顺序执行,在硬件资源受限的情况下甚至可以串行执行。一个核心程序由一个或多个线程块组成,一个应用则由若干个核心程序构成。block(2.0)blockKernelnthread(n,I)thread(n,n)图3CUDA计算模型示意图从CUDA体系结构的组成来说,包含

13、了三个部分:开发库、运行期环境和驱动。开发库是基于CUDA技术所提供的应用开发库。目前CUDA的1.1版提供了两个标准的数学运算库FFT(离散快速傅立叶变换)和CUBLAS离散基本线性计算)的实现。这两个数学运算库所解决的是典型的大规模的并行计算问题,也是在密集数据计算中非常常见的计算类型。开发人员在开发库的基础上可以快速方便的建立起自己的计算应用此外开发人员也可以在CUDA的技术基础上实现出更多的开发库。运行期环境提供了应用开发接口和运行期组件本数据类型的定义和各类计算、类型转换、内存管理、设备访问和执行调度等函数。基于CUDA开发的程序代码在实际执行中分为两种,一种是运行在C户U上的宿主代码,一种是运行在GpU上的设备代码。不同类型的代码由于其运行的物理位置不同,能够访问到的资源不同因此对应的运行期组件也分为公共组件、宿主组件和设备组件三个部分,基本上囊括了所有在GPGPU发中所需要的功能和能够使用到的资源

温馨提示

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

评论

0/150

提交评论