显卡帝手把手教你读懂GPU架构图

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

GPU架构“征途之旅”即日起航

显卡GPU架构之争永远是DIY玩家最津津乐道的话题之一,而对于众多普通玩家来说经常也就看看热闹而已。大多数玩家在购买显卡的时候其实想的是这款显卡是否可以满足我实际生活娱乐中的应用要求,而不大会很深入的关注GPU的架构设计。不过,如果你想成为一个资深DIY玩家,想与众多DIY高手“高谈阔论”GPU架构设计方面的话题的时候,那么你首先且必须弄明白显卡GPU架构设计的基本思想和基本原理,而读懂GPU架构图正是这万里长征的第一步。

显卡帝手把手教你读懂GPU架构图

通过本次GPU架构图的“征途之旅”,网友朋友将会和显卡帝共同来探讨和解密如下问题:

一、顶点、像素、着色器是什么;

二、SIMD与MIMD的架构区别;

三、A/N在统一渲染架构革新中的三次交锋情况如何;

四、为什么提出并行架构设计;

五、A/N两家在GPU架构设计的特点及其异同点是什么。

以上目录也正是本文的大致行文思路,显卡帝希望能够通过循序渐进的分析与解读让众多玩家能够对GPU架构设计有个初步的认识,并且能够在读完本文之后能对GPU架构图进行独立认知与分析的基本能力,这将是本人莫大的欣慰。

非统一架构时代的GPU架构组件解读

上世纪的绝大多数显示加速芯片都不能称之为完整意义上的GPU,因为它们仅仅只有像素填充和纹理贴图的基本功能。而NVIDIA公司在1999年所发布的GeForce 256图形处理芯片则首次提出了GPU的概念。GPU所采用的核心技术有硬件T&L、立方环境材质贴图和顶点混合、纹理压缩和凹凸映射贴图、双重纹理四像素256位渲染引擎等,而硬件T&L (Transform and Lighting,多边形转换与光源处理)技术可以说是GPU问世的标志。

演示硬件几何和光影(T&L)转换的Demo

● 传统的固定渲染管线

渲染管线也称为渲染流水线,是显示芯片内部处理图形信号相互独立的的并行处理单元。在某种程度上可以把渲染管线比喻为工厂里面常见的各种生产流水线,工厂里的生产流水线是为了提高产品的生产能力和效率,而渲染管线则是提高显卡的工作能力和效率。

什么叫一条“像素渲染管线”?简单的说,传统的一条渲染管线是由包括Pixel Shader Unit (像素着色单元)+ TMU(纹理贴图单元) + ROP(光栅化引擎)三部分组成的。用公式表达可以简单写作:PS=PSU+TMU+ROP 。从功能上看,PSU完成像素处理,TMU负责纹理

渲染,而ROP则负责像素的最终输出。所以,一条完整的像素管线意味着在一个时钟周期完成至少进行1个PS运算,并输出一次纹理。

● Shader(着色器)的引入

而GPU的下一次重大革新则是引入了Shader(着色器)。着色器替代了传统的固定渲染管线,可以实现3D图形学计算中的相关计算,由于其可编辑性,从而可以实现各种各样的图像效果而不用受显卡的固定渲染管线限制。这极大的提高了图像的画质。而从GeForce 3到GeForce 9,GPU的发展都是一直基于这种用于显卡硬件几何架构/渲染过程的Shader来进行的。

传统(像素)管线/Shader示意图

● Shader(着色器)的分类

早期的Shader(着色器)有两种,一种是顶点着色器,称为Vertex Shader(OpenGL

称为vertex program),取代固定渲染管线中的变换和光照部分,程序员可以自己控制顶点变换、光照等。另一种是像素着色器,称为Pixel Shader(OpenGL称为fragment program),取代固定渲染管线中的光栅化部分,程序员可以自己控制像素颜色和纹理采样等。

3D场景的对象都是由顶点形成

关于顶点,我们需要小小说明一下:所有3D场景的对象都是由顶点形成。一个顶点是X、Y、Z坐标形成的3D空间中的一点,多个顶点聚在一起(至少四个)可形成一个多边形,如三角形、立方体或更复杂的形状,将材质贴在其上可使该组件(或几个排好的组件)看起来更真实。上图的3D立方体就是由八个顶点所形成,使用大量顶点,可形成弧线形对象等较复杂的图像。

传统shader指令结构

● GPU的像素着色单元和顶点着色单元

在图形处理中,最常见的像素都是由RGB(红绿蓝)三种颜色构成的,加上它们共有的信息说明(Alpha),总共是4个通道。而顶点数据一般是由XYZW四个坐标构成,这样也是4个通道。在3D图形进行渲染时,其实就是改变RGBA四个通道或者XYZW四个坐标的数值。为了一次性处理1个完整的像素渲染或几何转换,GPU的像素着色单元和顶点着色单元从一开始就被设计成为同时具备4次运算能力的算数逻辑运算器(ALU)。

SIMD和MIMD两种结构你知道吗?

在我们继续介绍GPU架构设计之前我们需要对SIMD和MIMD这两种结构进行一个详细的说明。1966年,MichealFlynn根据指令和数据流的概念对计算机的体系结构进行了分类,这就是所谓的Flynn分类法。Flynn将计算机划分为四种基本类型,即SISD、MIMD、SIMD、MISD。

SIMD(Single Instruction Single Data Stream,单指令单数据流)结构

传统的顺序执行的计算机在同一时刻只能执行一条指令(即只有一个控制流)、处理一个数据(即只有一个数据流),因此被称为单指令单数据流计算(Single Instruction Single Data Stream,SISD)。

MIMD(多指令流多数据流)结构

而对于大多数并行计算机而言,多个处理单元都是根据不同的控制流程执行不同的操作,处理不同的数据,因此,它们被称作是多指令流多数据流计算机,即MIMD(Multiple Instruction Stream Multiple Data Stream,简称MIMD)计算机,它使用多个控制器来异步地控制多个处理器,从而实现空间上的并行性。

● 传统SIMD架构在执行效率下降的原因分析

数据的基本单元是Scalar(标量),就是指一个单独的值,GPU的ALU进行一次这种变量操作,被称做1D标量。由于传统GPU的像素着色单元和顶点着色单元从一开始就被设计成为同时具备4次运算能力的算数逻辑运算器(ALU),所以GPU的ALU在一个时钟周期可以同时执行4次这样的并行运算,所以ALU的操作被称做4D Vector(矢量)操作。一个矢量就是N个标量,一般来说绝大多数图形指令中N=4。

相关文档
最新文档