● CPU与GPU的区别和发展方向
GPU作为今天的高性能处理器在设计方面已经和以往的图形流水线有着不同的目标,它已经开始瞄准通用计算程序。一般来讲,这类程序相对于图形运算的并行度不是很整齐,甚至并行度有所下降,需要较为复杂的控制和较低的性能目标。
CPU编程模型一般是串行的,在它们的应用程序中不会充分地利用数据并行性。CPU硬件反应了这种编程模型:在常见的情况中,CPU在同一时刻只处理一个数据,不利用数据并行性。而最近几年的SSE和最新的AVX指令集提高了数据并行执行能力,但是CPU所利用的并行程度还是远小于GPU。
并行硬件在CPU数据通路中较不流行的一个原因是设计者把更多的晶体管用于控制硬件。CPU程序比GPU程序所要求的控制要复杂很多,多以CPU的晶体管和连线有很大一部分用于实现复杂的控制功能,如分支预测和乱序执行。结果CPU的核心只有很少一部分用于运算。由于CPU的目标是通用程序,所以它们不为特殊功能包含专门的硬件。而GPU可以为特殊任务实现专用硬件结构,这些固定功能单元远比通用可编程方案提供的效率高的多。我们可以从上一页的两张图片中看出CPU和GPU对晶体管的使用。
最后,CPU内存系统被优化为极小的延迟而不是GPU内存系统瞄准的最大吞吐量。由于缺乏并行性,CPU程序必须尽快返回内存以继续前进。结果,CPU内存系统包含几级Cache以最小化延迟。然而Cache对很多数据类型是无效的,包括图形输入和只访问一次的数据。对于图形流水线,为所有元素最大化吞吐量而不是为所有元素最小化延迟,会提升内存系统的使用率和高性能计算的整体实现。
每代新硬件对于GPU厂商来说都是一个挑战:他们如何有效地使用附加的晶体管资源来增加性能和功能?新的晶体管增量将致力于增加性能,但是架构师必须清醒地认识到这些晶体管该如何给运算单元、控制单元和存储单元分配以达到最佳效能。如果不能平衡这种压力,或者对未来的应用分析导致整个设计思路发生偏差,那么对于下一代GPU产品将是很严重的打击。
GPU的功耗增长同样是可怕的问题,2003年上市的GeForce FX 5800 Ultra是第一款遇到功耗问题的GPU,或者说业界第一次感受到功耗问题的严重性。此后的大芯片设计还有Radeon X1900和DirectX 10时代的大部分芯片。ITRS从2003年开始大家力度关注功耗对于芯片设计的影响,而2009年的报告已经将逻辑器件的按比例缩小引起的漏电、短沟效应、材料适应性等问题列为半导体设计面临的严峻考验。而GPU作为数倍超越摩尔定律发展的大型芯片,其表现更加令人担忧。
几何与渲染代表了GPU的两大功能区
在可编程性方面,虽然近几年的GPU设计已经足够多的照顾到了并行计算领域的需求,但是GPU的可编程性仍然较弱。从数量上说,统一渲染着色器(Unified Shader)和固定功能单元(Fixed Function)是GPU的两个主要部分,而大部分固定功能单元是无法可编程利用的。从深度来来说,虽然我们在NVIDIA新开发的Fermi架构中看到了统一定址和全能缓存等设计,但是GPU所能够涉及到的并行计算程序仍然需要使用专门的API和较为低级的语言开发,程序员对于运用GPU的缓存和其他特性仍然显得手足无措,更何况还要避免分支的出现和适应复杂的GPU存储体系。
从发展历程来看,GPU已经包括了原先属于CPU的功能。早期的消费级图形硬件在图形处理器上甚至无法执行几何处理,今天已经能够借助固定功能单元来实现了。虽然GPU功能主要增加方向是图形流水线中的可编程性,但是GPU设计者仍然在把更多功能放在GPU上执行。尤其是今天的游戏需要大量的物理特效和人工智能计算或者图像后处理(Post Process)。这些计算任务在GPU上完成拥有更高的加速比,是相当有吸引力的。
未来的高性能处理器市场将因为GPU的飞速发展变得更有看点,当GPU将越来越多原来在CPU上的应用转移到自己身上时,CPU也不会停滞不前。虽然它拥有较高的通用性,但是CPU的并行能力也在提升,这种提升不会停滞不前。未来CPU与GPU厂商的冲突将会愈演愈烈。计算机系统的资源分配是偏向CPU还是GPU?GPU是否会因为通用性的提高而替代CPU?还是CPU也变身为几百个核心的高能处理器来对抗GPU?这些令人兴奋的问题将会是未来处理器体系结构设计者面临的重要选择。
- 第1页:全文导读与内容简介
- 第2页:前言:通过GPU见证行业变革
- 第3页:第一章:GPU工作原理与并行计算
- 第4页:21世纪视觉需求与GPU变化
- 第5页:从山峰渲染了解GPU图形流水线
- 第6页:CPU与GPU的设计方向决定运算能力
- 第7页:GPU并行编程为何加速发展
- 第8页:GPU并行计算已成未来趋势
- 第9页:初识高性能并行计算
- 第10页:高性能并行计算发展历程
- 第11页:高性能并行计算单元分类
- 第12页:初识基于GPU系统的云计算
- 第13页:第二章:GPU结构与ATI产品发展
- 第14页:统一着色器架构释放GPU运算能力
- 第15页:传统GPU发展与着色器管线
- 第16页:传统SIMD结构流处理器指令细节
- 第17页:MIMD结构流处理器指令细节
- 第18页:R600时代对SIMD架构补充与优化
- 第19页:两种结构流处理器优劣对比
- 第20页:R300以来的芯片架构及其影响
- 第21页:ATI第一代统一渲染架构Xenos
- 第22页:统一渲染GPU R600临危受命
- 第23页:AMD对GPU架构的不断改进和优化
- 第24页:未来ATI图形芯片架构预测
- 第25页:第三章:GPU通用计算发展与细节
- 第26页:多核并行计算困惑与发展
- 第27页:基于AMD CPU+GPU异构计算平台
- 第28页:着色器模型变化历程与总结
- 第29页:Shader计算能力快速发展
- 第30页:揭秘GPU高性能计算关键
- 第31页:CPU与GPU的区别和发展方向
- 第32页:如何将GPU功能单元映射为通用单元
- 第33页:分支对GPU结构体系的挑战
- 第34页:GPU与CPU将如何演绎融合与吞并
- 第35页:第四章:GPU内部计算实现细节
- 第36页:GPU主要计算单元分布和职能
- 第37页:GPU内部通用计算代码运算过程
- 第38页:认识GPU浮点计算精度
- 第39页:整数运算能力与未来融合架构
- 第40页:GPU存储体系特点与变化
- 第41页:ATI GPU吞吐特性对比与分析
- 第42页:ATI GPU OPEN CL综合性能分析
- 第43页:先进混合架构之Larrabee展望
- 第44页:概念型融合架构之Fusion APU展望
- 第45页:GPU进化架构之Fermi分析
- 第46页:第五章:ATI GPU通用计算实例
- 第47页:ATI Stream技术发展与现状
- 第48页:OPEN CL接口技术与异构运算
- 第49页:Havok引擎与CPU+GPU异构运算
- 第50页:BOINC平台充沛的ATI GPU加速项目
- 第51页:最具影响力的Folding@home项目
- 第52页:GPU架构对于其他实例的适应性
- 第53页:全文总结与未来架构展望