计算机
体系结构作业
作业题目      GP学习编程的单机游戏GPU综述   
                           
                         
            研  1628     
  2016    秋季  学期
1、引言
多核CPU和多核GPU已经出现并逐渐主导最先进的高性能计算。 虽然当代CPU和GPU是使用
相同的半导体技术制造的,但是GPU的计算性能比CPU的计算性能更快地增加。 不同的设计选择驱动他们进入不同功能的设备,给定相同的晶体管数量的顺序。 CPU针对高性能,任务并行工作负载进行了优化,因为更多的晶体管专用于控制逻辑,例如每个处理元件中的分支预测和无序执行。 GPU针对高性能数据并行工作负载进行了优化,因为更多的晶体管专用于算术逻辑,例如浮点计算和每个处理元件中的超越函数。
GPU(Graphics Processing Unit)早期的主要任务是用来进行3D图形计算和处理。近年来,受游戏市场和视景仿真需求的牵引,并随着人们对计算性能要求的不断提高,GPU得到了飞速的发展,主流GPU 的单精度浮点处理能力和外部存储器带宽都远远超过同期的GPU,而且GPU已经从以往的固定流水线操作模式发展成可编程流水线模式;另一方面,受工艺、材料和功耗的物理限制, 相应的现代 GPU 也采用了多核的架构用来提高 GPU 的并行处理能力。
在2003~2004年左右, 图形学之外的领域专家开始注意到GPU与众不同的计算能力,开始尝试把GPU 用于通用计算(GPGPU)。
由此,开启了新的计算时代,即图形处理单元(GPGPU)上的通用计算。
GPGPU代表General Purpose Computing on Graphics Processing Unit,就是"图形处理器通用计算技术"。这种新兴的加速技术试图把个人计算机上的显卡当做CPU这样的通用处理器来用,使显卡的强劲动力不仅发挥在图形处理上。
2、GPU的发展历史
从 SIGGRAPH 2003大会首先提出GPU通用计算概念,到 NVIDIA公司2007年推出CUDA平台, GPU通用计算依靠其强大的计算能力和很高的存储带宽在很多领域取得了成功。越来越多的信号告诉我们,GPU通用计算是一片正在被打开的潜力巨大的市场。
从1991年到2001年,这期间,微软公司的Windows操作系统在全球流行,极大地刺激了图形硬件的发展。S3 Graphics公司推出了公认的全球第一款图形加速器,可以被认为是显卡设备的雏形。早期的GPU只能进行二维的位图(bitmap)操作,但在20世纪90年代末,已经出现了硬件加速的三维的坐标转换和光源计算(transformation and lighting,T&L)技术。
从2001年到2006年,这是酝酿现代GPU产品极为重要的一段时间,各种硬件加速技术的出现使显卡的性能突飞猛进。其中标志性的事件是可编程图形处理器的出现。GeForce 3是第
一款支持可编程图形流水线(programmable graphics pipeline)的GPU产品。从此,可编程的着功能被加入了硬件。图形作业的可编程功能使得着器可以按照用特定编程语言表达的算法来给多边形上,并按照用户制定的策略来转换顶点坐标。GPU拥有了更大的可扩展性和适应性,不再是一个功能单一的设备,它开始使得复杂的三维图形效果成为可能。这个时期出现的各种令消费者疯狂的电脑游戏和动画产品,从市场的角度为显卡功能的开发更进一步注入了动力。
GPGPU技术也是在这个时期开始发展起来的。GPU高度并行化的架构和可编程的着器使人们渐渐开始用它计算通用任务。在将GPU用到科学计算时,这些可编程的着器和着语言(shading languages)就成了技术的核心。把算法用着语言实现,再加载到着器里,同时把原本的图形对象替换为科学计算的数据,这就实现了显卡对通用数据的处理。用着语言实现的GPGPU技术是第一代的GPGPU技术,或称为经典GPGPU、传统GPGPU。着器编程语言是为复杂的图形处理任务设计的,而非通用科学计算,所以在使用时需要通过一系列非常规的方法来达到目的。
2006年至今,这一时期的GPU从硬件设计之初就开始考虑到了GPGPU的应用,因而它们从
根本上比早前的GPU更为通用。2006年,NVIDIA公布了统一着器模型(Unified Shader Model)和它的GeForce 8系列GPU,GPU从此进入了通用计算时代。统一着器模型整合了顶点着器(vertex shaders)和片段着器(fragment shaders),或称为像素着器(pixel shaders),每一个着器都可以自由承担原本某种特定着器的工作。这样,GPU在图形处理时空闲的着器更少,计算效率更高。同时,这样无差别的着器的设计,令GPU成了一个多核的通用处理器。
2010NVIDIA公司推出基于Fermi架构的Tesla20系列GPUFermi架构是GPU架构发展史上一次革命性的跨越其在保持图形性能的前提下大大提高了GPU通用计算的能力Fermi不仅使得SM功能增强还提高了其可编程性和执行效率为了符合通用计算对于精度和速度的要求,Fermi的流处理器都支持IEEE754-2008的单精度浮点标准和完整的32位整数计算,同时Fermi架构使用了新的乘加指令FMA(fused multiply-add.FMA指令和MAD(multiply-add)指令相比,在做乘运算和加运算的时候只在最后运算的时候作一次舍入,避免了在执行加法时出现精度损失.双精度浮点计算在高性能计算中具有核心地位.Fermi架构下每个SM在一个时钟周期内可以完成16个双精度浮点数的FMA操作.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。