2012.01.30 10:46

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

ADVERTISEMENT

不完全的MIMD架構

說了那麼多,那GCN究竟是SIMD還是MIMD架構?答案是MIMD架構但是仍有SIMD的影子。為什麼會這麼說呢?先從常理來判斷,HD 7970的規格是28nm製程、電晶體數量為45億個、ALU是2048個、核心面積大概是380平方公厘。稍微推算一下,假設前代HD 6970的4D架構換算成NVIDIA的1D架構,那ALU數量應該是1536除以4,等於384個1D運算單元。

若HD 7970用的是SIMD的1D架構,不太可能在核心面積相等的情況下,將ALU數量從384個提升到2048個,整整變成5.3倍。即便核心製程精進,這還是不可能的數字。

AMD曾說過「Southern Islands is a MIMD architecture with a SIMD array.」,意思是GCN的確是MIMD架構,不過是基於SIMD陣列而生。簡單來說GCN與之前VLIW體系相比,並非使用SIMD陣列,取而代之的是所謂Compute Unit(簡稱CU)的運算單元。

ADVERTISEMENT

▲Tahiti是第一款28nm顯卡,同時也是AMD首度踏入MIMD架構的核心。不過雖然具備MIMD特性,但是在核心內仍有SIMD的影子。

CU整合純量與向量

HD 7970內有32個CU,而CU內有Instruction Fetch Arbitration、Control and Decode、對應的快取記憶體,以及最重要的純量運算單元(Scalar Unit)、向量運算單元(Vector Unit)。此外,每個CU包含64個ALU。

ADVERTISEMENT

先前說到GCN是基於SIMD架構的原因,就在向量運算單元內有4組SIMD陣列,每個陣列由16個ALU所構成。每個CU的SIMD每周期能執行64個FMAD(乘加指令)向量運算,不過CU的4組SIMD在每周期內可執行4個執行緒,因此具備MIMD的特性。

不過GCN的SIMD陣列,存在向量運算單元內,不是整個CU都是SIMD架構。HD 6970的SIMD則是相對於HD 7970的CU,兩者層級應該先搞清楚,後面才不會混淆。

另外,CU內還有1個純量運算單元,不過ALU只支援整數(Integer)運算,且暫存器(Scalar Registers)只有4KB(早期的AMD資料是寫8KB),看起來GCN的改革並不徹底。

ADVERTISEMENT

▲CU內的核心就是Vector Unit也就是向量運算單元,此單元採用SIMD架構,這也是為什麼GCN被稱為還有SIMD影子的原因。

ADVERTISEMENT

▲不過GCN的CU每周期可執行4個執行緒,因此被稱為具備MIMD特性。

(後面還有執行方式大改革)

ADVERTISEMENT