● 揭秘GPU高性能计算关键
高性能计算并不是纯数据吞吐,也不是纯计算密集型任务,它对计算机硬件拥有较为复杂的要求。所以单独提升单线程能力不能解决高性能并行计算需求,单纯堆积流处理器数量也无法适应未来的数据和指令环境。CPU和GPU都必须做出改变,但是我们明显能够感觉到GPU改变的代价小于CPU特别是X86架构的CPU。基本上每隔一年,GPU的架构体系就会发生一次转变,而每两代转变则代表计算能力的一次飞跃。
有效地运用计算资源的财富要涉及到多个重要目标。首先必须合理组织计算资源,使得重要的数据和指令类型获得较高的加速比。同时大量提供计算单元还远远不够;必须实现高效的通信、高效的线程管理,充足的寄存器与前端资源……这样才有可能让流处理器尽可能地被数据填充而不浪费。我们将GPU高性能计算的关键分为以下几个部分来分析:
典型的CPU内部功能单元
1、高效的计算方法
GPU核心上可以放下上百个计算单元。为了计算的目的架构设计师必须最佳利用晶体管的关键是使致力于计算的硬件最大化,并且允许多个计算单元通过并行同时操作,而且保证各个计算单元以最大效率操作。
虽然现在的半导体制程技术允许在单个芯片内放置大量晶体管以提升单核心性能或提升并行度,但资源不是无限的。我们可以广义地将晶体管的用途划分为3类:控制类(这些晶体管用于指挥操作);数据通路(Datapath,这些硬件用来执行计算);存储类(这些硬件用于存放数据)。
在数据通路之内,可以允许在相同时间的并发操作。这种技术被称为并行性。我们可以构想几个方式以利用并行性和允许同时执行。复杂的任务比如图形处理,一般由几项连续的任务组成,当运行这些应用时,我们能够在不同的数据上同时运行几个这样的任务(任务并行性)。在一个阶段之内,如果在几个数据元素上执行一个任务,我们能够利用数据并行性同时对数据求值。而在一个数据元素的复杂求值之内,能够同时求值几个简单操作(指令并行性)。
2、高效的通信方法
GPU芯片外的存储器速度总是无法跟上GPU算术能力的增长幅度,所以作为一颗高性能处理器,GPU必须要想办法突破这道“存储器墙”,必须尽量减少芯片外通信以节能带宽降低延迟。为了逼近终极目标“消灭片外通信”,也就是尽量只在芯片内部进行数据通信,芯片外通信只用于获取或者保存真正的全局数据。
在GPU内部加入Cache是一种有效的方式:最近使用的数据的副本可以由存储器传递到Cache中并根据替换协议不断更改。Cache由于对晶体管消耗较大,缓存协议难以实现,一直是GPU设计的重要障碍之一。比如在GPU上经过几代尝试已经成熟的Texture cache可以存放纹理,又如NVIDIA在G80架构中加入的Shared Memory和AMD在RV770架构加入的LDS(Local Data Share)。这个共享寄存器位于每个流处理器单元内部的所有运算单元中,它在通用计算时负责共享数据和临时挂起线程。容量足够大的共享缓存可以在运算时提高线程的挂起能力,还有很多东西比如乱序,分支等等都会受益于Cache的加入。
- 第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页:全文总结与未来架构展望