● GPU并行编程为何加速发展
回到我们刚开始讨论的地球科学、医学研究与金融建模那些计算问题,可能有很多读者会问到“为什么要花这么大力气将传统CPU上运行的程序移植到GPU环境中运行?”答案其实很简单——追求更高的性价比和性耗比。
GPU能够明显加速算术密集型并行计算任务
虽然GPU并不适用于所有问题的求解,但是我们发现那些对运算力量耗费巨大的科学命题都具备天然的“算术密集型”特色。这类程序在运行时拥有极高的运算密度、并发线程数量和频繁地存储器访问,无论是在音频处理、视觉仿真还是到分子动力学模拟和金融风险评估领域都有大量涉及。这种问题如果能够顺利迁移到GPU为主的运算环境中,将为我们带来更高效的解决方案。
在1996年,美国Sandia国家实验室研发了超级计算机“ASCI Red”,浮点运算性能首次突破1TFlops,但它需要非常多的节点和耗电。它是一套基于mesh网状结构(38 X 32 X 2)的MIMD大规模并行机(MIMD massively parallel machine),起初包含7264个计算节点、1212GB分布式内存和12.5TB磁盘存储容量。
该机器的原型使用的是英特尔的Pentium Pro处理器,每个处理器的时钟频率达到200MHz,后来才升级到Pentium II OverDrive处理器。升级后的系统拥有9632个处理器,每个处理器的主频为333MHz。ASCI Red超级计算机由104个机柜组成,占地面积达到了230平方米。
廉价的1TFLOPS解决方案——Radeon HD4000系列产品
时间一晃而过到2008年,ATI发布了统一渲染架构下的第二代PC领域GPU产品——Radeon HD4000系列产品,其中定位在中高端市场的Radeon HD4850显卡在当时使用了800个频率达到625MHz的流处理器,仅用110W的耗电带来了1TFlops的运算能力。这时人类获取1TFlops的经济支出仅为199美元。
一款HD5870相当于177台深蓝超级计算机节点
仅仅一年之后,ATI再次发力优化统一渲染架构,发布了Radeon HD5000系列产品,其中高端产品HD5870已经集成了2.7 TFlops运算能力。这颗GPU的问世标志着ATI已经成熟掌握了40nm制程工作、DirectX 11应用程序接口和吞吐带宽极高的DDR5显存。同时这颗GPU的运算能力相当于177台深蓝超级计算机节点。
传统意义上的GPU不善于运行分支代码,但是ATI和NVIDIA经过长期改进其内部架构已经使得GPU可以较为高效地运行分支、循环等复杂代码。同时因为GPU属于并行机范畴,相同的运算可以应用到每个数据元素的时候,它们可以达到最好的性能。在CPU编程环境中,写出每个输入数据元素有不同数量的输入的程序很容易,但在GPU这种并行机上还是有不少麻烦。
通用的数据结构正是GPU编程的最大困难之一。CPU程序员经常使用的数据结构如列表和树在GPU身上并不容易实现。GPU目前还不允许任意存储器访问,而且GPU运算单元的设计为主要操作是在表现位置和颜色的四维向量上。
不过这些并不能阻挡GPU编程的加速发展,因为GPU不是真的为通用计算而设计的,需要一些努力才能让GPU高速地服务通用计算程序。这些努力前些年是程序员而单独实现的,而随着ATI和NVIDIA开始看到高性能计算市场的硬件需求,我们看到无论是Fermi架构添加全能二级缓存和统一定址还是RV870架构不断优化LDS并放大并发线程数,这些都是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页:全文总结与未来架构展望