● 基于AMD CPU+GPU异构计算平台
通过前文分析我们得知目前的主流计算能力来自CPU和GPU。CPU与GPU一般经北桥通过PCI-E总线连接,各自有独立的外部存储器,分别是内存与显存。在一些芯片组中使用的集成GPU没有独立的显存芯片,而是用内存中划出一部分充当显存。Intel在i3系列CPU中将一颗低端GPU核心集成到CPU基板上,但是受到功耗面积发热等限制,目前Intel还无法集成规模更大的GPU。AMD提出的Fusion计划第一步也是同样道理,既不可能将一颗性能级GPU集成到CPU中,也无法为这颗GPU提供独立的显存空间。
为游戏服务的CPU+GPU异构模式
传统的CPU+GPU异构模式是为图形运算服务的,典型应用是图形实时渲染。在这类应用中,CPU负责根据用户的输入和一定的规则(如游戏AI)确定在下一帧需要显示哪些物体,以及这类物体的位置,再将这些信息传递给GPU,由GPU绘制这些物体并进行显示。两者的计算是并行的,计算过程之间没有数据传递和分享;在GPU计算当前帧的时候,CPU可以计算下一帧需要绘制的内容。
在传统的CPU+GPU异构模式中,CPU负责的是逻辑性较强的事物计算,GPU则负责计算密集型的图形渲染。为了满足这类应用的计算需求,CPU的设计目标是使执行单元能够以很低的延迟获得数据和指令,因此采用了复杂的控制逻辑和分支预测以及大量的缓存来提高执行效率;而GPU必须在有限的时间内和有效的面积上实现很强的计算能力和很强的存储器带宽,因此需要大量执行单元来运行这些相对简单的线程,同时在当前线程等待数据的时候切换到另一个处于就绪状态的等待计算的线程。简而言之,CPU对延迟更敏感,而GPU则侧重于提高整体的数据吞吐量。CPU和GPU的设计目标不同决定了两者在架构和性能上有巨大差异。
CPU和GPU在以下几个方面有着重要的差异和特色:
1、CPU核心通常在一个时刻内只能运行一个线程的指令,CPU的多线程机制通过操作系统提供的API实现,是一种软件粗粒度多线程。当一个线程中断,或者等待某种资源时,系统就要保存当前线程上下文并装载另一个线程上下文。而GPU采用的是硬件管理的轻量级线程,可以实现零开销线程切换。GPU在自身并行度提高的情况下遇到越多的线程则可以用计算隐藏存储延迟。
2、主流CPU普遍拥有2个到4个核心,每个核心拥有3-6条流水线。这些核心使用了很多提高指令级并行的技术,如超标量深度流水线、乱序执行、分支预测、缓存管理等等,也使用了诸如SSE、3Dnow!等数据级并行技术。大量晶体管用于这些技术细节的实现,所以单个核心面积较大,数目无法做大。而GPU包含数目众多的拥有完整前端的小核心,如HD5870拥有320个VLIW Core,每个VLIW Core又可以看作是5个1D流处理器组成的SIMD处理器。GPU通用计算API可以利用多个VLIW Core之间的粗粒度任务级或数据级并行,以及VLIW Core内的细粒度数据并行。
3、CPU中的缓存主要是用于减小访问存储器延迟和节约带宽。缓存在多线程环境下会发生失效反应:在每次线程上下文切换之后,后需要上下文重建,这个过程耗费了大量时钟周期。同时为了实现缓存与内存的数据一致性,需要复杂的逻辑控制来实现一致性协议。ATI GPU内目前没有复杂的缓存体系与替换机制。它的GPU缓存是只读的,ATI认为目前应用中,GPU缓存的主要功能是用于过滤对存储器控制器的请求,减少对显存的访问。所以GPU缓存的主要功能不是用于减少延迟,而是节约显存带宽。
AMD提出的CPU+GPU异构运算平台能够借此差异提供出色的整机性能,各部件能充分发挥自己的优势,处理拿手的应用,如传统的串行计算可以交给CPU负责,并行计算可通过AMD Stream流处理计算技术交给GPU运算。也就是说将来也多软件可利用GPU的大的性能为游戏、软件进行加速。目前支持AMD Stream的软件有AMD的AVIVO视频转换,而Adobe、ArcSoft、CyberLink等公司将来推出的软件将会加入AMD Stream的支持。
2009年末,AMD在面对当前的用户疑惑和对手宣传的GPU是系统核心等问题时曾经表示:“AMD的OpenCL for CPU Beta是下一代ATI Stream SDK中OpenCL开发平台的关键组成部分。预计新ATI Stream SDK将于今年晚些时候推出。我们是业界唯一一家同时提供CPU和GPU的厂商,在挖掘OpenCL潜力的道路上拥有独特的优势。通过支持OpenCL,ATI Stream技术将能够令开发者将运算负载灵活的划分到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页:全文总结与未来架构展望