GTX680架构解析GPU版开普勒三大定律Word文档下载推荐.docx
- 文档编号:21597666
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:21
- 大小:1.82MB
GTX680架构解析GPU版开普勒三大定律Word文档下载推荐.docx
《GTX680架构解析GPU版开普勒三大定律Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《GTX680架构解析GPU版开普勒三大定律Word文档下载推荐.docx(21页珍藏版)》请在冰豆网上搜索。
HD6000的架构代号是NorthIsland(北方群岛),高端HD6970核心代号Cayman(开曼群岛),中端HD6870核心代号Barts(圣巴特,加勒比海某小岛);
HD7000的架构代号是SourthIsland(南方群岛),高端HD7970核心代号Tahiti(大溪地),中端HD7870核心代号Pitcairn(南太平洋某英属群岛),主流HD7770核心代号CapeVerde(佛得角,非洲最南边岛国)。
GPU图形架构的阴阳之争
今年一月份,在AMD发布HD7970时,咱们曾详细的分析过AMD代号为南方群岛的“GraphicsCoreNext”架构。
这是AMD收购ATI以后的近5年来第一次对GPU架构进行“伤筋动骨”的“手术”,而架构调整的核心内容那么是为并行计算优化设计,咱们发觉AMD的GCN架构与NVIDIA的GPU有很多相似的地方。
那时笔者曾感慨:
“在流处置器部份,终于不用费力的把AMD和NVIDIAGPU架构分开介绍了,因为GCN与SM已经没有本质区别了。
剩下的只是缓存容量、流处置器簇的数量、线程调度机制的问题,两边依如实际应用自然会有不同的判定,自家的前后两代产品也会对这些数量和排列组合进行微调。
AMD向NVIDIA的架构靠拢,证明了他这么连年来确实是在错误的道路上越走越远,还好浪子转头金不换,这次GCN架构简直确实是大跃进!
促使AMD做出革命性改良的一大缘故,确实是从R600开始SIMD(单指令多数据流)VILW(超长指令集)的效率问题,AMD的GPU固然拥有恐怖的浮点运算能力,但很多时候都不能完全发挥出来,由此致使游戏性能和计算性能都要大打折扣。
尔后的四代产品尽管在R600的基础上修修补补,但始终未能从全然上解决问题。
AMD承认,从VLIW到GCN是GPU的革命,这次革命NVIDIA几年前就完成了
NVIDIA的GPU从G80时期开始,其MIMD(多指令多数据流)一直以高效能而著称,但也存在一个让人头疼的问题——GPU流处置器数量较少、浮点运算能力太低,这一样限制了N卡在游戏和计算方面的实际性能。
AMD的SIMD架构能够用较少的晶体管造出庞大数量的流处置器、拥有恐怖的理论浮点运算能力;
而NVIDIA的MIMD架构必需利用更多的晶体管制造出看似比较少的流处置器,理论浮点运算能力相差很远。
两边走的都是极端线路,AMD以数量弥补效率的不足,而NVIDIA以效率弥补数量的劣势。
6年前从G80和R600开始,NVIDIA和AMD在GPU架构上分道扬镳,这么连年经历了风风雨雨以后,发觉极左或极右线路都有各自的局限性,修正主义治标不治本,唯有走中间线路才是正道!
只是中间线路也有不同的走法,有些人仍是偏左、有些人仍是偏右……
AMD的方向:
SIMD的另一种形式
从GPU外围模块来看,AMD的Tahiti和上代Cayman相较转变不大,只是强化了曲面细分单元,加入了双异步计算引擎罢了。
HD6970代号为Cayman的GPU核心架构图
HD7970代号为Tahiti的GPU核心架构图
最大的改变来自于流处置器部份,原有的SIMD引擎不见了,取而代之的是GCN阵列,那SIMD引擎与GCN阵列有什么本质区别呢?
Cayman拥有20个SIMD引擎,每一个SIMD引擎内部包括16个如此的4D矢量运算单元
Tahiti拥有32个GCN阵列,每一个GCN阵列里面包括4个SIMD-16单元
Tahiti的每一个GCN阵列里面包括4个SIMD单元,每一个SIMD单元内部包括16个1D标量运算单元。
如此的话Cayman的SIMD引擎是16x4=64个流处置器,而Tahiti的GCN阵列是4x16=64个流处置器,总数量尽管没有转变,但架构上是截然相反的设计——Tahiti相关于Cayman来讲革命性的改变确实是把4D矢量运算单元改成了1D标量运算单元!
可是,GCN架构与NVIDIA的CUDA架构仍是有明显的区别,那确实是GCN里面包括了4个SIMD-16单元,标量流处置器被硬性拆分为4个小组,而NVIDIA的SM那么没有这种设计,所有流处置器都一视同仁。
NVIDIA的道路:
从MIMD到SIMT
尽管AMD的架构在向NVIDIA靠拢,但两边仍是有明显区别,而且NVIDIA也在不断的改变。
至于NVIDIA和AMD历代产品架构上的转变,之前多篇文章中都已经交代过了,那个地址就再也不重复,咱们通过那个简单的数字转变,来了解一下:
先看看AMD方面,从R600一直到Cypress,能够说一直在堆SIMD,动辄翻倍,架构没有任何转变;
从Cypress到Cayman转变也不大,只是把矢量单元从5D改成4D;
从Cayman到Tahiti能够说是质变,SIMD被GCN取代,4D矢量运算单元改成1D标量运算单元。
而NVIDIA方面,那么是不断的对GPU的G、SM、CUDA核心等配比进行微调,在微调的进程中经历了两次突变:
第一次是GT200到GF100,第一次引出了GPC(图形处置器集群)的概念,GPC数量减少但SM数和流处置器数量增加很多;
第二次确实是此刻了,从GF100到GK104,SM数量减少,但流处置器数量暴增!
改变是为了适应形式的转变,解决此前显现的一些问题,那NVIDIA的架构有什么问题呢?
此前咱们多次提到过,尽管NVIDIA的GPU在效能方面占尽优势,但也不是十全十美的——NVIDIA最大的劣势确实是流处置器数量较少,致使理论浮点运算能力较低。
固然这只是表面现象,其背后的本质那么是MIMD(多指令多数据流)的架构,相当一部份比例的晶体管消耗在了指令发射端和操纵逻辑单元上面,因此流处置器数量始终低于对手。
GF110和GK104芯片对照图
为了保证GPU性能持续增加,NVIDIA必需花费更多的晶体管、制造出更大的GPU核心,而这些都需要先进的、成熟的半导体制造工艺的支持。
NVIDIA之因此在GF100(GTX480)时期落败,并非架构或研发端出了什么问题
(GF110/GTX580的成功能够证明),而是核心太大致使40nm工艺无法支撑,良率低下漏电流难以操纵,最终致使核心不完整且功耗庞大。
如此一来,NVIDIA原有的架构严峻受制于制造工艺,并非可持续进展之路。
为此,NVIDIA将芯片架构慢慢转向了SIMT的模式,即SingleInstructionMultipleThreads(单指令多线程),SIMT有别与AMD的SIMD,SIMT的益处确实是无需开发者费力把数据凑成适合的矢量长度,而且SIMT许诺每一个线程有不同的分支。
纯粹利用SIMD不能并行的执行有条件跳转的函数,很显然条件跳转会依照输入数据不同在不同的线程中有不同表现,那个只有利用SIMT才能做到。
SIMT在硬件部份的结构仍是要比SIMD复杂一些,NVIDIA仍是更注重效率一些,因此NVIDIA的流处置器数量仍是要比AMD少,但差距已经没以前那么夸张了。
开普勒之架构:
流处置器暴增之谜
基于效能和计算能力方面的考虑,NVIDIA与AMD不约而同的改变了架构,NVIDIA尽管仍是采纳SIMT架构,但也借鉴了AMD“较老”的SIMD架构之作法,降低操纵逻辑单元和指令发射器的比例,用较少的逻辑单元去操纵更多的CUDA核心。
于是一组SM当中容纳了192个核心的壮举就变成了现实!
通过上面那个示用意就看的很清楚了,CUDA核心的缩小要紧归功于28nm工艺的利用,而如此之多的CUDA核心,与之搭配的操纵逻辑单元面积反而缩小了,NVIDIA强化运算单元削减操纵单元的用意就很明显了。
Fermi的硬件相关性检查变成Kepler的软件预解码
现在相信有人会问,降低操纵单元的比例那是不是意味着NVIDIA赖以成名的高效率架构将会一去不复返了?
理论上来讲效率确信会有损失,但事实上并无想象中的那么严峻。
NVIDIA发觉线程的调度有必然的规律性,编译器所发出的条件指令能够被预测到,此前这部份工作是由专门的硬件单元来完成的,而此刻能够用简单的程序来取代,如此就能够节约很多的晶体管。
随意在开普勒中NVIDIA将一大部份指令派发和操纵的操作交给了软件(驱动)来处置。
而且GPU的架构并无本质上的改变,只是结构和规模和操纵方式发生了转变,只要驱动支持到位,与游戏开发商维持紧密的合作,效率损失必然会降到最低——事实上NVIDIA闻名的TheWay策略确实是干这一行的!
TheWay(游戏之道)打算能够保证NVIDA的GPU架构与游戏完美兼容
这方面NVIDIA与AMD的思路和目的是相同的,但最终体此刻架构上仍是有所区别。
NVIDIA的架构被称为SIMT(SingleInstructionMultipleThreads,单指令多线程),NVIDIA并非像AMD那样把多少个运算单元捆绑为一组,而是以线程为单位自由分派,操纵逻辑单元会依照线程的任务量和SM内部CUDA运算单元的负载来决定调动多少个CUDA核心进行计算,这一进程完满是动态的。
但不可轻忽的是,软件预解码尽管大大节约了GPU的晶体管开销,让流处置器数量和运算能力大增,但对驱动和游戏优化提出了更高的要求,这种情形伴随着AMD度过了好连年,此刻NVIDIA也要面对相同的问题了,希望他能做得更好一些。
开普勒之核心:
S与SM的改动细节
全新的Kepler相较上代的Fermi架构改变了什么,看架构图就很清楚了:
FermiGF100/GF110核心架构图
KeplerGK104核心架构图
GK104相较GF110,整体架构没有大的改变,GPU(图形处置器集群)维持4个,显存操纵器从6个64bit(384bit)减至4个64bit(256bit),总线接口升级至PCIE。
剩下的确实是SM方面的改变了:
GF100和GF104的SM架构图
那个地址之因此要把GF104这颗中端核心的SM架构图也列出来,是因为GF104相较高端的GF100核心做了一些细小的改动,这些改动也被沿用到了GK104当中。
另外从核心代号上来看,GK104其实确实是用来取代GF104的,而取代GF100的核心还有他人。
GK104的SMX架构图
NVIDIA把GK104的SM(不可分割的流处置器集群)称为SMX,缘故确实是暴增的CUDA核心数量。
但事实上其结构与上代的SM没有本质区别,不同的只是各部份单元的数量和比例罢了。
具体的区别逐个列出来进行对照:
1.NVIDIA此刻把流处置器称为CUDA核心;
2.
SFU(SpecialFunctionUnits,特殊功能单元)是比CUDA核心更强的额外运算单元,可用于执行抽象的指令,例如正弦、余弦、倒数和平方根,图形插值指令也在SFU上执行;
3.Warp是并行线程调度器,每一个Warp都能够调度SM内部的所有CUDA核心或SFU;
4.DispatchUnit是指令分派单元,分那么将Warp线程中的指令依照顺序和相关性分派给不同的CUDA核心或SFU处置;
5.LD/ST确实是载入/存储单元,能够为每一个线程存储运算源地址与途径,方便随时随地的从缓存或显存中存取数据;
6.TMU是纹理单元,用来处置纹理和阴影贴图、屏幕空间环境光遮蔽等图形后期处置;
通过以上数据对照不难看出,GK104暴力增加CUDA核心数量的同时,SFU和TMU这两个与图形或计算息息相关处置单元也同比增加,可是指令分派单元和线程调度器还有载入/存储单元的占比都减半了。
这也确实是前文中提到过的削减逻辑操纵单元的策略,现在如何保证把指令和线程填满一个CUDA核心,将是一个难题。
开普勒之频率:
CUDA频率再也不是双倍
除CUDA核心数量大增之外,开普勒架构还有个很明显的改变,那确实是CUDA核心的频率再也不是GPU频率的两倍,此刻整颗GPU所有单元的工作频率都是相同的,GTX680的默许频率达到了1GHz!
NVIDIA的上代产品,比如GTX560Ti,一些AIC的超频版本默许核心频率可达900MHz,CUDA频率是1800MHz。
按理说若是新一代架构改变不是专门大的话,在28nm的帮忙下核心频率到1GHz没有问题,那CUDA频率应该能够到2GHz才对。
而此刻的情形那么是CUDA的频率“被减半了”。
NVIDIA官方对CUDA与核心同频的说明是——功耗缘故,为了尽可能的操纵GTX680的功耗,再也不让CUDA工作在两倍频率下。
关于这种说明,笔者并非睬解,若是CUDA频率真能工作在2GHz下,性能提升两倍,现在功耗增加两倍又如何?
如此增加功耗是值得的,并非阻碍GTX680显卡的“每瓦性能”。
因此,笔者猜想这次CUDA与核心同频,应该有别的缘故,以下猜想纯属虚构,大伙儿随意看看不要当真:
缘故一:
这次NVIDIA对SMX的结构进行了大幅度的调整,除操纵逻辑单元削减外,过于密集CUDA单元结构也发生了一些转变,致使CUDA单元或操纵逻辑单元上不了更高的频率,因此此刻就和AMD一样同频了;
缘故二:
保留实力。
NVIDIA官方发言人在AMD发布HD7970以后曾表示:
AMDGCN架构“南方群岛”核心的表现并无超出NVIDIA的预期,一切尽在把握当中。
而Kepler架构那么将比南方群岛要强出许多,因为本来NVIDIA为新架构设计的对手是AMD更强的新产品,但事实上南岛并未达到NVIDIA的假想性能。
缘故三:
确实是功耗问题,强行让CUDA工作在双倍频率下对GPU的电路设计提出了很高的要求,28nm新工艺目前可能还尚未完全吃透,上高频有必然的难度。
尽管CUDA频率达不到两倍,但NVIDIA通过加入类似Intel睿频的技术,必然程度上提高了工作频率,性能也同比增加,而且高于预期,或说是对手不如预期。
开普勒之显存:
频率全面超越对手
咱们先来回忆一下显存操纵器的进展史:
NVIDIA:
G80(384bit)-G92(256bit)-GT200(512bit)-GF100(384bit)
AMD:
R600(512bit)-RV670(256bit)-RV770(256bit)-Cypress(256bit)-Cayman(256bit)-Tahiti(384bit)
384bit显存应该是高端显卡的标配
●
GK104核心什么缘故只有256bit显存?
大伙儿应该注意到了,NVIDIA最近几年来的高端显卡,很少有256bit显存的设计,此刻就连AMD都升级到384bit显存,256bit已经很难在跻身为高端,什么缘故NVIDIA新一代的GTX680竟然降级到了256bit?
答案在其核心代号上面,GK104的定位确实是取代GF104/GF114,它并非是NVIDIA最高端的GPU,显存方面自然可不能用最高端的配置。
GTX680显存频率弥补位宽不足,第一次达到6GHz!
另外,之前咱们反复提到过,AMD从HD4870开始第一次利用GDDR5显存,GDDR5的标准几乎能够说是AMD的人一手制定的,AMD历代GPU凭借GDDR5超高频率的优势,以较低的显存位宽专门好的操纵了本钱。
而NVIDIA从GTX480开始也利用了GDDR5显存,但频率一直都上不去,GTX400和GTX500系列显卡的显存频率一直在4000MHz上下彷徨。
NVIDIA的显卡在GPU频率方面超频能力还不错,但显存的超频空间几乎没有,即便有液氮的助力也无济于事。
此刻,随着开普勒的发布,NVIDIA在显存频率上面终于反超AMD,从头设计的显存操纵器冲破了频率的桎梏,刹时从4000MHz飙升至6000MHz,带宽提升达50%之多,那个幅度就相当于把256bit免费升级至384bit,显存带宽再也不是瓶颈了。
开普勒之其它:
多形体引擎缓和存设计
最后再来看看开普勒架构在其它方面的改良:
多形体引擎:
从GTX480开始,NVIDIA就宣称只有自己“做对了DX11”,因为GF100核心拥有多达16个多形体引擎,每一个多形体引擎内部都有独立的曲面细分单元,而HD5870整颗Cypress核心只有1个曲面细分单元。
通过专项测试来看,GTX480的曲面细分和几何性能都遥遥领先于HD5870。
AMD方面固然也意识到了孽弱的曲面细分性能是个瓶颈,一方面强调“曲面没必要分太细”,另一方面也在新一代产品中不断的增强曲面细分性能。
依照AMD官方的说法,HD6870通过双超线程分派处置器将中等程度的曲面细分性能提高了2倍;
HD6970通过双图形引擎又提升了2倍;
而HD7970那么从头设计了曲面细分单元,在所有品级下都能够达到HD6970的4倍!
最终HD7970的曲面细分能力相较HD5870提升了10倍左右!
在AMD不断更新架构的同时,NVIDIA的DX11GPU没有转变(GF110和GF100是一样的),显然HD7970的曲面细分性能已经超越了GTX580。
这次该NVIDIA着急了。
在开普勒架构中,咱们看到了多形体引擎版,结构上没有什么转变,但处置能力翻倍了。
NVIDIA称,Kepler的多形体引擎在同频率下的性能是Fermi的两倍,而且新引擎在重度曲面细分情形下的效率更高,性能损失更小。
DX11理论曲面性能性能测试,横轴为细分级别
值得注意的是,GK104只有8个多形体引擎,而GF110有16个多形体引擎,但最终GTX680的曲面细分性能比GTX580还要强,看来单个引擎的效能确实翻倍了,超出那部份的性能应该是高达1GHz频率的奉献。
能够看出,NVIDIA的曲面细分单元在重度细分模式下的效率更好一些,低级别模式下HD7970并非差还略占优势,但级别越高差距就越大。
依照目前DX11游戏的进展趋势来看,“曲面没必要分太细”的说法已通过时,不然AMD也就成倍的增加曲面细分性能了,以后的DX11游戏会加入高精度曲面细分引擎,届时N卡的优势会取得表现。
更快的高速缓存:
GK104的缓存设计与GF100没有区别,都是一级缓存、一级纹理缓存、二级缓存如此的层级设计,而且缓存容量的配比也没有转变,但因为模块化设计的关系,总容量有所减少。
缓存架构让各流水线之间能够高效地通信,减少了显存读写操作
GK104的每一个SMX当中配有64KB的SharedMemory/L1,GK104总共拥有8个SMX,因此一级缓存的总容量是512KB。
GK104的每一个光栅单元/64bit显存操纵器配有128KB的L2,GK104总共有4个64bit显存操纵器,因此二级缓存的总容量也是512KB。
与GF100的1MB一级缓存、768KB的二级缓存相较,GK104的缓存容量确实小了很多,那个能够通过芯片透视图明显的看出。
尽管缓存容量变小了,但速度快了很多,NVIDIA强调GK104的L2带宽比GF110增加了73%,其中改良的算法提高了30%的缓存命中率,另外的43%那么是得益于高达1GHz的核心频率。
另外,原子操作的吞吐量也大增倍,尤其是单一共享地址的原子操作可提升倍之多!
更多的纹理单元:
GK104的每一个SMX内部拥有16个纹理单元,8个SMX共计128个纹理单元;
GF110的每一个SM内部拥有4个纹理单元,16个SM共计64个纹理单元;
能够看出GK104这次大幅增加CUDA核心数量的同时,也没有忘记纹理单元。
除数量翻倍之外,纹理存取的限制也放开了,以前因为DX11API的限制,GPU最多只能对128个纹理进行操作,而此刻GK104能够利用超过100万像素的纹理贴图,而且能够并行的对多个纹理同时操作,在利用超大纹理时的CPU占用率大幅下降。
但由于微软DirectXAPI的限制,目前GK104的这些特性还只能在OpenGLAPI中表现,以后版本的DirectX可能会加入支持。
总结:
开普勒与南方群岛谁更先进?
长篇大论的分析相信大伙儿看得都很累,最后咱们将Tahiti与GK104这两颗GPU的所有规格都列出来,进行全方位的对照:
下面就通过数据分析一下架构的特性:
1.GK104的晶体管数比GF110减少了,但流处置器数量达到了三倍,NVIDIA改良架构、提高浮点运算的尽力成效显著。
可是,同为1536个流处置器,GK104的晶体管数要远大于Cayman核心,这就证明了SIMT仍是要比SIMD更消耗晶体管;
2.GTX680的核心与显存频率都创新高,可是TDP却不到200W,这都要归功于它小核心的设计、和再也不利用双倍CUDA频率的作法,NVIDIA操纵功耗的作法成效显著;
3.Tahiti的晶体管数是GK104的倍,流处置器数量是倍,这两个数字差距不是专门大,N/A两边自DX10时期以来头一次达到了相似的晶体管利用率;
4.从Cayman到Tahiti,AMD用了倍的晶体管数才让流处置器数量达到了原先的倍;
从GF110到GK104,NVIDIA减少了晶体管数量却让流处置器达到原先的三倍;
能够看出两边都在向对方的架构靠拢,目的只有一个,确实是提高GPU的运算效能;
通过之前的测试数据来看,AMD的GCN架构相较上代确实提高了GPU的效能。
而NVIDIA方面,通过咱们的测试来看,GTX680的性能也是远超GTX580。
在核心面积、晶体管数量、功耗、流处置器数量、显存容量、显存位宽得各方面都不占优势(唯一的优势确实是频率)的情形下,GTX
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- GTX680 架构 解析 GPU 版开普勒三大 定律