出處:快科技 2011-06-27 08:48:44 作者:朝暉 編輯:朝暉 導(dǎo)讀:在前不久的AMD Fusion開發(fā)者峰會(huì)上,,AMD首席技術(shù)官兼圖形業(yè)務(wù)執(zhí)行副總裁Eric Demers登臺(tái)演講,其中著重提到了AMD的“真正全新下一代圖形架構(gòu)(Graphics Core Next)”,,除了傳統(tǒng)圖形架構(gòu)的變革還將通用計(jì)算上升到戰(zhàn)略高度,,也就意味著Radeon HD 2000(R600)之后AMD數(shù)代產(chǎn)品沿襲已久的VLIW架構(gòu)將會(huì)大規(guī)模革新….. Fusion開發(fā)者峰會(huì)和全新圖形架構(gòu) 6月15日,陽光明媚的華盛頓貝爾維尤迎來了AMD首次全球開發(fā)者大會(huì):AMD Fusion開發(fā)者峰會(huì)(AMD Fusion Developer Summit,,AFDS),。與之類似的技術(shù)會(huì)議還有NVIDIA的GPU技術(shù)峰會(huì)(GPU Technology Conference,GTC)以及Intel的信息技術(shù)峰會(huì)(Intel Developer Forum,,IDF),。三天的會(huì)議共吸引了700多名來自全球科研機(jī)構(gòu)和IT公司的開發(fā)者,顯然這是AMD愿意看到的,,因?yàn)檫@不僅是和眾多開發(fā)者交流討論的一個(gè)好機(jī)會(huì),,更重要的是AMD能從他們那里得到許多反饋和寶貴的建議,當(dāng)然也就更加有利于日后做出更好的產(chǎn)品,。 雖然會(huì)議涉及了許多方面,,但最主要的還是關(guān)于Fusion APU的諸多細(xì)節(jié),包括Fusion系統(tǒng)架構(gòu)路線圖,,主流級(jí)A系列APU LIano的發(fā)布,,以及下一代Trinity APU芯片筆記本的展示等等。作為會(huì)議主題,,F(xiàn)usion系統(tǒng)架構(gòu)(FSA)勾畫了AMD的設(shè)計(jì)理念:就是融合CPU和GPU處理器核心并將其作為統(tǒng)一的處理引擎,,以帶來超越此前任何架構(gòu)的高性能和低功耗,而未來GPU的并行處理性能將被更加重復(fù)的利用,,CPU和GPU將實(shí)現(xiàn)無縫協(xié)作運(yùn)行,。很顯然,F(xiàn)usion將成為AMD未來戰(zhàn)略的主要目標(biāo),,盡管它還算還剛剛起步,。不過,這并不是本文要說的的重點(diǎn),。 會(huì)議中,AMD首席技術(shù)官兼圖形業(yè)務(wù)執(zhí)行副總裁Eric Demers 在一大堆關(guān)于APU的講演之后,,終于向大家透露了一些AMD下一代圖形架構(gòu)的細(xì)節(jié),。雖然產(chǎn)品路線圖,、發(fā)布規(guī)劃、規(guī)格參數(shù),、功能特性等等一概欠奉,,但是不要失望,關(guān)于GPU架構(gòu)的一些重要信息還是公布了一些,。根據(jù)AMD的說法,,下一步的目標(biāo)是發(fā)展“針對(duì)圖形、計(jì)算雙重優(yōu)化的統(tǒng)一可擴(kuò)展GPU”,,“一套面向吞吐量的大規(guī)模多線程計(jì)算單元架構(gòu)”,,包括多任務(wù)多引擎架構(gòu)、計(jì)算單元架構(gòu),、多級(jí)讀寫緩存架構(gòu),,同時(shí)具備可讀寫的一級(jí)/二級(jí)緩存、亂序資源分配,、SRAM和全局內(nèi)存ECC錯(cuò)誤校驗(yàn)數(shù)據(jù)保護(hù),、并行原語設(shè)定等等。 由于缺乏開發(fā)代號(hào),,全新的圖形架構(gòu)目前被稱作Graphics Core Next(GCN),。Graphics Core Next是AMD未來GPU架構(gòu)的基礎(chǔ),包括所有桌面獨(dú)立顯卡以及APU融合的集成顯卡,。新架構(gòu)將會(huì)以未來市場(chǎng)需求為導(dǎo)向,,最大化的發(fā)揮GPU的功能,這也是自R600以來,,AMD圖形架構(gòu)最大規(guī)模的一次變革,。在新架構(gòu)中,傳統(tǒng)的圖形性能表現(xiàn)和特性發(fā)展依然占據(jù)很重要的地位,,不過GPU的計(jì)算能力將會(huì)得到前所未有的增強(qiáng),。從某種意義上來講,后者一致是A卡的一個(gè)軟肋,,再加上近年來NVIDIA不斷提倡GPU通用計(jì)算的理念,,所以新架構(gòu)的計(jì)算能力將成為改革的重點(diǎn)。 當(dāng)然,,AMD也強(qiáng)調(diào)了新架構(gòu)會(huì)找到圖形和計(jì)算性能之間的最佳平衡點(diǎn),,圖形和計(jì)算架構(gòu)并不是單獨(dú)進(jìn)化,而是隸屬于更大的體系Fusion系統(tǒng)架構(gòu)的一部分,,也就意味著今后GPU,、CPU會(huì)聯(lián)系得越來越緊密,協(xié)同加速。事實(shí)上,,經(jīng)過多年的發(fā)展,,尤其是統(tǒng)一渲染架構(gòu)出現(xiàn)以后,GPU的用途不再僅僅是圖形處理,,并行計(jì)算能力被不斷挖掘,,在應(yīng)付某些高負(fù)載并行處理任務(wù)的時(shí)候更像是一顆廣義的CPU。所以以長(zhǎng)遠(yuǎn)的目光來看看,,新架構(gòu)的改變也與AMD倡導(dǎo)的異構(gòu)計(jì)算理念相符,。 所以,在未來的發(fā)展道路上,,AMD的著重點(diǎn)不再是CPU和GPU的單方面發(fā)展,,而是它們?nèi)诤现蟮膮f(xié)同運(yùn)作。就近階段來看,,Bulldozer推土機(jī)承載了未來的CPU部分,,而GPU部分就是我們今天要說Graphics Core Next全新圖形架構(gòu)。不過,,欲登高而窮目,,勿筑臺(tái)于浮沙。一切事物的發(fā)展都離不開根本,,溯本歸源,,我們先從最基本的說起。序幕曲:VLIW顯卡架構(gòu)的歷史 承接上文,,在我們走進(jìn)Graphics Core Next全新架構(gòu)之前,,先來簡(jiǎn)單回顧一下以往AMD顯卡VILW架構(gòu)的一些要點(diǎn)。 在過去的AMD的統(tǒng)一渲染架構(gòu)中,,基本的運(yùn)算單元是流處理器單元(Streaming Processor,,SPU)。我們知道,,除了Cayman(調(diào)整為VILW4)核心以外,,AMD從R600開始所有的GPU都采用了VLIW5架構(gòu)(VLIW,超長(zhǎng)指令流),。顧名思義,,每一個(gè)流處理器單元有5個(gè)或者4個(gè)更基礎(chǔ)的數(shù)學(xué)運(yùn)算單元(算術(shù)邏輯運(yùn)算器ALU和特殊函數(shù)運(yùn)算器SFU,現(xiàn)在AMD統(tǒng)一稱之為Radeon Cores),,每一個(gè)數(shù)學(xué)運(yùn)算單元都能在一個(gè)周期并行獨(dú)立地執(zhí)行相關(guān)指令,。數(shù)學(xué)運(yùn)算單元與寄存器(Registers)相連,后者主要負(fù)責(zé)存儲(chǔ)輸入數(shù)據(jù),、臨時(shí)數(shù)值和輸出數(shù)據(jù),,并不存放具體的指令,,另外還有分支單元(Branch Units)負(fù)責(zé)指令流的重組和打包,這樣就構(gòu)成了一個(gè)完成了流處理器單元,。 從設(shè)計(jì)方面來講,,VILW架構(gòu)更擅長(zhǎng)于并行執(zhí)行相同的指令,這些相同的指令(線程)往往是被打散之后重新分組的wavefront(類似于NVIDIA的warp),。在AMD以往的實(shí)例里,wavefront是64個(gè)線程為一組,,而指令流就是以wavefront來執(zhí)行,。理想的情況下,在一個(gè)wavefront中一組4或5個(gè)指令(類似于下圖的藍(lán)色指令)在流處理單元中并行完成,,這樣的執(zhí)行效率最高達(dá)到100%,,5個(gè)算數(shù)單元可以全部負(fù)載。但當(dāng)較少的指令(比如1或2個(gè),,類似于下圖的其它顏色指令),,就會(huì)大大影響執(zhí)行效率,因?yàn)榇藭r(shí)只有1到2個(gè)運(yùn)算單元負(fù)載,。就這一點(diǎn)而言,,VLIW架構(gòu)始終難以在執(zhí)行效率上達(dá)到完美,畢竟現(xiàn)實(shí)程序中的理想情況并沒有那么多,。 流處理執(zhí)行指令情況 在3D圖形進(jìn)行渲染的過程中,,VS和PS的主要工作就是進(jìn)行X、Y,、Z,、W四個(gè)坐標(biāo)運(yùn)算和計(jì)算除R、G,、B,、A得出像素顏色。為了一次性處理1個(gè)完整的幾何轉(zhuǎn)換或像素渲染,,GPU的VS和PS從最初就被設(shè)計(jì)成為同時(shí)具備4次運(yùn)算能力的算數(shù)邏輯運(yùn)算器(ALU),。 而數(shù)據(jù)的基本單元是Scalar(標(biāo)量),就是指一個(gè)單獨(dú)的變量,,所以GPU的ALU進(jìn)行一次這種變量操作,,被稱做1D標(biāo)量。 與標(biāo)量對(duì)應(yīng)的是Vector(矢量),,一個(gè)矢量由N個(gè)標(biāo)量標(biāo)量組成,。所以傳統(tǒng)GPU的ALU在一個(gè)時(shí)鐘周期可以同時(shí)執(zhí)行4次標(biāo)量的并行運(yùn)算被稱做4D Vector(矢量)操作。雖然GPU的ALU指令發(fā)射端只有一個(gè),,但卻可以同時(shí)運(yùn)算4個(gè)通道的數(shù)據(jù),,這就是單指令多數(shù)據(jù)流(Single Instruction Multiple Data,SIMD)架構(gòu)。 這種類似的SIMD架構(gòu)可以追溯到R300(Radeon 9700)時(shí)代,,而到了DX10統(tǒng)一渲染架構(gòu)出現(xiàn)的R600(Radeon HD 2900),,AMD采用VLIW5架構(gòu)設(shè)計(jì)也是在此基礎(chǔ)上進(jìn)行的擴(kuò)展和革新,因?yàn)楫?dāng)時(shí)的主要游戲市場(chǎng)依然被DX9占據(jù),,而游戲中采用的3D渲染程序也大都利于這種架構(gòu)執(zhí)行,。但是隨著時(shí)間的推移,新一代3D游戲和GPGPU(通用計(jì)算圖形處理器)程序的出現(xiàn),,VILW架構(gòu)的執(zhí)行效率就開始出現(xiàn)問題了,。 最后,值得一提的是調(diào)度問題,。在CPU世界中,,我們把指令丟給CPU并且安排它在必要的時(shí)候進(jìn)行線程調(diào)度操作。但在VLIW的GPU架構(gòu)里,,線程調(diào)度是編譯器的事兒,。編譯器對(duì)于已知程序的調(diào)度做地相當(dāng)完美,但是對(duì)于未知程序的安排就不是很給力了,。因?yàn)檫@種調(diào)度是靜態(tài)的,,并不能實(shí)時(shí)改變。再加上VILW架構(gòu)對(duì)編譯器的依賴相當(dāng)之大,,如此以來就更加雪上加霜,。 那為什么講AMD全新架構(gòu)之前要說這些廢話?很簡(jiǎn)單,,沒有這些我們不可能了解AMD新架構(gòu)中做了什么,,或者說為什么這么做。新架構(gòu):舍棄VILW回歸non-VLIW SIMD AMD全新圖形架構(gòu)的革新之路最根本的問題是,,以往的VILW對(duì)于圖形來說非常合適,,但是對(duì)于計(jì)算就略顯弱勢(shì)了。不過從種種跡象來看,,GPU的通用計(jì)算是AMD未來的一個(gè)很重要的發(fā)展分支方向,,F(xiàn)usion融合從某一方面來講并不僅僅是簡(jiǎn)單地在CPU die里面放置一個(gè)不錯(cuò)的GPU,而是充分發(fā)揮和利用GPU架構(gòu)優(yōu)勢(shì)完成CPU所不擅長(zhǎng)的并行計(jì)算任務(wù),,GPU的并行處理性能將被更加重復(fù)的利用,,CPU和GPU將實(shí)現(xiàn)無縫協(xié)作運(yùn)行。所以AMD傳統(tǒng)GPU的“重圖形輕計(jì)算”顯然不能適合AMD未來的發(fā)展方向,。 在AMD的全新圖形架構(gòu)里,,VILW將會(huì)徹底被摒棄,取而代之的是non-VLIW SIMD,。從根本上來講,,二者很是相似——都可以并行的處理大量指令,,但是執(zhí)行效率卻有天壤之別——VLIW是指令集并行(instruction level parallelism),而non-VLIW SIMD是線程級(jí)并行(thread level parallelism),。拋開其它過多不必要的深入研究(限于篇幅以后換個(gè)時(shí)間再談),,二者架構(gòu)最大的不同就是關(guān)于VILW在通用計(jì)算表現(xiàn)不濟(jì),而為什么non-VLIW SIMD要加強(qiáng)這方面的討論,。 說到底就是VILW的編譯器沒有預(yù)調(diào)度處理機(jī)制,,在執(zhí)行過程中不能動(dòng)態(tài)調(diào)度,其最大弱點(diǎn)也就在于此,。雖然VILW5在圖形方面的表現(xiàn)已經(jīng)相當(dāng)出色,,但計(jì)算方面依然不能盡如人意。成也編譯器,,敗也編譯器,用這句話來形容VILW最恰當(dāng)不過,。對(duì)編譯器的過分依賴,,也導(dǎo)致了對(duì)編譯器過高的要求,除了調(diào)度問題還包括擴(kuò)充對(duì)編譯語言支持之后,,即便是通過中間代碼進(jìn)行抽象,,編譯器也未必能很好的處理和執(zhí)行。 另外,,VLIW的復(fù)雜性在某些時(shí)候(比如需要對(duì)一段程序優(yōu)化和手動(dòng)調(diào)試的時(shí)候)盡顯無疑,,雖然通常情況下這對(duì)圖形渲染并不構(gòu)成問題,但通用計(jì)算就不一樣了,。VILW復(fù)雜的天性使得調(diào)試和反匯編的每一步都困難重重,,而且很難預(yù)計(jì)性能表現(xiàn),至于找出和優(yōu)化相關(guān)重要部分的代碼就更不用說了,。 在講演中,,AMD提供了一段示例代碼,展示了VILW和non-VLIW SIMD編譯器之間的不同,,雖然主要針對(duì)開發(fā)人員,,但是從中不難看出后者的改進(jìn)之處。 VILW:圖形渲染沒問題,,計(jì)算方面就…… 去掉VILW之后,,AMD又回歸了傳統(tǒng)的矢量SIMD,但也并非如此簡(jiǎn)單,。以往GPU架構(gòu)的元素并不會(huì)直接原封不動(dòng)地放到新架構(gòu)里,,既然上文我們已經(jīng)說過了流處理器單元,下面再來說說它最親密的代替者SIMD,,不過此時(shí)的SIMD已經(jīng)不是彼時(shí)的SIMD了,。 需要注意的一點(diǎn)就是不要和以往GPU架構(gòu)中的SIMD混淆(包含大量處理器的陣列),,新架構(gòu)中的SIMD是一個(gè)真正的16D 矢量單元(包含16個(gè)標(biāo)量ALU),根據(jù)我們之前介紹的概念,,全新的SIMD可以在在一個(gè)時(shí)鐘周期可以同時(shí)執(zhí)行16次標(biāo)量運(yùn)算,。和目前的Cayman一樣,AMD的wavefront依然包含64個(gè)線程,,也就是說一個(gè)SIMD需要4個(gè)周期循環(huán)才能完成一個(gè)wavefront,。當(dāng)然,每個(gè)SIMD中還會(huì)包含一個(gè)64KB的寄存器,。 另外,,類似于以往的流處理器單元,SIMD同樣可以進(jìn)行不同的整數(shù)和浮點(diǎn)運(yùn)算,。不過遺憾的是AMD并沒有其中的細(xì)節(jié)方面做任何透露,,不過我們還是希望AMD在可能的條件下帶來不一樣的出色改變。不過有一樣能夠確認(rèn)的是64位浮點(diǎn)預(yù)算性能大幅提提高,,基本上能夠達(dá)到32位浮點(diǎn)運(yùn)算的1/2 ,。雖然這對(duì)桌面用戶來說并不能造成什么深刻的影響,但是對(duì)AMD進(jìn)入高精度計(jì)算是市場(chǎng)是大有裨益的,。SIMD構(gòu)建的計(jì)算單元 正如傳統(tǒng)的SIMD之于出流處理器單元之上,,全新的SIMD之上就是新架構(gòu)中所謂的計(jì)算單元了(Compute Unit,CU),。雖然從某種意義上來講,,計(jì)算單元和傳統(tǒng)的SIMD相差不多,但前者帶來的該改變可謂脫胎換骨,,甚至顛覆了AMD以往所有的架構(gòu)設(shè)計(jì),。 那么計(jì)算單元(CU)中都由那些單位構(gòu)成呢?根據(jù)AMD的說法,,一個(gè)CU中有4個(gè)SIMD單元,,每個(gè)SIMD單元由16個(gè)全功能的標(biāo)量ALU構(gòu)成。每個(gè)CU配備一個(gè)硬件分支單元(Branch&MSG Unit),,主要負(fù)責(zé)抽取,、編碼以及調(diào)度wavefront和指令。此外,,還有擴(kuò)充的64KB LDS(Local Data Store)以及16KB數(shù)據(jù)和紋理L1緩存,。也就說新架構(gòu)中數(shù)據(jù)和紋理L1緩存進(jìn)行了合并,因?yàn)長(zhǎng)1緩存中的紋理單元都是經(jīng)過壓縮過的,,紋理L1緩存的壓力相比以往減小了,。而環(huán)繞在顯存控制器之外的是可讀寫的L2緩存,還有可供4個(gè)CU共享的16KB只讀L1緩存和32KB只讀指令L1緩存,。 在繼續(xù)下一步介紹之前,,先來看一個(gè)問題,。我們已經(jīng)知道了新架構(gòu)中計(jì)算單元的構(gòu)成以及傳統(tǒng)VLIW架構(gòu)的弱點(diǎn),現(xiàn)在終于可以解答問什么AMD要放棄VLIW轉(zhuǎn)而采用non-VLIW SIMD了,。正如我們開始提到的,,VLIW最大的弱點(diǎn)是編譯器的靜態(tài)調(diào)度。結(jié)果就是代碼執(zhí)行過程中任何相關(guān)(至于如何理解可以參看下面的圖)性指令的突然出現(xiàn),,調(diào)度依然會(huì)按事先設(shè)定好的路數(shù)進(jìn)行,,而VLIW中大部分運(yùn)算單元就被浪費(fèi)掉。所以從VLIW到non-VLIW SIMD的第一個(gè)改變就很直接,,后者的調(diào)度工作從編譯器完全轉(zhuǎn)移到了硬件——由計(jì)算單元來完成,。當(dāng)然,一切的目的就是為了獲得更好的執(zhí)行效率,,更好的計(jì)算性能,。 當(dāng)然,魚和熊掌什么時(shí)候都不可兼得,。這里就有一個(gè)明顯的折中,,硬件動(dòng)態(tài)調(diào)度固態(tài)很好,但卻需要耗費(fèi)更多的晶體管,、占用更大的核心面積。事實(shí)上,,AMD以往的GPU之所以經(jīng)歷數(shù)代都不愿意放棄VLIW架構(gòu)自然有其中的原因,。對(duì)于圖形渲染來說編譯器調(diào)度方面并沒有太大影響,VLIW甚至在這方面做的相當(dāng)不錯(cuò),。而且更重要的是可以使用更少的晶體管,,有限的核心面積也可以得到更好的利用——填充更多的附加功能單元。說到這兒,,是不是很容易讓人聯(lián)想到NVIDIA呢,? 那么有了動(dòng)態(tài)調(diào)度和和全新的SIMD之后,我們能做以前不能做的呢,?在VLIW的理想情況下,,如下方第一張圖所示,4個(gè)wavefront分別各自獨(dú)立且毫不相關(guān),,可以看到新架構(gòu)和VLIW的執(zhí)行情況和類似,,理論上效率都是100%;不過對(duì)于VLIW架構(gòu)來說,,不理想的情況就是遇到相關(guān)的指令流,,比如下方第二張圖的兩個(gè)綠色wavefront,這樣以來前三個(gè)wavefront在一個(gè)周期執(zhí)行,,最下方的藍(lán)色只能獨(dú)立執(zhí)行,。而對(duì)于新架構(gòu)來說,,則不存在這樣的問題。也就是說,,采用硬件調(diào)度之后,,CU和SIMD可以允許選擇不同的wavefront亂序執(zhí)行,wavefront可以來自同一任務(wù),,也可以是不同任務(wù),。當(dāng)然,這種“亂序”也不是絕對(duì)的,,基本的流程還是要遵守的,,比如各個(gè)wavefront之間的指令必須按順序執(zhí)行,不能打亂也不能分割,; VILW理想方案:所有的WaveFront都不相關(guān) VLIW的不理想狀態(tài):一個(gè)或兩個(gè)相關(guān)的WaveFront 經(jīng)過以上的介紹不難看出,,以往的VLIW架構(gòu)在并行任務(wù)處理方面處于劣勢(shì),并且很依賴編譯器和API的支持,,擴(kuò)展到OpenCL也受到很大限制,。經(jīng)過硬件架構(gòu)的調(diào)整,新架構(gòu)在并行計(jì)算方面有了很大提高,。其中每個(gè)SIMD有10個(gè)wavefront可供選擇,,也就意味著每個(gè)CU的wavefront數(shù)量依次可以達(dá)到40個(gè)。這也就是AMD全新架構(gòu)放棄多年采用的VLIW,,轉(zhuǎn)而采用non-VLIW SIMD最為根本的原因,。除此之外,帶來的其它好處也是不少,。首先是編譯壓力減輕,,硬件調(diào)度的加入使編譯器擺脫了調(diào)度任務(wù);其次是程序優(yōu)化和支持語言擴(kuò)充更見容易,;最后是不用在生成VLIW指令和相關(guān)調(diào)度信息,,新架構(gòu)最底層的ISA也更加簡(jiǎn)單。計(jì)算單元組成的GPU 了解完全新的SIMD和CU的概念,,下面再來看看詳細(xì)的總體架構(gòu)組成,。和傳統(tǒng)的多流處理器單元組成SIMD陣列,多個(gè)SIMD陣列組成GPU的思路類似,,新架構(gòu)也是由包含數(shù)個(gè)計(jì)算單元的CU陣列搭建而來,。雖然下面的講解只是AMD從宏觀高度的一個(gè)概覽,具體細(xì)節(jié)單元不可能面面俱到,,不過我們依然能從其中得知一二,。 Graphics Core Next全新架構(gòu)示意圖 先從顯存和緩存開始說起,我們知道從R600架構(gòu)時(shí)代引入的GDS(Global Data Share)發(fā)展至今一直是GPU唯一的臨時(shí)緩沖單元,,雖然RV770加入了LDS(Local Data Share)對(duì)GDS進(jìn)行補(bǔ)充,,但是從計(jì)算角度來看依然作用不大,。新架構(gòu)改變最明顯的一點(diǎn)就是會(huì)把L2緩存和顯存控制器進(jìn)行搭配,每個(gè)顯存控制器可以共享64KB或者128KB的L2緩存(還不太確定),,這樣以來在并行訪問顯存的時(shí)候可以大大節(jié)約寶貴的帶寬,。 另外,GPU和CPU的同步也可依靠L2緩存提高效率,。雖然這種緩存機(jī)制很像NVIDIA費(fèi)米架構(gòu)的緩存體系,,但其中也存在很多差異。新架構(gòu)的緩存并不與ALU直接連接,,而且和GDS和LDS沒有任何關(guān)系,。另外,紋理單元可以直接訪問L2緩存,。這些與費(fèi)米架構(gòu)還是存在本質(zhì)上的不同的,。 與此同時(shí),新架構(gòu)的異步計(jì)算引擎(Asynchronous Compute Engines,,ACE)將會(huì)充當(dāng)command Processors的角色用于運(yùn)算操作,,而ACE的主要作用就是接受任務(wù)并將其下遣分配給CU處理(主要是分配的過程)。全新架構(gòu)強(qiáng)化了多任務(wù)的并行處理設(shè)計(jì),,一個(gè)GPU中將會(huì)看到多個(gè)ACE用于多重并發(fā)操作,,例如資源分配、上下文切換以及任務(wù)優(yōu)先級(jí)決策等等,。由于AMD目前尚未明確指出各個(gè)ACE之間的直接關(guān)系以及可以最多并行處理任務(wù)的數(shù)量,,所以我們也不好做出猜測(cè)。 不過可以確定的是,,有了ACE的直接作用就是新架構(gòu)擁有了一定程度的亂序執(zhí)行能力。就像上文我們提到過的一樣,,雖然嚴(yán)格意義上新架構(gòu)依然是順序執(zhí)行架構(gòu),,一個(gè)完整wavefront中的指令執(zhí)行順序不能被打亂,但是ACE可以做到對(duì)不同的任務(wù)進(jìn)行優(yōu)化和排序,,劃分任務(wù)執(zhí)行的優(yōu)先級(jí)別,,進(jìn)而優(yōu)化資源。從本質(zhì)上來說,,這與很多CPU(比如Atom,、ARM A8等等)處理多任務(wù)的方式并沒有什么不同。 接著向下說,,與目前的Cayman類似,,Graphics Command Processor位于新架構(gòu)的頂層,負(fù)責(zé)整個(gè)GPU組件單元執(zhí)行任務(wù)的調(diào)遣(功能與傳統(tǒng)架構(gòu)中的GCP基本相同),。在此之下,,Cayman架構(gòu)的“雙核心”將會(huì)被傳統(tǒng)的“管線”(也就是CU陣列流水線)所代替,,主要負(fù)責(zé)常見的幾何和一些固定功能處理,比如曲面細(xì)分,、幾何轉(zhuǎn)換以及紋理貼圖等等,。 相對(duì)于傳統(tǒng)GPU的“既定架構(gòu)”,新架構(gòu)是完全可擴(kuò)展的,,幾何處理能力將會(huì)大大增強(qiáng),。經(jīng)過計(jì)算單元處理之后,就是像素管線和ROP單元了(同樣可擴(kuò)展),,雖然AMD并未給出詳細(xì)的設(shè)計(jì)方案,,但我們猜測(cè)ROP/L2緩存/顯存控制器三者之間會(huì)有緊密聯(lián)系(比如數(shù)量關(guān)系等等)。此外,,AMD還透露了一點(diǎn)新鮮的細(xì)節(jié):部分駐存紋理(Partially Resident Textures,,RPT)。按照AMD的說法,,RPT允許紋理單元的一部分載入到顯存之中,,以免整個(gè)紋理單元都由顯存處理造成不必要的性能損失(一部分可能無用)。 遺憾的是,,普通用戶最關(guān)心的附加功能信息到目前一概欠奉,,情況很像最初費(fèi)米架構(gòu)初露苗頭的時(shí)候。再加上AMD Fusion開發(fā)者峰會(huì)本身主要面對(duì)開發(fā)者,,所以更多是展示計(jì)算方面的細(xì)節(jié)而非圖形性能,,也就不奢求更多了。不只是新架構(gòu)還有新特性 以上章節(jié)我們分別介紹了Graphics Core Next全新圖形架構(gòu)的細(xì)節(jié),、構(gòu)成,、工作流程以及相對(duì)傳統(tǒng)的VLIW架構(gòu)有何優(yōu)勢(shì)。根據(jù)以往經(jīng)驗(yàn),,伴隨著新架構(gòu)往往會(huì)有一堆全新特性,,尤其是革命性架構(gòu)出現(xiàn)的時(shí)候。此次也不例外,,Graphics Core Next將會(huì)帶來一系列新的特性,,強(qiáng)化GPU的計(jì)算性能提升GPU相對(duì)于CPU的地位。 首先,,最底層的特性革新就是新架構(gòu)將會(huì)全面支持C/C++和其它高級(jí)語言,,加入對(duì)指針、虛擬函數(shù),、異常處理以及遞歸循環(huán)的支持等等,。這也就意味著開發(fā)過程更加簡(jiǎn)單,代碼也更加容易調(diào)試和維護(hù),GPU和CPU將在同一程序下進(jìn)行編程,。雖然從目前來看,,給桌面消費(fèi)者帶來的好處不是那么直接,但是未來肯定會(huì)有更加功能豐富和實(shí)用的程序供GPU加速使用,。 由于底層特性特性得以進(jìn)化,,內(nèi)存子系統(tǒng)也能為之服務(wù)。主要變化就是GPU在硬件上支持ISA并且可以訪問所有系統(tǒng)內(nèi)存,。語言特性的革新使得開發(fā)者編寫代碼的時(shí)候不在區(qū)分CPU和GPU,,程序(甚至是編譯器)可以隨時(shí)隨地的引用系統(tǒng)內(nèi)存,運(yùn)行之前二者之間不需要互相拷貝內(nèi)存,。 有意思的是,,新架構(gòu)還增加了統(tǒng)一尋址空間,并且采用x86 64位尋址空間,,這也就意味著GPU和CPU將擁有統(tǒng)一的尋址空間,,而GPU主要負(fù)責(zé)本地內(nèi)存的物理地址轉(zhuǎn)換。事實(shí)上,,新架構(gòu)還合并了IOMMU(input/output memory management unit)用于實(shí)現(xiàn)這一功能,,而之前我們見到的IOMMU主要用于虛擬環(huán)境下外圍設(shè)備的支持。另外,,新架構(gòu)甚至很好地能夠處理內(nèi)存分頁錯(cuò)誤,,當(dāng)然這些功能還是要依賴于操作系統(tǒng)的支持,或許現(xiàn)在的Win7并不足以發(fā)揮新架構(gòu)的全部特性,。 在內(nèi)存方面新架構(gòu)還增加了ECC(Error Checking and Correcting)功能,,用于補(bǔ)充現(xiàn)有的EDC(Error Detection & Correction),主要用于保證內(nèi)存?zhèn)鬏斀?jīng)過GDDR5高速總線時(shí)的數(shù)據(jù)完整性和準(zhǔn)確性,,系統(tǒng)內(nèi)存和顯存都能受到ECC的保護(hù),,這一點(diǎn)也許和NVIDIA的某些做法一樣。 另外,,我們還注意到了64位浮點(diǎn)運(yùn)算,。所有采用新架構(gòu)的GPU都會(huì)加入對(duì)64位浮點(diǎn)運(yùn)算的支持,也就是說64位浮點(diǎn)運(yùn)算也將會(huì)作為新架構(gòu)的一個(gè)標(biāo)準(zhǔn)特性納入其中,。而且實(shí)際的64位浮點(diǎn)運(yùn)算性能是可配置的——支持1/2倍速,、1/4倍速以及1/6配置,。當(dāng)然,,我們更希望AMD能夠?qū)W習(xí)NVIDIA采用低倍速,畢竟目前64位浮點(diǎn)運(yùn)算對(duì)于桌面消費(fèi)者來說并不是那么重要,。 當(dāng)然,,作為一款圖形架構(gòu),最根本的3D圖形自然不會(huì)背拋棄,也會(huì)隨新架構(gòu)的計(jì)算能力異同同進(jìn)化,,而且GPU內(nèi)仍會(huì)有固定功能硬件,,未來還會(huì)實(shí)現(xiàn)FSA、3D的融合,,讓計(jì)算能力為3D圖形服務(wù),,從而達(dá)到AMD Fusion融合之路最根本的目的??偨Y(jié):為計(jì)算優(yōu)化的新架構(gòu) 隨著架構(gòu)越來越復(fù)雜,,傳統(tǒng)“半年架構(gòu)一更新,GPU性能增長(zhǎng)一倍”的說法已經(jīng)不在適用于目前的GPU發(fā)展,,再加上先進(jìn)制造工藝的步伐放緩,,GPU架構(gòu)更新的周期被大大延長(zhǎng)(1年、2年或者更長(zhǎng)),,我們現(xiàn)在看到的GPU大多是在原有架構(gòu)上“縫縫補(bǔ)補(bǔ)”,。對(duì)于現(xiàn)代GPU來說,一次換代并不僅僅是硬件架構(gòu)的革新,,更多時(shí)間的是開發(fā)者們對(duì)新架構(gòu)的適應(yīng)以及對(duì)新特性的吸收,。從某種意義上來講,本次AMD Fusion開發(fā)者峰會(huì)以及Graphics Core Next全新圖形架構(gòu)的提出,,就是給開發(fā)者們更多的時(shí)間去了解新架構(gòu)帶來的好處,,從而利用這些優(yōu)勢(shì)推動(dòng)應(yīng)用軟件及相關(guān)領(lǐng)域的發(fā)展。 正式基于這次機(jī)會(huì),,我們才有幸比較深入的了解全新架構(gòu)的種種細(xì)節(jié),,即便很多方面由于種種原因未能得知,但依然讓人對(duì)AMD未來的圖形架構(gòu)充滿憧憬,。就目前的產(chǎn)品發(fā)展?fàn)顩r來看,,原定于2012年發(fā)布的下一代Trinit APU依然會(huì)基于已有的VLIW4架構(gòu)的Cayman核心,也就意味著近短期內(nèi)不會(huì)看到Graphics Core Next全新圖形架構(gòu),。雖然,,AMD官方?jīng)]有明確表態(tài)新架構(gòu)何時(shí)能夠出現(xiàn),但我們相信它已經(jīng)不再遙遠(yuǎn)了,。 Larrabee架構(gòu)示意圖 從架構(gòu)設(shè)計(jì)來看,,統(tǒng)一尋址、C++等高級(jí)語言的支持,、ECC內(nèi)存糾錯(cuò)等特性以及全新設(shè)計(jì)的ALU,,都讓人不由得聯(lián)想到NVIDIA的費(fèi)米和Intel的Larrabee架構(gòu)(特性像費(fèi)米,運(yùn)算單元像Larrabee),,不得不說Graphics Core Next和費(fèi)米以及Larrabee在很多方面的革新都有著異曲同工之妙,。我們不想說是AMD照搬了NVIDIA和Intel的成功設(shè)計(jì)經(jīng)驗(yàn),,至少在新架構(gòu)正式發(fā)布之前我們不想這么說。但是無論如何,,優(yōu)秀的通用計(jì)算和并行處理架構(gòu),、高效的代碼執(zhí)行效率和全新特性,種種偏向計(jì)算設(shè)計(jì)線索都預(yù)示著AMD以往堅(jiān)持?jǐn)?shù)年之久的發(fā)展路線將遭到顛覆,。 在AMD以往的GPU中,,我們看到的是小巧的核心、容易擴(kuò)充的架構(gòu),、豐富的特性,、精于圖形架構(gòu),最重要的是這一切都建立在有限數(shù)量的晶體管之上(相對(duì)于NVIDA來說),。而與之相對(duì)的是,,NVIDIA苦心數(shù)年研發(fā)的費(fèi)米架構(gòu)雖然在通用計(jì)算方面無可匹敵,但浪費(fèi)了太多的核心面積和晶體管,,從而導(dǎo)致圖形方面表現(xiàn)的不盡如人意,,尤其是在功耗和性能的均衡方面始終難以找到平衡點(diǎn)(至少費(fèi)米架構(gòu)第一批GTX 400是這樣)。如此看似和圖形沒有一點(diǎn)關(guān)系的浪費(fèi)值得嗎,?如今,,AMD將這一切優(yōu)勢(shì)基礎(chǔ)摒棄(事實(shí)上這是很難的),轉(zhuǎn)而更趨向于對(duì)手的發(fā)展方向,。我們不僅要問,,AMD是怎么了? 而我們要說的是,,隨著技術(shù)的發(fā)展,,圖形和計(jì)算的概念已經(jīng)不再像以往分的那么清楚了,NVIDIA和AMD作為行業(yè)的領(lǐng)軍者,,毫無疑問要比我們看的更遠(yuǎn),,他們都沒有錯(cuò)而是我們錯(cuò)了。進(jìn)入DX11時(shí)代時(shí)候,,全新API和新特性帶來了以往DirectX 版本看不到的東西,,尤其是大量的圖形特效可以靠GPU的計(jì)算能力進(jìn)行加速,這一切在要求傳統(tǒng)圖形渲染能力的同事,,對(duì)GPU的計(jì)算能力要求十分苛刻,,而未來圖形架構(gòu)的發(fā)展勢(shì)必會(huì)順應(yīng)這一趨勢(shì)。由此看來,,AMD下定決定進(jìn)行大規(guī)模的架構(gòu)革新也就不奇怪了,。 不過在暢想全新架構(gòu)帶來出色體驗(yàn)的同時(shí),我們不免擔(dān)憂:Graphics Core Nex能夠處理好一切嗎,?畢竟作為普通消費(fèi)者的我們,,實(shí)在是不想看到一個(gè)完全偏向于通用計(jì)算的GPU。雖然AMD聲稱會(huì)在圖形和計(jì)算之間找到平衡點(diǎn),,但費(fèi)米和Larrabee架構(gòu)的經(jīng)驗(yàn)和教訓(xùn)告訴我們:一切都不是那么的容易,。最重要的是,新架構(gòu)的顛覆勢(shì)必會(huì)給AMD未來的發(fā)展帶來前所未有的沖擊,,一旦出現(xiàn)失敗AMD以往數(shù)年的精力和心血都會(huì)付之東流,,這是所有人都不愿意看到的。 當(dāng)然,,面對(duì)新鮮事物的出現(xiàn)我們要抱著積極態(tài)度,,既然如此決定,也說明了AMD已經(jīng)做好了面對(duì)一切困難和挑戰(zhàn)的準(zhǔn)備,。我們希望Graphics Core Next的出現(xiàn),,能夠?yàn)锳MD帶來了更加光明的未來。 |
|