HD7970核心——革命的GCN架構(gòu)
核心架構(gòu)對(duì)顯卡性能至關(guān)重要,可能有些讀者對(duì)HD7970的核心還不熟悉,這里我們簡(jiǎn)單介紹一下。
我們知道AMD歷代GPU的瓶頸除了曲面細(xì)分以外,其實(shí)最重要的是5D/4D VLIW架構(gòu)的效率問(wèn)題。HD7950和HD7970核心代號(hào)Tahiti,采用了全新的GCN架構(gòu),流處理器結(jié)構(gòu)全部重新設(shè)計(jì)而來(lái)。
Tahiti徹底拋棄VLIW架構(gòu)
通過(guò)Tahiti的整體架構(gòu)圖我們看到,傳統(tǒng)的SIMD流處理器陣列消失了,取而代之的是GCN陣列,Tahiti總計(jì)擁有2048個(gè)流處理器,這樣每個(gè)GCN陣列里面擁有64個(gè)流處理器,F(xiàn)在來(lái)看看GCN陣列的微觀結(jié)構(gòu)。
GCN與GF100的SM何其相似
GCN陣列里有4組SIMD單元,每組SIMD單元里面包括16個(gè)流處理器、或者說(shuō)是標(biāo)量運(yùn)算器。GCN架構(gòu)已經(jīng)完全拋棄了此前5D/4D流處理器 VLIW超長(zhǎng)指令架構(gòu)的限制,不存在5D/4D指令打包-派發(fā)-解包的問(wèn)題,所有流處理器以16個(gè)為一組SIMD陣列完成指令調(diào)度。簡(jiǎn)單來(lái)說(shuō),以往是指令 集并行,而現(xiàn)在是線程級(jí)并行。
可以這么理解,一個(gè)GCN陣列與GF100當(dāng)中的一組SM相當(dāng),GF100的一組SM當(dāng)中有4組共計(jì)32個(gè)流處理器,而Tahiti的一組GCN當(dāng)中有4組共計(jì)64個(gè)流處理器。
緩存部分
每個(gè)SIMD-16單元都擁有64KB向量寄存器
每組GCN陣列擁有64KB的本地?cái)?shù)據(jù)共享緩存,還有16KB的一級(jí)緩存
每組GCN陣列有一個(gè)標(biāo)量運(yùn)算單元,用于執(zhí)行整數(shù)指令、媒體指令和浮點(diǎn)原子操作,這個(gè)標(biāo)量運(yùn)算單元擁有自己的4KB寄存器
而GF100的緩存設(shè)計(jì)得更加靈活,每組SM里面擁有總計(jì)64KB的共享緩存+一級(jí)緩存,這64KB緩存可以根據(jù)實(shí)際運(yùn)算量來(lái)動(dòng)態(tài)調(diào)整,如果把16KB分配給一級(jí)緩存的話,那剩下的48KB就是共享緩存,反之亦然。
一般來(lái)說(shuō),進(jìn)行圖形渲染時(shí)需要共享緩存比較多,而并行計(jì)算時(shí)則會(huì)用到更多的一級(jí)緩存。GF100這種靈活的緩存分配機(jī)制更適合做并行計(jì)算,而GCN架構(gòu)更大的共享緩存會(huì)有更好的圖形渲染性能,并行計(jì)算則會(huì)稍遜一籌。
更多的線程調(diào)度
從緩存部分的設(shè)計(jì)來(lái)看,雖然GCN擁有更大的緩存容量,但在并行計(jì)算領(lǐng)域經(jīng)營(yíng)多年的NVIDIA顯然要棋高一手。
從線程級(jí)別來(lái)看,GCN與SM是不可分割的最小單元,GCN一次可以執(zhí)行64個(gè)線程,而SM是48個(gè)(其實(shí)就是流處理器的數(shù)量)。
從多線程執(zhí)行上來(lái)看,GCN可以同時(shí)執(zhí)行4個(gè)硬件線程,而SM是雙線程調(diào)度器的設(shè)計(jì)(參見(jiàn)架構(gòu)圖)。
所以GCN架構(gòu)的多線程性能更加優(yōu)秀。