HD7950權威首測!鏖戰新舊2代4大卡皇
看了上頁圖形引擎部分的介紹,很多人可能會失望——基本沒動嘛,還說什么次世代圖形核心?別著急,好戲在后頭。我們知道AMD歷代GPU的瓶頸除了曲面細分以外,其實最重要的是5D/4D VLIW架構的效率問題。現在Tahiti的GCN架構就是要解決這個問題,它的流處理器結構已經面目全非了。
Tahiti徹底拋棄VLIW架構
通過Tahiti的整體架構圖我們看到,傳統的SIMD流處理器陣列消失了,取而代之的是GCN陣列,Tahiti總計擁有2048個流處理器,這樣每個GCN陣列里面擁有64個流處理器。現在來看看GCN陣列的微觀結構。
GCN與GF100的SM何其相似
Tahiti的GCN陣列微觀結構
GCN陣列里有4組SIMD單元,每組SIMD單元里面包括16個流處理器、或者說是標量運算器。GCN架構已經完全拋棄了此前5D/4D流處理器VLIW超長指令架構的限制,不存在5D/4D指令打包-派發-解包的問題,所有流處理器以16個為一組SIMD陣列完成指令調度。簡單來說,以往是指令集并行,而現在是線程級并行。
GF100的SM(流處理器簇)微觀結構
可以這么理解,一個GCN陣列與GF100當中的一組SM相當,GF100的一組SM當中有4組共計32個流處理器,而Tahiti的一組GCN當中有4組共計64個流處理器。
緩存部分
每個SIMD-16單元都擁有64KB向量寄存器
每組GCN陣列擁有64KB的本地數據共享緩存,還有16KB的一級緩存
每組GCN陣列有一個標量運算單元,用于執行整數指令、媒體指令和浮點原子操作,這個標量運算單元擁有自己的4KB寄存器
而GF100的緩存設計得更加靈活,每組SM里面擁有總計64KB的共享緩存+一級緩存,這64KB緩存可以根據實際運算量來動態調整,如果把16KB分配給一級緩存的話,那剩下的48KB就是共享緩存,反之亦然。
一般來說,進行圖形渲染時需要共享緩存比較多,而并行計算時則會用到更多的一級緩存。GF100這種靈活的緩存分配機制更適合做并行計算,而GCN架構更大的共享緩存會有更好的圖形渲染性能,并行計算則會稍遜一籌。
更多的線程調度
從緩存部分的設計來看,雖然GCN擁有更大的緩存容量,但在并行計算領域經營多年的NVIDIA顯然要棋高一手。
從線程級別來看,GCN與SM是不可分割的最小單元,GCN一次可以執行64個線程,而SM是48個(其實就是流處理器的數量)。
從多線程執行上來看,GCN可以同時執行4個硬件線程,而SM是雙線程調度器的設計(參見架構圖)。
如此來看,GCN架構的多線程性能會更好一些。
小結:AMD GCN借鑒NVIDIA SM架構
在流處理器部分,終于不用費勁的把AMD和NVIDIA GPU架構分開介紹了,因為GCN與SM已經沒有本質區別。剩下的只是緩存容量、流處理器簇的數量、線程調度機制的問題,雙方根據實際應用自然會有不同的判斷,自家的前后兩代產品也會對這些數量和排列組合進行微調。
AMD向NVIDIA的架構靠攏,GCN架構改動之大,前所未有!
關注我們



