圖形與計(jì)算那些事 AMD次世代架構(gòu)解析
也許有人會(huì)問,如此暴力的擴(kuò)充流處理器規(guī)模而不更改架構(gòu),R600架構(gòu)會(huì)成為AMD的常青樹嗎?難道不會(huì)有什么瓶頸嗎?當(dāng)然會(huì)有,AMD也發(fā)現(xiàn)了,所以從HD6000系列開始又進(jìn)行了一輪架構(gòu)的微調(diào),透過AMD架構(gòu)微調(diào)這一結(jié)果,我們可以了解出現(xiàn)問題原因到底是什么?
HD6870的一小步:兩個(gè)超線程分配處理器
Barts核心的HD6870率先問世,這顆核心定位中端,所以流處理器從Cypress的1600個(gè)精簡到了1120個(gè),流處理器結(jié)構(gòu)依然沒有任何變化,但是前端控制模塊一分為二:
相信大家應(yīng)該注意到了,以往AMD的SIMD架構(gòu)則是整顆GPU共享單一的控制單元,自R600以來都是如此。
Cypress的單一圖形裝配引擎
但隨著晶體管規(guī)模和流處理器數(shù)量的迅速膨脹,單一的控制單元已經(jīng)無法滿足大規(guī)模并行指令分配的需要,因此從Cypress開始,AMD采用了“雙核心”的設(shè)計(jì),將SIMD陣列一分為二,也就是類似于NVIDIA GPC的設(shè)計(jì)。與此相對(duì)應(yīng)的,圖形裝配引擎雖然只有一個(gè),內(nèi)部卻設(shè)計(jì)了兩個(gè)Hierarchical Z(分層消影器)和Rasterizer(光柵器),但是其它的特殊功能模塊均只有一個(gè)。
Barts和Cypress一樣,依然保持了雙核心設(shè)計(jì),圖形引擎也只有一個(gè),內(nèi)部的功能模塊并沒有太多變化。但是Ultra-Treaded Dispatch Processor(超線程分配處理器)卻變成了兩個(gè),相對(duì)應(yīng)的,超線程分配處理器的指令緩存也變成了兩份。
Barts的圖形裝配引擎
我們知道,Barts的流處理器數(shù)量是Cypress的70%,按理說線程分配壓力有所下降,那么設(shè)計(jì)兩個(gè)線程分配處理器的目的只有一個(gè),那就是提升效率。在DX11時(shí)代,幾何著色再加上曲面細(xì)分單元引入之后,圖形裝配引擎會(huì)產(chǎn)生更多的并行線程及指令轉(zhuǎn)交SIMD進(jìn)行處理,因此指令派發(fā)效率成為了新的瓶頸。
SIMD架構(gòu)的優(yōu)勢就是可以用較少的晶體管制造成龐大的流處理器規(guī)模,擁有恐怖的理論運(yùn)算能力;但缺點(diǎn)就是流處理器執(zhí)行效率比MIMD架構(gòu)低,其效率高低完全依賴于分配單元的派發(fā)效率。因此Barts這種雙線程分配處理器的設(shè)計(jì)意義重大。
雙超線程分配處理器的意義:曲面細(xì)分性能翻倍
HD6000系列可以說是半代改進(jìn)的架構(gòu),既然數(shù)量上維持不變,就只能從改進(jìn)效率的方面考慮了。而改進(jìn)的內(nèi)容就是加強(qiáng)線程管理和緩沖,也就是“雙倍的超線程分配處理器和指令緩存”。
根據(jù)AMD官方提供的數(shù)據(jù)來看,HD6870的曲面細(xì)分性能最多可達(dá)HD5870的兩倍,這種情況出現(xiàn)在10級(jí)左右的中等細(xì)分程度,當(dāng)曲面細(xì)分達(dá)到20級(jí)以上的時(shí)候,那么它們的性能就基本上沒有區(qū)別了。
由此可見,Barts核心當(dāng)中的Tessellator單元本身在性能方面應(yīng)該沒有改進(jìn),其性能提升主要源于兩顆超線程分配處理器。中等級(jí)別的曲面細(xì)分在指令分配方面是瓶頸,Barts改進(jìn)的架構(gòu)消除了這一瓶頸,所以性能提升十分顯著,但如果細(xì)分級(jí)別特別高時(shí),Tessellator本身的運(yùn)算能力將成為瓶頸,此時(shí)線程派遣器的效率再高,也無濟(jì)于事。
看起來,AMD迫切的想要改進(jìn)指令派發(fā)效率,以滿足龐大規(guī)模流處理器的胃口,并且有效的提升備受詬病的曲面細(xì)分性能。AMD的做法就是繼續(xù)保持現(xiàn)有架構(gòu)不變,發(fā)現(xiàn)瓶頸/缺陷然后消除瓶頸/缺陷,這讓筆者想起了一段老話:“新三年舊三年,縫縫補(bǔ)補(bǔ)又三年”。
關(guān)注我們
