AMD HD 7970 之 GCN 架構完全解析,帶來 GPU 革命

ADVERTISEMENT

改革點在於執行方式

從VLIW 4到Non-VLIW架構,差異點在於執行方式。前者雖然每周期可執行4次操作(Operations),但說穿了還是1條指令。而且先前也說過,這種架構非常依賴指令最佳化,才能發揮最高效益。

而Non-VLIW架構也就是GCN,雖然每次只能執行1個ALU操作,但是4組SIMD可同時執行4條執行緒。且每項操作都是Occupancy Limitation,可讓使用率接近100%。理論上GCN架構在指令層面以及使用率層面,都會比以往更有效率。

AMD HD 7970 之 GCN 架構完全解析,帶來 GPU 革命

▲VLIW 4與Non-VLIW架構差異最大處在於執行方式,前者只能接受1條指令,後者可執行指令增加,且核心使用率更高,效能自然會表現比較好。

複雜的記憶體共享架構

說到GCN就不得不講它的記憶體架構,由於CU內有向量運算單元又有純量運算單元,讓架構變得很複雜。每個CU有獨立的16KB L1快取,CU內每個向量運算單元又有64KB的暫存器,每4個CU再共用16KB Instruction Cache(指令快取)以及32KB Scalar Data Cache(純量資料快取)。而且所有L1快取都是可讀寫操作,並非上代只能讀取。至於L2快取則透過64bit介面與L1連接,且所有L2都是同步且可供任何CU存取。

AMD將此L1共享命名為GDS(Global Data Share,全局資料共享),認為此設計有益於CU之間的同步,原文為「Global Data Share facilitates synchronization between CUs」。

GCN的設計不難看出AMD相當重視資料同步,CU內LDS本地快取都能直接與L2連接,所有資料都是CU共享。更強的是還能跟系統記憶體同步,提高了處理器與顯示核心的交換能力,對於AMD這種有CPU又有GPU的廠商特別有利。

AMD HD 7970 之 GCN 架構完全解析,帶來 GPU 革命

▲GCN的快取共享機制十分複雜,CU間可共享L1、L2快取,每個CU也有獨立的快取,有意於CU間的資料同步。

X86虛擬記憶體

不能不提的是,這次GCN支援X86 Virtual Memory(X86虛擬記憶體)功能。簡單來說就是將顯卡上GDDR5記憶體,虛擬為處理器可識別的系統記憶體。HD 7970使用的GDDR5記憶體頻寬(Memery Bandwidth)高達264GB/s,一般四通道DDR3頻寬則只有30~50GB/s不等,遠超過現在X79四通道DDR3所提供的頻寬數倍。透過虛擬記憶體,有助於GPGPU運算以及部分3D遊戲。

AMD HD 7970 之 GCN 架構完全解析,帶來 GPU 革命

▲GDDR5記憶體頻寬高達264GB/s,而四通道的X79也不過30~50GB/s,透過虛擬記憶體技術,可讓顯卡記憶體被識別為系統記憶體。

暫時無用的DX 11.1

雖然HD 7970是第一張支援DirectX 11.1的顯卡,但硬體走在軟體前面有時是種不幸。由於API實在太新,導致沒有遊戲以及作業系統可支援。至少得等到Windows 8推出之後才有可能支援新API,當下支援DirectX 11.1宣示意義大於實質意義。

DirectX 11.1與以往DirectX 9.0c、DirectX 10.1一樣是個更新的小版本,並非導入新功能,而是改進自身技術。但是DirectX 11.1有個新功能只有支援DirectX 11.1的顯卡才能開啟,那就是TIR(Target Independent Rasterization)姑且直譯為目標獨立光柵。

此功能必須硬體配合才能開啟,因此過去的DirectX 11顯卡不可能透過驅動更新等方式取得。不過DirectX 11.1得等到Windows 8上市,上市之後還要等遊戲支援,看樣子DirectX 11.1還有段很長的路要走。

革命還沒結束

這次HD 7970測試受到AMD不對等的媒體政策箝制,歐美媒體早在12月底就能測試並報導,而其餘地區只能在1月9日正式解禁後拿到顯卡。HD 7970的新技術不只上述這些,另外還有記憶體除錯機制、通用運算機制、Eyefinity 2.0、ZeroCore、VCE編碼引擎、PCI-E 3.0介面、GPU解壓縮應用等等,當然還有最重要的效能測試,小編已經完成HD 7970的實測,會儘快用另一篇文章做說明。

整體來看,GCN架構是包著MIMD皮的SIMD架構,某些方面跳脫以往效率不彰的問題,但是新架構勢必需要時間最佳化,或許下個世代會看到更完整的設計。但是不論如何,目前的設計看來,GCN改進之處非常多,有令人期待之處,但也令人擔心的是,這段路NVIDIA早在2年前就開始走了,是否能一舉超過對手,還得等時間證明。

延伸閱讀:

據說顯示卡不接訊號線能省電?4個實驗告訴你真相

MSI R6950 Twin Frozr III 1GD5 PE/OC:小超50MHz,價格更便宜

傳 AMD 將於12月5日發表新 GPU:Radeon HD 7000

魯蛇實驗室
作者

戶田惠梨香 新垣結衣 長澤雅美 吉高由里子 志田未來 北川景子 香里奈 竹內結子 北乃紀伊 菅野美穗 黑川智花 宮崎葵 夏帆 貫地谷詩穗梨 石原里美 有村架純 井上真央 真野恵里菜 能年玲奈 深田恭子

使用 Facebook 留言
036a5697218da19bc678160938417d48?size=48&default=wavatar
2.  Ed (發表於 2012年1月30日 14:35)
建議這種電腦結構的介紹文章可以減少縮寫或特殊名詞的使用,因為在這些元件/名詞有些並不是文章中的主角,甚至只是稍微提到而已,但卻可能會使閱讀短暫中斷(因為無法理解內容)。

其實現在很多新名詞都是廠商創造出來的商業口號,有些時候拿起書本翻一翻,會突然發現,"咦,這根本就是最近在推的XX嘛"。

個人認為,可以記得住各種電腦名詞用語固然有趣,但最有趣的還是當你看到隱藏在這詭異詞語之後的美麗原理,恍然大悟的那一刻。

所以,電腦王要不要從電腦圖學開始介紹啊?(逃)
Shinwill
4.  Shinwill (發表於 2012年1月30日 16:22)
夠專業的好文章 !!
就是要到這種程度才是T客邦應該要有的水準 <( ̄︶ ̄)>
收藏了~~~~
A0ed2e1e9af88778b2d17b10b90cf471?size=48&default=wavatar
8.  halien (發表於 2012年1月30日 19:41)
VLIW跟SIMD八竿子打不著,你的計算機結構該重修了.
546cac667d5d492896df1aa9f732fc71?size=48&default=wavatar
10.  pppee (發表於 2012年1月31日 07:53)
※ 引述《halien》的留言:
> VLIW跟SIMD八竿子打不著,你的計算機結構該重修了.
>
我到覺得你國文閱讀能力才應該加強
A0ed2e1e9af88778b2d17b10b90cf471?size=48&default=wavatar
11.  halien (發表於 2012年1月31日 13:58)
※ 引述《pppee》的留言:
> ※ 引述《halien》的留言:
> > VLIW跟SIMD八竿子打不著,你的計算機結構該重修了.
> >
> 我到覺得你國文閱讀能力才應該加強
讓我們重看一遍原文:
===
AMD則以R600為主,使用的是SIMD(Single Instruction Multiple Data,單指令流多數據流)的4D+1D向量(Vector)架構,也就是VLIW(Very Long Instruction Word,超長指令集)體系
===
請問這位計算機結構大師, 哪一本計算機結構的教科書教你SIMD是VLIW的體系?
陳茗豪
12.  陳茗豪 (發表於 2012年9月10日 21:23)
"AMD則以R600為主,使用的是SIMD(Single Instruction Multiple Data,單指令流多數據流)的4D+1D向量(Vector)架構,也就是VLIW(Very Long Instruction Word,超長指令集)體系"
這句話的確有待商榷..SIMD.與VLIW本質上是不能混為一談的
但也不至於八竿子打不著關係..一直以來..對於提升處理器性能
大致上朝向兩個方向發展..
1.透過製程精進.將電子元件的體積規模不斷微縮.在有限面積裡能集成更多的電路元件.增加處理器晶片更多的功能性單元.也減少了電子元件工作時所產生的廢熱.可以讓處理器平穩運行於更高的時脈設定.
2.平行運算:平行運算其實也可以算是由精進製程所衍生的
相對於提升時脈是讓處理器能在更短的時間完成一項工作(降低CPI)平行運算則是在同樣的時間裡完成更多的工作(提升IPC)由於處理器能夠集成更多的IC電路.將這些增加的電晶體用在提升效能的刀口上.正是平行運算的思維.而SIMD與VLIW都是基於平行運算而生的架構
平行運算大致可分為時間平行與空間平行兩個主軸..由這兩項主軸對於不同層級運算瓶頸增加硬體運算單元.從而使效能得到提升.這種"哪裡癢,抓哪裡"直覺式思維..說來簡單..做來卻不容易
每個架構都有其優點..當然不免也有"力有未逮"的缺憾..
SIMD的作法是以一組控制器加上多組平行處理微元.能夠同時的處理多筆的資料.很明顯屬於空間平行而就程式的運行層級來區分是屬於資料平行..這種架構的優勢在於不需要增加許多複雜的電路結構.就能夠達到加速運算的結果.能夠取得最佳指令執行效率.不過只能適用於指令所處理的資料都具備同樣的性質而且之間不存在相依關聯性一般來說..只有影像等多媒體程式才具備這樣的性質所以在應用上有其侷限
至於VLIW的作法是將多個短指令結合成一串長指令執行..相當於處理器核心同時執行多個指令..屬於時間並行而就運算層級區分
則是指令級並行.不能避免的VLIW也有指令依存的頭疼問題
指令能不能並行是最重要的障礙..相較於管線化技術把指令依存的交由硬體管線判斷.指令在解碼後會在經過分派決定那些任務可以同時執行.但這增加硬體結構設計的複雜度.'當然開發成本也因此提高.VLIW則是以另一種方式因應..一開始在短指令組成長指令串時就已經將不能並行的指令排除處理器核心就無需顧慮是否有依存的指令只要傻傻地運算就輸出效率來說肯定是會提高.不過
並不是指令依存的障礙就此消失.由於一開始指令編譯時就得避免將無法並行的指令排除..代表指令執行的分派重任得由編譯器一肩扛起..所以開發編譯器的複雜度自然提高..除此之外..VLIW架構還有相容性的問題.編譯器只能適用於特定架構也就是說VLIW4的編譯器無法用於VLIW5..而能夠有效調度這麼多平行指令的任何編譯器都將是十分複雜而且難以編寫..加上VLIW編譯軟體絕大部份要比它所控制的硬體落後.都是VLIW架構目前所遭遇到的責難另外運行過程中無法隨時改變指令執行條件使得VLIW僅能在圖像處理技術中發揮所長所以一般使用VLIW架構的多為DSP
嵌入式晶片
發表回應
謹慎發言,尊重彼此。按此展開留言規則