● GPU主要计算单元分布和职能
为了把通用的计算映射在GPU的专用硬件上,我们应该首先熟悉GPU所提供的运算资源。在统一渲染架构提出之前,GPU内部有两种可编程处理器,分别是顶点处理器和像素处理器,在图形运算中我们将它们称为Pixel Shader(像素着色器)、Vertex Shader(顶点着色器)。由于目前ATI R600到R800架构一直在使用Pixel Shader(像素着色器)所代表的SIMD结构流处理器,而NVIDIA G80到GF100一直在使用Vertex Shader(顶点着色器)所代表的MIMD结构流处理器,所以我们借助一些图片来为大家拆分GPU着色器单元的原理。
顶点处理器处理顶点流(由位置、颜色、法线向量和其他属性组成),这是组成多边形几何模型的元素。计算机图形一般用三角形网格来表示3D物体。顶点处理器应用一个顶点程序(也可以称为顶点着色器)根据相对摄像机的位置来转换每个顶点,然后每组3个顶点用来计算一个三角形,由此产生了片段流。
顶点如何表示三角形图元
可以认为片段是“原始像素”,它包含的信息用来在最终图形中产生一个着色的像素,包括颜色、深度和在显存区内的目的地。像素处理器将一个片段处理器(也可以称作像素着色器)应用到流中的每个片段,用来计算每个像素的最终颜色。
1、传统意义中的顶点处理器(MIMD结构)
由于图形运算具备较高的并行度,所以GPU内部都有多个顶点处理器。这些处理器是完全可编程的,而且ATI和NVIDIA都选择了以MIMD并行的方式操作输入顶点。3D计算机图形基本图元是投射空间中的3D顶点,表示为一个四元组(x,y,z,w)的向量,四维的颜色存储为四元组(red,green,blue,alpha)的向量(通常缩写为R,G,B,A),其中Alpha一般表示透明的百分比。
2、传统意义中的像素处理器(SIMD结构)
和顶点处理器一样,GPU中也包含大量并行的像素处理器,这些处理器也是完全可编程的。像素处理器以SIMD的并行形式操作输入元素,并行地处理四维向量。像素处理器有能力获取来自纹理的数据,因此它们可以进行聚集。但是像素输出地址总是在像素处理之前,也就是说处理器不能改变像素的输出位置。因此像素处理器不能进行散布。
这里所说的聚集(Gather)和散布(Scatter)是讨论在GPU上进行数据通信时提出的概念,它们是GPU两种主要的通信类型。聚集发生在当处理一个流元素时还需要其他流元素的信息,它聚集来自存储器其他部分的信息。另一方面散布发生在当处理一个流元素的时候把信息信息分布到其他流元素,它把信息“散布”到存储器的其他部分。
现代GPU通用计算程序中,适应于SIMD结构流处理器的程序比MIMD结构要多,因此这种结构可以有效处理吞吐需求较量大的并行度较高的数据类型,但是一旦遇到分支等因素的影响,MIMD的衰减要明显小于SIMD结构,所以MIMD结构可以更好地使用复杂数据与指令结构。
3、光栅器与纹理单元
在顶点处理器转换顶点之后,每组3个顶点都用于计算一个三角形,从这个三角形产生一个片段的流。产生片段的工作由光栅器(ROP单元)完成,光栅器可以认为是一个地址插值器或者是一个数据放大器。光栅器的这些功能专用于渲染三角形,而且用户是不可编程的。
像素处理器(TMU单元,由Texture Address 和Texture Filtering组成。翻译为:纹理定址单元和纹理拾取单元)可以以纹理的形式访问存储器。我们可以把纹理单元想象成一个只读的存储器接口,存储器读和写在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页:全文总结与未来架构展望