完全看懂 HD 7970 新架構,GPU 如何跑出更高的效能?

ADVERTISEMENT

GCN:混血新架構

沒有什麼架構可以用一輩子,遲早得面對效能不彰、擴增不易的問題,GCN架構也就應運而生。為了解決通用運算以及VLIW 5、VLIW 4效率不彰的問題,GCN架構試圖在改革與延續之間取得平衡點,兼具SIMD(Single Instruction Multiple Data,單指令流多數據流)與MIMD(Multiple Instruction Multiple Data,多指令流多數據流)的特性。
先前VLIW 4是採用SIMD架構,特色是單一發射口對上4個ALU,因為共用發射口,所以電晶體數量較少。雖然每週期可執行4次操作(operations),但是仍為1條指令。而NVIDIA的GF 100與GF 110則是MIMD架構,每個CUDA Core都有自己的發射口,電晶體數量較多,每個CUDA Core都能獨立運算指令。

成敗都在編譯器

這次GCN也就是所謂Non-VLIW架構中,過去VLIW特性將會大幅改變,但是從根本上來說還是非常相似,而效率卻是天差地遠。VLIW所採用的是指令平行(instruction level parallelism),GCN則是執行緒平行(thread level parallelism)。就是為了改善通用計算的瓶頸,強化指令編譯的靈活性。

VLIW效率不佳,有很大的因素是受到編譯器限制,無法動態調整指令。雖然理論效能極佳,但是得在特定環境與編譯器最佳化的情況下才能實現。舉例而言,VLIW架構運作時,指令執行過程只能依照既有的順序進行運算,若有額外加入或是相關性指令,都只能僵化地依照順序執行,無法動態調整以提高效率。

CU是基本運算區塊

為了改善編譯器問題,GCN在架構上做了強化。攤開架構圖,可看到核心內藏32個CU(Compute Unit),這些CU是GCN也是Tahiti核心的基本運算區塊。每個CU內包含4個SIMD陣列、1個純量運算單元(Scalar Unit)、Instruction Fetch Arbitration、Control and Decode、快取記憶體等單元,還有用於抽取、編譯、調度Wavefront與指令的Branch & Message Unit。

每個SIMD陣列則由16個向量運算單元(Vector Unit)構成,1個週期內SIMD可執行16個single precision multiply-add(單精度乘加)運算。若以CU來計算,每個週期則可執行64次,也就是4條單精度乘加運算,因此可說是具備MIMD的特性。

新增硬體調度器

先前提到的指令調度問題,靈活性方面,可透過CU內的硬體分支單元Branch & Message Unit解決,這硬體的角色可稱之為調度器(hardware scheduler)。當指令集(instruction set)來到編譯器,編譯器會將指令打散成Wavefront(NVIDIA則是Warp),並排列出高低順位。在實作中AMD的Wavefront是64個為1組,理想狀態下,Wavefront依序進入ALU中平行運算,可讓ALU使用率達到100%,可惜事實上並沒有這麼簡單。

相依性是效率關鍵

現在需要動態調度的原因是,當編譯器決定Wavefront的順序後,只能依序將指令丟入ALU運算。然而在實際運算中,Wavefront之間存在相依性(dependency),也就是必須等到順位高的Wavefront運算完畢後,才能運算順位低的Wavefront,而相依性會造成流水線塞車,導致ALU效率偏低。

相依性的原因有點像是解方程式,假設B+2=4,B+C=6,必須先算出B才能解出C。問題是VLIW 4架構中,編譯器不能改變既定的Wavefront順位,空下來的閒置ALU就會造成效率不彰的問題。

透過動態調度,假設原本VLIW 4運算A~O共15個Wavefront共要6個週期,而透過GCN的CU只需要4個週期就能運算完畢。若指令越零散或相關性越高,透過CU運算的效益就越明顯。

新架構減輕編譯器壓力

上述介紹中不難看出以往在VLIW 4架構中,效率高低的關鍵是編譯器的能力。以往缺乏硬體調度的情況下,Wavefront排列後只能依序運算,新增hardware scheduler之後,可讓Wavefront調度更有彈性,碰到彼此有相依性的Wavefront也能透過更改優先順序提高運算效率。

沒有40個CU的Tahiti

完全看懂 HD 7970 新架構,GPU 如何跑出更高的效能?
完全看懂 HD 7970 新架構,GPU 如何跑出更高的效能?

▲GCN內含32組CU,而CU內又有4個SIMD陣列,每個SIMD陣列又由16個ALU構成,所以總計有2048個ALU。其中CU內的Branch & Message Unit用於指令調度,是這次新架構的重要硬體元件。先前有廠商洩漏出40個CU的HD 7970,不過AMD官方也立刻回應Tahiti沒有任何被遮蔽的核心。依照往常的經驗,更換65nm、40nm都有良率問題,加上NVIDIA在GF 100時期,讓GTX 480架構精簡,很難想像28nm的HD 7970沒有遮蔽任何元件。或許是天生神力,加上良率穩定且設計出色,才沒有遮蔽的需要。

(下一頁:圖解編譯器指令集排程)

魯蛇實驗室
作者

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

PCABC
1.  PCABC (發表於 2012年4月01日 15:18)
看了這篇之後 我更想了解開普勒的架構了

真不知道是怎樣弄得 竟然功耗降著麼多

680還可以把7970壓在地上打

Charlie Chou
3.  Charlie Chou (發表於 2012年4月01日 17:36)
"...即使是X79用的四通道記憶體頻寬(memory bandwidth)不過30~50GB/s左右,HD 7970上的GDDR5記憶體頻寬可高達264GB/s,是系統記憶體的數倍,有助於通用運算與少部分遊戲。"

問題是就算是PCI-E 3.0的極限頻寬也才32GB/s(應該是雙向各16GB/s沒錯吧...)
然後加上延遲應該會比系統記憶體更高...
這樣真的會有用嗎?
PCABC
4.  PCABC (發表於 2012年4月01日 20:04)
※ 引述《Charlie20083》的留言:
> "...即使是X79用的四通道記憶體頻寬(memory bandwidth)不過30~50GB/s左右,HD 7970上的GDDR5記憶體頻寬可高達264GB/s,是系統記憶體的數倍,有助於通用運算與少部分遊戲。"
>
> 問題是就算是PCI-E 3.0的極限頻寬也才32GB/s(應該是雙向各16GB/s沒錯吧...)
> 然後加上延遲應該會比系統記憶體更高...
> 這樣真的會有用嗎?
>




記憶體是雙向的阿

對主板那邊當然是夠 但對GPU那裡當然是要更快才行啦

CPU的快取也是相同道理 一樣快的話 何須另加記憶體

資料全部暫存在主機板的記憶體就好啦 還比較便宜咧

╮(╯_╰)╭
Shinwill
1人給推

5.  Shinwill (發表於 2012年4月01日 20:47)
※ 引述《Charlie20083》的留言:
> 問題是就算是PCI-E 3.0的極限頻寬也才32GB/s(應該是雙向各16GB/s沒錯吧...)
> 然後加上延遲應該會比系統記憶體更高...
> 這樣真的會有用嗎?

一般顯示卡所稱的記憶體頻寬
是指 GPU 與 VRAM 間溝通的頻寬
05f1939cb8e3224017e4aa38bb3e4f88?size=48&default=wavatar
6.  00351 (發表於 2012年4月01日 21:10)
難怪AMD一直都有驅動程式的包袱
每出一批新遊戲
都必須一一改版來修正遊戲特效BUG
或效能低落的問題
魯蛇實驗室
1人給推

7.  魯蛇實驗室 (發表於 2012年4月02日 10:11)
※ 引述《PCABC》的留言:
> 看了這篇之後 我更想了解開普勒的架構了
>
> 真不知道是怎樣弄得 竟然功耗降著麼多
>
> 680還可以把7970壓在地上打
>
>
28nm是主因,再者,kepler持續改良兩代的fermi架構
架構上更完善,電力效率自然表現更好
PCABC
8.  PCABC (發表於 2012年4月02日 14:18)
※ 引述《tandee》的留言:
> ※ 引述《PCABC》的留言:
> > 看了這篇之後 我更想了解開普勒的架構了
> >
> > 真不知道是怎樣弄得 竟然功耗降著麼多
> >
> > 680還可以把7970壓在地上打
> >
> >
> 28nm是主因,再者,kepler持續改良兩代的fermi架構
> 架構上更完善,電力效率自然表現更好



這期雜誌講的還蠻詳細的

Shader的部分更證實了我的疑慮 拿掉後核心頻率終於上的來了

若真有GK110 GTX685我想應該就像是460跟465的差距一樣吧

通用運算效能大增 但遊戲效能沒增多少

GPU面積大增 結果超吃電 ╮(╯_╰)╭


4fee7e03816a5222df6f7d5fb4297ec4?size=48&default=wavatar
9.  散彈槍 (發表於 2012年4月02日 20:19)
※ 引述《PCABC》的留言:
> ※ 引述《tandee》的留言:
> > ※ 引述《PCABC》的留言:
> > > 看了這篇之後 我更想了解開普勒的架構了
> > >
> > > 真不知道是怎樣弄得 竟然功耗降著麼多
> > >
> > > 680還可以把7970壓在地上打
> > >
> > >
> > 28nm是主因,再者,kepler持續改良兩代的fermi架構
> > 架構上更完善,電力效率自然表現更好
>
>
>
> 這期雜誌講的還蠻詳細的
>
> Shader的部分更證實了我的疑慮 拿掉後核心頻率終於上的來了
>
> 若真有GK110 GTX685我想應該就像是460跟465的差距一樣吧
>
> 通用運算效能大增 但遊戲效能沒增多少
>
> GPU面積大增 結果超吃電 ╮(╯_╰)╭
>
> 很難講喔,以規格來說,基本上可以把兩家目前的雙核卡王打趴,而且可能跟580差不多耗電而已,跟460和465是完全不一樣的狀況阿,畢竟GK110比GK104較像是GTX580比上GTX460才對(所以我覺得GK110相當有可能是7系列的),不過因為良率問題,所以要等到8月才會出來。
>
方
10.  (發表於 2012年4月04日 11:07)
其實打趴這句話言過其實了╯-__-)╯ ╩╩
兩者拉距肯定在玩遊戲時看不太出來
為求爽度而已

7970輸在兩點
1. 價格還不降?
2. 不CP求爽度時~我若有錢想買只買老大 ~說白點680也不夠看
發表回應
謹慎發言,尊重彼此。按此展開留言規則