




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、显卡帝教你读懂gpu架构图 轻松做达人第1页:gpu架构“征途之旅”即日起航显卡gpu架构之争永远是diy玩家最津津乐道的话题之一,而对于众多普通玩家来说经常也就看看热闹而已。大多数玩家在购买显卡的时候其实想的是这款显卡是否可以满足我实际生活娱乐中的应用要求,而不大会很深入的关注gpu的架构设计。不过,如果你想成为一个资深diy玩家,想与众多diy高手“高谈阔论”gpu架构设计方面的话题的时候,那么你首先且必须弄明白显卡gpu架构设计的基本思想和基本原理,而读懂gpu架构图正是这万里长征的第一步。显卡帝手把手教你读懂gpu架构图通过本次gpu架构图的“征途之旅”,网友朋友将会和显卡帝共同来探讨
2、和解密如下问题:一、顶点、像素、着色器是什么;二、simd与mimd的架构区别;三、a/n在统一渲染架构革新中的三次交锋情况如何;四、为什么提出并行架构设计;五、a/n两家在gpu架构设计的特点及其异同点是什么。以上目录也正是本文的大致行文思路,显卡帝希望能够通过循序渐进的分析与解读让众多玩家能够对gpu架构设计有个初步的认识,并且能够在读完本文之后能对gpu架构图进行独立认知与分析的基本能力,这将是本人莫大的欣慰。第2页:非统一架构时代的gpu架构组件解读上世纪的绝大多数显示加速芯片都不能称之为完整意义上的gpu,因为它们仅仅只有像素填充和纹理贴图的基本功能。而nvidia公司在1999年所
3、发布的geforce 256图形处理芯片则首次提出了gpu的概念。gpu所采用的核心技术有硬件t&l、立方环境材质贴图和顶点混合、纹理压缩和凹凸映射贴图、双重纹理四像素256位渲染引擎等,而硬件t&l(transform and lighting,多边形转换与光源处理)技术可以说是gpu问世的标志。演示硬件几何和光影(t&l)转换的demo 传统的固定渲染管线渲染管线也称为渲染流水线,是显示芯片内部处理图形信号相互独立的的并行处理单元。在某种程度上可以把渲染管线比喻为工厂里面常见的各种生产流水线,工厂里的生产流水线是为了提高产品的生产能力和效率,而渲染管线则是提高显卡的工作能力和效率。什么叫一
4、条“像素渲染管线”?简单的说,传统的一条渲染管线是由包括pixel shader unit(像素着色单元)+ tmu(纹理贴图单元) + rop(光栅化引擎)三部分组成的。用公式表达可以简单写作:ps=psu+tmu+rop 。从功能上看,psu完成像素处理,tmu负责纹理渲染,而rop则负责像素的最终输出。所以,一条完整的像素管线意味着在一个时钟周期完成至少进行1个ps运算,并输出一次纹理。 shader(着色器)的引入而gpu的下一次重大革新则是引入了shader(着色器)。着色器替代了传统的固定渲染管线,可以实现3d图形学计算中的相关计算,由于其可编辑性,从而可以实现各种各样的图像效果而
5、不用受显卡的固定渲染管线限制。这极大的提高了图像的画质。而从geforce 3到geforce 9,gpu的发展都是一直基于这种用于显卡硬件几何架构/渲染过程的shader来进行的。传统(像素)管线/shader示意图 shader(着色器)的分类早期的shader(着色器)有两种, 一种是顶点着色器,称为vertex shader(opengl称为vertex program),取代固定渲染管线中的变换和光照部分,程序员可以自己控制顶点变换、光照等。另一种是像素着色器,称为pixel shader(opengl称为fragment program),取代固定渲染管线中的光栅化部分,程序员可以
6、自己控制像素颜色和纹理采样等。3d场景的对象都是由顶点形成关于顶点,我们需要小小说明一下:所有3d场景的对象都是由顶点形成。一个顶点是x、y、z坐标形成的3d空间中的一点,多个顶点聚在一起(至少四个)可形成一个多边形,如三角形、立方体或更复杂的形状,将材质贴在其上可使该组件(或几个排好的组件)看起来更真实。上图的3d立方体就是由八个顶点所形成,使用大量顶点,可形成弧线形对象等较复杂的图像。传统shader指令结构 gpu的像素着色单元和顶点着色单元在图形处理中,最常见的像素都是由rgb(红绿蓝)三种颜色构成的,加上它们共有的信息说明(alpha),总共是4个通道。而顶点数据一般是由xyzw四个
7、坐标构成,这样也是4个通道。在3d图形进行渲染时,其实就是改变rgba四个通道或者xyzw四个坐标的数值。为了一次性处理1个完整的像素渲染或几何转换,gpu的像素着色单元和顶点着色单元从一开始就被设计成为同时具备4次运算能力的算数逻辑运算器(alu)。第3页:simd和mimd两种结构你知道吗? 在我们继续介绍gpu架构设计之前我们需要对simd和mimd这两种结构进行一个详细的说明。1966年,michealflynn根据指令和数据流的概念对计算机的体系结构进行了分类,这就是所谓的flynn分类法。flynn将计算机划分为四种基本类型,即sisd、mimd、simd、misd。simd(si
8、ngle instruction single data stream,单指令单数据流)结构传统的顺序执行的计算机在同一时刻只能执行一条指令(即只有一个控制流)、处理一个数据(即只有一个数据流),因此被称为单指令单数据流计算(single instruction single data stream,sisd)。mimd(多指令流多数据流)结构而对于大多数并行计算机而言,多个处理单元都是根据不同的控制流程执行不同的操作,处理不同的数据,因此,它们被称作是多指令流多数据流计算机,即mimd(multiple instruction stream multiple data stream,简称mi
9、md)计算机,它使用多个控制器来异步地控制多个处理器,从而实现空间上的并行性。 传统simd架构在执行效率下降的原因分析数据的基本单元是scalar(标量),就是指一个单独的值,gpu的alu进行一次这种变量操作,被称做1d标量。由于传统gpu的像素着色单元和顶点着色单元从一开始就被设计成为同时具备4次运算能力的算数逻辑运算器(alu),所以gpu的alu在一个时钟周期可以同时执行4次这样的并行运算,所以alu的操作被称做4d vector(矢量)操作。一个矢量就是n个标量,一般来说绝大多数图形指令中n=4。图形指令中标量与矢量由于顶点和像素的绝大部分运算都是4d vector,它只需要一个指
10、令端口就能在单周期内完成4倍运算量,显然simd架构能够有效提升gpu的矢量处理性能以使效率达到100%。但如果4d simd架构一旦遇上1d标量指令的时候,效率就会陡然降至原来的1/4,而其他的3/4模块几乎被闲置。为了解决这种资源被浪费的情况,ati和nvidia在进入dx9时代后相继采用混合型设计,比如r300就采用了3d+1d的架构,允许co-issue操作(矢量指令和标量指令可以并行执行),nv40以后的gpu支持2d+2d和3d+1d两种模式,虽然很大程度上缓解了标量指令执行效率低下的问题,但依然无法最大限度的发挥alu运算能力,尤其是一旦遇上分支预测的情况,simd在矢量处理方面
11、高效能的优势将会大大降低。分析一下其中的原因,我们可以得知:在早期,传统的1条渲染管线包含了4个基本单元,而大多数程序指令都是4d的,所以执行效率会很高。然而随着api的不断革新以及游戏设计中复杂的shader指令的发展,4d指令的出现比例开始逐步下降,而1d/2d/3d等混合指令开始大幅出现,故而传统的管线式架构效率开始越来越低下。第4页:gpu架构大变革:统一渲染架构袭来微软directx 10对于统一渲染架构的提出,可谓是gpu架构设计的一场大变革。它的核心思想是:将vertex shader(顶点着色)和pixel shader(像素着色)单元合并成一个具备完整执行能力的us(unif
12、ied shader,统一渲染)单元,指令可以直接面向底层的alu而非过去的特定单元,所以在硬件层面us可以同时吞吐一切shader指令,同时并不会对指令进行任何的修改,也不会对shader program的编写模式提出任何的强迫性的改变要求。gs(几何着色器)、ps(像素着色器)、vs(顶点着色器)首次三位一体:us从directx 10开始,微软真正将注意力开始转向了shader效率上来,借助提升shader效率来提升对应设计的运算单元的整体运行效率,而最终给玩家的体现就是带来流畅度(帧数)的提升。当然也可以用来进行更复杂和灵活的其他操作。n卡第一代gpu统一架构核心之g802006年11
13、月,nvidia发布了业界第一款directx 10构架的gpug80。g80由一套完整的包含仲裁资源的几何处理单元,与之相连的8个sm阵列,6组ta(纹理寻址)和6组rop(光栅化引擎)单元组成,整个构架以高速crossbar(交叉)总线直连。g80的标量流处理器架构nvidia在g80核心架构上把原来的4d着色单元完全打散,流处理器统统由矢量设计改为了标量运算单元。每一个alu都有自己的专属指令发射器,初代产品拥有128个这样的1d运算器,称之为流处理器(sp)。这些流处理器可以按照动态流控制智能的执行各种4d/3d/2d/1d指令,无论什么类型的指令执行效率都能接近于100%。g80这种
14、标量流处理器即mimd(多指令流多数据流)架构。虽然说g80将gpu shader执行效率提升到了一个新高度,但我们知道:4个1d标量alu和1个4d矢量alu的运算能力是相当的,前者需要4个指令发射端和4个控制单元,而后者只需要1个,如此一来mimd架构所占用的晶体管数就远大于了simd架构,这正是采用mimd架构的g80核心的软肋。a卡第一代gpu统一架构核心之r6002007年5月,amd收购ati之后推出的第一款directx 10 gpur600正式发布了。r600由一套几何处理单元,独立的线程仲裁器utdp,与仲裁机构相连的spu(流处理器)和tmu(纹理贴图)单元,以及完整的后端
15、所组成。整个构架以ringbus(环状)总线进行连接。r600的超标量流处理器架构相比大胆革新的g80核心架构,从stream processing units这一处可以观察出:r600身上有些许传统gpu的影子,因为spu依然采用的是simd(单指令多数据流)架构。r600拥有4个simd阵列,每个simd阵列包括了16个stream processing units,这样总共就是64个,但不能简单地认为它拥有64个流处理器,因为r600的每个units内部包含了5个alu,从微观上来看即:5d superscalar超标量架构。5d superscalar超标量架构amd历代着色器演进通过
16、上图就可以清楚的看到,simd(单指令多数据流)的超标量架构可以执行任意组合形式的混合指令,在一个stream processing units内部的5个alu可以在单个时钟周期内进行5次mad(multiply-add,乘加)运算,其中全功能的alu除了mad之外还能执行一些函数(sin、cos、log、exp等)运算,在特殊条件下提高了运算效率。对比总结:英伟达的所采用的mimd(多指令流多数据流)标量架构的g80核心需要占用不少额外的晶体管,所以在流处理器数量和理论运算能力方面稍显吃亏,但优点是gpu shader执行效率很高;而amd所采用的simd(单指令多数据流)超标量架构的r60
17、0核心则用较少的晶体管数实现了更多的流处理器数量和更高的理论运算能力,不过在执行效率方面则需要视情况而定了。第5页:n卡第二、三次gpu统一架构设计革新gpu架构的革新其实和cpu架构的革新很相似,比如说tick-tock(工艺年-构架年)模式。tick-tock(工艺年-构架年)是英特尔所提出的芯片技术发展战略模式,tick-tock:奇数年更新制作工艺,偶数年更新微架构。其实在gpu的研发过程中也同样是借鉴到了这种tick-tock模式。tick工艺年里,g92和rv670在核心架构上并无太大改动,而主要体现在工艺制程的革新。g92和rv670:核心架构没有任何变化n卡第二次gpu统一架构
18、设计革新而真正的核心架构革新当属gt200架构核心的推出,即nvidia第2代统一架构核心。gt200构架图gt200在结构上与g80具有一定的传承性。他们的前端构造是基本相同的,整体来讲两者之间大部分的区别来自于规模上的差异。gtx200核心微架构给我们主要带来如下改进:一、 每个sm可执行线程上限提升g80/g92核心每个sm(即不可拆分的8核心流处理器)单元最多可执行768条线程,而gtx200核心的每个sm可执行高达1024条线程,同时gtx200还拥有更多的sm单元,故而芯片性能实力是之前的2.5倍。二、 每个sm单元的指令寄存器翻倍gtx200与g80核心在sm单元结构上基本相同的
19、,但功能有所提升,在执行线程数增多的同时,nvidia还将每个sm单元中间的local memory容量翻倍(从16k到32k)。local memory用于存储sm即将执行的上千条指令,容量增大意味着可以存储更多的指令、超长的指令、或是各种复杂的混合式指令,这对于提高sm的执行效能大有好处。三、增加了atomic单元以及simt特性:atomic单元的添加使得gt200具备了原子操作的能力,atomic单元和原子操作的引入也为未来nvidia构架最终实现并行化设计起到了关键的先导作用;simt特性的引入则可以使得程序员在进行指令搭建的过程中无需考虑gpu究竟是simd还是mimd,从而将性能
20、优化的方向专注于shader的拆分,合并,灵活搭配以及thread管理方面。gt200与g80的异同n卡第三次gpu统一架构设计革新nvidia的gf100架构核心可谓是一款“千呼万唤始出来”的gpu,可能是因为40nm制程良品率不足或者是nvidia希望力求打造一颗在dx11和gpu通用计算方面都相当完美的核心,所以这款gpu真的让玩家等的太就了。gf100架构设计整体上看gf100核心架构,大致由四块组成,而这四大块就是gpc(graphics processing cluster,图形处理器簇),每个gpc单元都包含独立的几何引擎以及光栅化流水线,gpc模块之间透过新加入的l2 cach
21、e进行通讯、kernel和thread的协调以及数据共享。这无疑使得gf100的三角形吞吐量有了将近300%的提升,也实现了并行的分块化的渲染动作,更使得directx 11所要求的ts单元直接融入到了整个光栅化流水线内部。polymorph engines和raster engines在gf100中的设计同时,我们在gf100核心架构图和sm架构图上可以看到,相比g80/92和gt200核心架构多了polymorph engines和raster engines功能模块。那么这两个模块有什么作用了?多形体引擎(polymorph engine)多形体引擎则要负责顶点拾取(vertex fet
22、ch)、细分曲面(tessellation)、视口转换(viewport transform)、属性设定(attribute setup)、流输出(stream output)等五个方面的处理工作,dx11中最大的变化之一细分曲面单元(tessellator)就在这里。fermi gf100产品中有16个多形体引擎,每个sm一个,或者说每个gpc拥有四个。光栅引擎(raster engine)光栅引擎严格来说光栅引擎并非全新硬件,只是此前所有光栅化处理硬件单元的组合,以流水线的方式执行边缘/三角形设定(edge/triangle setup)、光栅化(rasterization)、z轴压缩(z
23、-culling)等操作,每个时钟循环周期处理8个像素。gf100有四个光栅引擎,每组gpc分配一个,整个核心每周期可处理32个像素。总而言之:gf100核心架构是自gpu进入dx10之后的最重大的一次架构革新,其在图形架构和并行计算架构方面都有着革命性的突破。我们在gf100身上看得到了高效、高针对性、贴近需求的gpu架构设计理念。第6页:a卡第二、三次gpu统一架构设计革新进过了r600架构设计的阵痛期,amd似乎要在第二次gpu架构革新战争中扬眉吐气。而事实也证明了:这款相比于gt200更小巧的芯片,却永远着更大的魔力。a卡第三次gpu统一架构设计革新amd在rv770这款gpu核心架构
24、上的革新可谓“大刀阔斧”,几乎对所有的模块都进行了改进,而从市场端所反应的销量来看:这确实是一次很不错的架构革新。rv770 gpu系统架构图通过上面的架构图我们首先来看看流处理器部分:rv670/r600是纵向4组simd阵列,每组16个shader,每个shader 5个流处理器;rv770是横向10组simd阵列,每组16个shader,每个shader 5个流处理器,也就是说流处理器部分只是单纯的规模扩充;其次、纹理单元和光栅单元部分数量翻了2.5倍,且抗锯齿算法已经由r600/rv670的流处理器部分转移至光栅单元部分,因此rv770的aa效率大幅提高;最后、rv770放弃了使用多年
25、沿用的环形总线,回归了交叉总线结构设计,有效提高了显存利用率,并节约了显存带宽。总之:rv770的整体架构的全面革新使得其相比rv670有了前所未有的改变。a卡第三次gpu统一架构设计革新虽然说amd抢在竞争对手nvidia之前发布了dx11显卡,但是相比较晚发布的gf100核心架构而言,rv870架构在改进方面显得有些微不足道。rv870(又称cypress)架构设计对比rv870和rv770核心架构我们发现,rv870并非rv770一样将1600个流处理器设计在同一区域,而是将1600个流处理器分为2组各800个流处理器。所以我们可以这样认为:除了显存位宽维持256bit不变之外,cypr
26、ess的其它所有规格都正好是rv770的两倍,而且在流处理器部分可以看作是双核心的设计,几乎就是并排放置了两颗rv770核心。rv870的相关特性在rv870核心架构设计中,amd仅为其配备了合乎directx 11要求的寄存器资源,改进了utdp对多线程的支持,在前端的几何单元中插入了一组ts单元,同时将运算单元中的gds提升到了64k。除此之外,我们仅能见到进一步放大的vliw core规模和其他配套的纹理资源及后端资源。各资源的整体比例较之rv770并未发生本质性的改变,vliw(very long instruction word,超长指令字) core的操作管理方式及周边资源密度也未见任何实质性的变化,甚至其utdp单元也依旧维持着抢占式多线程的管理方式。总之:除了增加了对dx11的支持,rv870(cypress)相比rv770
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 集装箱道路运输与物流市场分析考核试卷
- 棉花供应链管理与优化考核试卷
- 油气仓储安全评价与监控考核试卷
- 陶瓷制作中的热工设备与节能技术考核试卷
- 临床常见急救救护流程规范
- 多重感染肺炎
- 胎儿窒息临床急救护理
- 子痫患者的麻醉管理
- AIDS合并口腔念珠菌感染诊疗体系
- 外科护理局部麻醉
- 中国近代史纲要-期末考试复习重点
- 生命科学导论(中国农业大学)智慧树知到期末考试答案2024年
- 企业法务概论智慧树知到期末考试答案2024年
- 植物的花粉与传粉
- (高清版)DZT 0331-2020 地热资源评价方法及估算规程
- T-CEA 7027-2024 轨道交通用电梯数据采集智能分析预警系统及智慧运维大数据管理平台功能要求
- 得宝松封闭治疗
- 低压配电系统维护保养及操作规程
- 肝癌科普讲座课件
- 石膏固定术课件
- 闲鱼开店运营计划书模板
评论
0/150
提交评论