0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

AMD的GPU架構(gòu)GCN現(xiàn)代化解讀

半導(dǎo)體產(chǎn)業(yè)縱橫 ? 來源:半導(dǎo)體產(chǎn)業(yè)縱橫 ? 2024-01-08 09:58 ? 次閱讀

GCN,AMDGPU架構(gòu)現(xiàn)代化。

隨著HD 5000和6000系列的發(fā)展,AMD的Terascale(萬億級)架構(gòu)變得非常具有競爭力。然而在2010年代初,面向通用計算的GPU趨勢興起,AMD并不希望錯失這個機會。Terascale的SIMD引擎是ATI的DirectX 9時代GPU中執(zhí)行單元的遠親。他們可以進行計算,但利用其能力卻不一定總能成功。英偉達的Fermi架構(gòu)具有強大的計算能力,AMD不想毫無抵抗就放棄一塊有潛力的市場。

Graphics Core Next(GCN)徹底摒棄了以通用計算的可預(yù)測性能為核心的Terascale策略。雖然Terascale的64寬波前仍然存在,但GCN的其他特點卻截然不同,以至于它甚至不能算作一個遠親。GCN的指令集類似于典型的CPU或英偉達的Fermi。為了將這些責(zé)任轉(zhuǎn)移到硬件上,顯式調(diào)度信息已被移除。線程內(nèi)的執(zhí)行嚴(yán)格遵循標(biāo)量,摒棄了Terascale從單個線程每周期發(fā)出多個操作的能力。

GCN首次亮相市場是在Tahiti芯片上,這是一款采用臺積電28納米工藝制造的352平方毫米芯片。Tahiti配備384位GDDR5接口與顯存連接,并升級為與主機的PCIe 3.0鏈接,使其比AMD之前的Cayman具有更高的片外帶寬。自2011年發(fā)布以來,GCN衍生架構(gòu)為AMD的產(chǎn)品提供服務(wù)長達十年。從Tahiti到2021年的Cezanne,GCN經(jīng)歷了大量演變,但保留了其可識別的計算單元結(jié)構(gòu)。因此,GCN是歷史最悠久的圖形架構(gòu)之一。即使在今天,GCN的DNA仍然延續(xù)在AMD面向計算的CDNA GPU中。CDNA線路取消了部分GCN的圖形功能,將重心轉(zhuǎn)向FP64,但仍然是一個可識別的GCN衍生產(chǎn)品。

wKgZomWbV1GAYWe9AABTs1B4NgI294.jpg

這篇文章將重點關(guān)注GCN早期Tahiti和Hawaii的發(fā)展情況。這里有來自AMD Radeon HD 7950的數(shù)據(jù),它使用了稍微精簡的Tahiti芯片。Hawaii是GCN的放大版。它于一年后推出,對最初的 GCN 架構(gòu)進行了輕微增強,旨在與英偉達當(dāng)時最大的GPU 競爭。

Hawaii首先推出了R9 290系列,但是會優(yōu)先考慮R9 390。這是一個稍微精簡的Hawaii芯片,配有8 GB的VRAM。

系統(tǒng)架構(gòu)

GCN的基本構(gòu)建模塊是計算單元(CU)。Tahiti的著色器陣列由32個CU組成,HD 7950啟用了28個。每個CU都有一個專用的16 KB向量緩存和64 KB本地數(shù)據(jù)共享,但與多達四個相鄰CU共享一個指令緩存和標(biāo)量緩存。

wKgZomWbV1KAZXxsAAQlQXruvrw670.jpg

計算單元陣列可以由圖形命令處理器或異步計算引擎(ACEs)提供,具體取決于工作是在圖形隊列上提交還是在計算隊列上提交。對于計算工作負(fù)載,每個ACE可以在每個周期啟動一個波前。Tahiti有兩個ACE,讓它在GPU上每個周期發(fā)射兩個波前。

wKgZomWbV1GASiAFAARgVO4Orrg528.jpg

對于圖形工作負(fù)載,GCN的光柵化器消耗由頂點著色器導(dǎo)出的屏幕空間坐標(biāo)。它們每個時鐘可以處理一個基元,每個周期可以寫出多達16個像素,因此每個光柵化器每四個周期可以發(fā)射一個64寬度的波前。Tahiti有兩個光柵化器,讓它每兩個周期發(fā)射一個像素波前。屏幕空間在兩個光柵器之間劃分,反映了 Cayman 的兩個圖形引擎的方法。Hawaii使用了四個光柵化器,使其更快地填充著色器陣列。

wKgaomWbV1GAHyahAASSPFRpnos734.jpg

計算工作負(fù)載將其結(jié)果寫入 VRAM,供未來的內(nèi)核使用或復(fù)制回主機。對于圖形,像素著色器導(dǎo)出被發(fā)送到渲染后端。Tahiti上的每個渲染后端都有一個16 KB顏色緩存和一個4 KB深度緩存。最終像素顏色被寫入內(nèi)存控制器并繞過二級緩存。與Terascale不同的是,渲染后端與內(nèi)存控制器分離,并且可以獨立于內(nèi)存總線寬度進行縮放。

GCN的計算單元

GCN的計算單元與Terascale的SIMD大致相當(dāng)。兩者每周期都可以完成64次FP32運算,如果將熔合乘加運算計為兩次,則是原來的兩倍。然而,AMD已完全重組了這個基本構(gòu)建模塊,將VLIW捆綁打包從圖片中提出。計算單元由四個較小的SIMD組成,而不是一個能夠發(fā)出四次指令的大型SIMD。每個SIMD都有自己的64 KB向量寄存器文件和10項調(diào)度程序分區(qū)。線程內(nèi)的執(zhí)行現(xiàn)在是完全標(biāo)量的,這意味著CU不能從同一線程的每個周期發(fā)出多條指令。然而,如果SIMD的調(diào)度程序分區(qū)中有多個線程已就緒,并且每個線程的就緒指令都發(fā)送到單獨的功能單元,那么CU可以每周期發(fā)射多達五個指令。

計算單元前端

計算單元(CU)的流水線從32 KB、4路組相聯(lián)的L1指令緩存中提取指令開始。指令緩存使用64字節(jié)行,與CPU上常見的緩存行大小保持一致。一個指令緩存實例可由最多四個相鄰的計算單元共享,并可在每個周期向每個計算單元提供32字節(jié)。這可能是通過四分組的設(shè)置實現(xiàn)的,因此存儲器分組沖突可能減少指令帶寬。

wKgZomWbV1GAZRNfAAGzVcU0MW4066.jpg

Terascale 3在多達四個SIMD之間共享一個48 KB的ALU指令緩存,這與GCN有一定的相似性。由于GCN的可變長度指令平均需要較少的存儲空間,AMD得以將指令緩存大小削減到32 KB。Terascale 3使用了固定長度的64位指令。一束指令的長度可以根據(jù)編譯器打包的指令數(shù)量和立即值的多少而變化,范圍從64位到384位。GCN的指令長度為32位或64位,后面可以選擇逐添1個32位立即值。

wKgZomWbV1GAA96BAAJFA54LjR8972.jpg

指令帶寬需求可視化

英偉達的Kepler使用8 KB的指令緩存,專用于每個SMX。私有緩存更適合處理Kepler的高指令帶寬需求。一個SMX需要每周期至少傳輸6條指令以滿足其192個FP32單元的需求,因為英偉達的每條指令在32個32位元素的長向量上進行操作。使用固定長度的64位指令,根據(jù)每條指令的靜態(tài)調(diào)度信息字節(jié)計算,Kepler的指令緩存每周期需要提供48或54字節(jié)的指令。GCN的計算單元每個周期只需要執(zhí)行一條指令就可以使其向量執(zhí)行單元飽和,這既是因為它的向量執(zhí)行單元較少,也是因為每條GCN指令都在一個64長的向量上操作。

調(diào)度和指令發(fā)布

一旦指令被獲取,它們將保存在一組指令緩沖區(qū)中。計算單元的四個SIMD中的每一個都有一個10項的緩沖區(qū),使其能夠跟蹤來自最多10個獨立線程的指令。因此,整個計算單元可以跟蹤40個線程(或波前)。對于64寬波前,計算單元可以在運行中執(zhí)行2560個32位操作。

每個周期,計算單元選擇一個SIMD并掃描它的10個線程,以查看是否有準(zhǔn)備好執(zhí)行的線程。GCN可以通過選擇多個線程并發(fā)布不同類別的指令來實現(xiàn)有限的多發(fā)射能力。例如,一個線程的標(biāo)量算術(shù)邏輯單元ALU(Arithmetic Logic Unit)指令可以與另一個線程的向量ALU指令同時發(fā)射。理論上,一個計算單元每個周期可以發(fā)出5條指令。但是如此高的發(fā)布率應(yīng)該是罕見的,因為工作負(fù)載不太可能有來自不同類別的指令的均勻混合。高占用率對充分利用這種多發(fā)射策略至關(guān)重要。如果SIMD有更多線程可以選擇,它將更有可能找到具有正確指令混合的多個線程以實現(xiàn)多發(fā)射。

wKgaomWbV1GAY3uxAAJhuIkLt6Q558.jpg?

假設(shè)達到理論占用率

wKgaomWbV1GANi_hAAWHLf4bBFE909.jpg

GCN的策略與Terascale形成鮮明對比,Terascale強調(diào)從單個線程的多發(fā)射,這給編譯器帶來了巨大的負(fù)擔(dān)。編譯器必須找到在打包成捆時既獨立又不過度占用寄存器文件端口的指令。GCN轉(zhuǎn)向使用線程級并行性意味著編譯器可以忽略這些硬件細(xì)節(jié)。英偉達的Kepler采用了一種折中的方法。寄存器組沖突由硬件操作數(shù)收集器處理。編譯器負(fù)責(zé)在指令流中為雙發(fā)射標(biāo)記成對的指令,但雙發(fā)射真正起到錦上添花的作用。與Terascale相比,即使不進行多發(fā)射,Kepler也能保持更好的吞吐量。

盡管GCN失去了從單個線程進行多發(fā)射的能力,但它從一個線程發(fā)出請求的次數(shù)比Terascale要多。一個Terascale SIMD有16個線程寬,每四個周期可以發(fā)射一個捆綁包,但不能連續(xù)執(zhí)行來自同一線程的兩個捆綁包。因此,Terascale需要在一個SIMD中至少有兩個線程才能實現(xiàn)最大吞吐量。GCN則消除了這一限制,因此SIMD上的線程可以每四個周期執(zhí)行一次指令。Terascale可以實現(xiàn)更高的單線程吞吐量,但前提是編譯器在將指令打包成捆綁包時做得足夠好。

wKgZomWbV1GAdjSTAALv3wwWwa4460.jpg?

在沒有寄存器組沖突和依賴延遲的情況下線程的發(fā)射速度的粗略設(shè)想。每個框代表一個周期。

與此同時,Kepler可以迅速處理單個線程。它使用32寬的波和32寬的執(zhí)行單元,所以一個線程可以在每個周期發(fā)射一條指令。雙發(fā)射是錦上添花。因此,面對低占用率和有限的線程級并行性,Kepler可以保持相當(dāng)不錯的吞吐量。

寄存器文件

選定的指令從寄存器文件中讀取其輸入。在GCN中,Terascale SIMD的巨大256 KB寄存器文件被拆分為四個64 KB寄存器文件,每個GCN SIMD一個。GCN的寄存器文件幾乎可以肯定是分組結(jié)構(gòu),但與Terascale相比,應(yīng)該更少地受到寄存器組沖突的影響。假設(shè)仍然是四分組的寄存器文件,GCN可以提供四個輸入,以供給可能需要多達三個輸入的指令(用于熔合乘加)。如果指令從標(biāo)量寄存器或指令流中的立即值獲取輸入,對向量寄存器文件的帶寬需求可能會較低。最重要的是,GCN可能有一個操作數(shù)收集器,可以在偶爾出現(xiàn)存儲器分組沖突的情況下,消除對寄存器文件帶寬的需求。

wKgZomWbV1GAWXCRAAYEAxSM5qQ003.jpg

Terascale需要復(fù)雜的調(diào)度和寄存器分配來實現(xiàn)良好的利用率。每個VLIW通道只能將返回值寫回到其對應(yīng)的寄存器文件分組中,而在讀取端的任何寄存器組沖突都可能降低VLIW打包效果。由于SMX的FP32單元沒有足夠的寄存器文件帶寬來為FMA操作提供數(shù)據(jù),因此Kepler需要付出更多的努力以實現(xiàn)完全優(yōu)化。

除了向量寄存器文件外,GCN 計算單元還有一個8 KB的標(biāo)量寄存器文件。如果程序可以將一些變量存儲在標(biāo)量寄存器中,就可以減少向量寄存器的使用并實現(xiàn)更高的占用率。

執(zhí)行單元

GCN中的每個SIMD都有一個16路寬的執(zhí)行單元。常見的FP32操作和整數(shù)加法以全速執(zhí)行,而32位整數(shù)乘法和特殊功能以四分之一速率執(zhí)行。理論吞吐量與Terascale 3相似。但是,GCN不再需要將四條指令打包到每個捆綁包中以飽和計算單元,而是需要至少四個活躍線程來填充其四個SIMD。

Terascale的分支單元被轉(zhuǎn)換為標(biāo)量ALU。盡管GPU主要是向量處理器,但它們?nèi)匀恍枰幚砜刂屏骱偷刂飞?。這些操作通常在一個向量上是常數(shù),所以標(biāo)量ALU可以卸載這些計算。將這些標(biāo)量操作移至專用單元有助于減輕向量ALU的負(fù)載并提高功率效率。

wKgaomWbV1GAY354AAI8HfYkHDo777.jpg

與Kepler的SMX相比,GCN的計算單元更小,吞吐量更低。為了彌補這一缺陷,Tahiti擁有的計算單元數(shù)量是GK104擁有SMX數(shù)量的四倍。

Hawaii擴展了著色器陣列,使其可以實現(xiàn)超過5 TFLOPS的FP32吞吐量。然而,作為未來趨勢的一個標(biāo)志,Hawaii的FP64性能落后于Tahiti。GCN的FP64吞吐量可從半速配置到1/16速。Tahiti采用與GCN最初計算設(shè)想相一致的1/4速FP64執(zhí)行進行配置。隨著GPU計算在客戶端應(yīng)用中的重要角色逐漸明確,AMD對FP64執(zhí)行的投資減少。因此,Hawaii采用了更普通的1/8速FP64。但即使以1/8速,AMD的客戶端顯卡在FP64性能上仍大幅領(lǐng)先于英偉達同類產(chǎn)品。

計算單元數(shù)據(jù)緩存

AMD重塑了緩存層次結(jié)構(gòu),以適應(yīng)通用工作負(fù)載,而非僅專注于圖形。一個16 KB的4路組相聯(lián)向量緩存作為計算單元的主數(shù)據(jù)緩存。它使用LRU替換策略,64B行,并且每周期可以為計算單元提供64字節(jié)。Terascale的8 KB只讀紋理緩存可以提供相同的每周期帶寬,但GCN享有兩倍的緩存容量和更低延遲訪問。

wKgaomWbV1KAZ17fAAE3VjJUEeM508.jpg

GCN的矢量緩存也支持寫入。L1緩存是直寫、寫分配設(shè)計。它不如大多數(shù)CPU中的回寫緩存好,但L1仍然可以在寫入被傳遞到L2之前幫助合并寫入。

wKgaomWbV1KAdFP3AAE80U7agRQ003.jpg

盡管GCN相較于Terascale有了巨大的改進,但Kepler在向量訪問方面的延遲仍然較低。AMD希望通過優(yōu)化部分內(nèi)存訪問以使用標(biāo)量路徑,來緩解這一問題。

wKgaomWbV1yAexoyAAJOODqfz-k094.jpg?

分析RX 460上運行的Valheim。RX 460使用北極星,GCN架構(gòu)的衍生物

標(biāo)量存儲器訪問由多達四個相鄰計算單元共享的16 KB 4路標(biāo)量高速緩存提供服務(wù)。標(biāo)量緩存每周期可向每個計算單元傳送16個字節(jié),并針對低延遲進行了優(yōu)化。標(biāo)量緩存命中的延遲不到50納秒,這對于此時的GPU世界來說是非??斓?。它與Terascale的紋理緩存200+ ns的延遲相去甚遠,比開普勒的任何緩存都快,除了它的2 KB常量緩存。

wKgZomWbV1KAa-zXAAFqjJfUh7Y023.jpg

與Terascale相比,GCN在計算單元內(nèi)的緩存策略既現(xiàn)代又靈活。除了對計算工作負(fù)載的巨大改進外,GCN的改變還應(yīng)有助于圖形處理。將紋理緩存容量從8 KB增加到16 KB應(yīng)該會減輕對芯片級互連的負(fù)載,并且較低的延遲意味著GPU在維持良好性能時需要較少運行中的工作。

wKgaomWbV1KAYqOkAAXsGwE3sHY838.jpg

描繪GK104 Kepler。GK210擁有128 KB的L1緩存/共享內(nèi)存

英偉達的Kepler架構(gòu)在緩存策略上既融合了過去的特點,也具備新穎之處,類似于Fermi架構(gòu)。只讀紋理緩存仍然存在。但是Kepler還有一個單獨的L1數(shù)據(jù)緩存,它與本地內(nèi)存共享存儲空間。如果這還不夠,Kepler的SMX還具有私有的兩級常量緩存設(shè)置。常量緩存與GCN的標(biāo)量緩存在功能上有一定重疊。但與Fermi不同,英偉達的編譯器不再嘗試為跨波形上的常量內(nèi)存訪問使用常量緩存。您必須使用__constant限定符顯式標(biāo)記內(nèi)存,以便使用常量緩存層次結(jié)構(gòu)。

結(jié)果是,Kepler具有三個獨立的數(shù)據(jù)緩存路徑,每個路徑都具有足夠的容量來獨立運行。這種緩存策略讓英偉達可以針對特定的工作負(fù)載類型專門優(yōu)化每個緩存。紋理緩存具有極高的96路關(guān)聯(lián)性,并且常量緩存提供了非常低的延遲。但是,為所有內(nèi)容設(shè)置獨立的緩存會占用面積。一個SMX擁有146 KB的緩存和本地內(nèi)存。

wKgZomWbV1KAHcBgAAP7GG_AL6E816.jpg

用于服務(wù)不同內(nèi)存類型的緩存

相比之下,一個GCN計算單元有80 KB的專用數(shù)據(jù)緩存和便箋式存儲器。如果將16 KB的L1標(biāo)量緩存分配給4個CPU,這個數(shù)字會上升到84 KB。

本地內(nèi)存

除了全局內(nèi)存層次結(jié)構(gòu)之外,每個GCN計算單元都有一個名為Local Data Share(LDS)的64 KB軟件管理的本地內(nèi)存。OpenCL將此內(nèi)存類型稱為“本地內(nèi)存”。LDS的結(jié)構(gòu)與Terascale中的類似,但容量翻倍。它包括32個存儲器分組,每個分組每周期可以讀取一個32位元素,總共每周期實現(xiàn)128字節(jié)的帶寬。

wKgaomWbV1KAezOsAApoRIHWj4o371.jpg

來自AMD GCN的技術(shù)文檔

英偉達的Kepler會根據(jù)GK104或GK210變體的不同,從一個64 KB或128 KB的SRAM塊中動態(tài)分配本地內(nèi)存和L1緩存存儲空間。Nvidia將本地內(nèi)存稱為“共享內(nèi)存”。與AMD的實現(xiàn)類似,Nvidia的共享內(nèi)存由32個存儲器分組組成,但每個分組寬度為64位。這為Kepler提供了每周期256字節(jié)的本地內(nèi)存帶寬,使其更適合處理64位數(shù)據(jù)類型。

wKgZomWbV1KAKb4FAAHSZJXjhnA238.jpg

正如之前提到的,當(dāng)在LDS內(nèi)進行指針追蹤時,GCN的表現(xiàn)出奇地差。Tahiti的表現(xiàn)比Cayman(Terascale 3)差。Hawaii的表現(xiàn)更好,但仍遠不及英偉達同時代的架構(gòu)。

wKgZomWbV1KAHkCdAAHGFct88D4106.jpg

AMD的優(yōu)勢在于通過LDS同步線程。內(nèi)置在LDS中的整數(shù)原子單元有助于加速這些操作。而英偉達的Fermi和Kepler架構(gòu)沒有相應(yīng)的功能。它們的共享內(nèi)存非常快,但是在原子操作的性能方面仍有很大的改進空間。

二級緩存

與大多數(shù)GPU一樣,GCN具有跨GPU共享的L2緩存。L2緩存有助于處理L1未命中,并分為獨立的分片以提供高帶寬。每個分片具有64 KB或128 KB的緩存容量,并連接到一個內(nèi)存控制器通道。Tahiti和Hawaii似乎都使用64 KB分片。每周期一個分片可以讀取64字節(jié),因此Tahiti的L2應(yīng)具有每周期768字節(jié)的帶寬。因此,在925 MHz的Boost頻率下,HD 7950理論上具有710 GB/s的L2帶寬。在1 GHz時,R9 390具有1 TB/s的L2帶寬。

wKgaomWbV1KAD-DRAAG28R1yKEs934.jpg

Terascale具有類似的L2分片配置,每個分片為64 KB,每周期提供64字節(jié)。然而,Terascale的L2只是一個只讀紋理緩存。GCN的L2采用了現(xiàn)代化的寫回設(shè)計。寫回緩存只在行被逐出時將寫操作向下一級傳播,從而吸收寫帶寬。此外,GCN的L2分片可以處理原子操作。Terascale上的原子操作將在單獨的、較小的讀寫緩存中處理,并且性能較差。

wKgaomWbV1KAVrxiAAGuOjONyrE952.jpg

關(guān)于GCN記憶子系統(tǒng)的評論

Terascale的緩存是基于圖形處理構(gòu)建的。著色器程序不需要向內(nèi)存中寫入太多數(shù)據(jù),它們的輸出被發(fā)送到專用的片上緩沖區(qū)。頂點著色器會輸出到參數(shù)緩存和位置緩沖區(qū),而像素著色器會將其輸出發(fā)送到ROPs(渲染輸出單元)。

wKgZomWbV1OAQx6kAAHQdVUzWOg289.jpg

根據(jù)Terascale ISA(指令集架構(gòu))手冊,每個著色器程序的輸出都通過專用的片上緩沖區(qū)進行傳遞,以盡量減少VRAM(顯存)寫入。顯然,計算程序無法從這些特殊緩沖區(qū)中受益。

計算程序被硬擠進這種現(xiàn)有結(jié)構(gòu)。如果讓Terascale在OpenCL內(nèi)核中從內(nèi)存獲取數(shù)據(jù),編譯器會發(fā)出頂點獲取或紋理采樣子句。主要的L1/L2緩存是只讀紋理緩存,因此寫帶寬表現(xiàn)不佳。

GCN使緩存層次結(jié)構(gòu)現(xiàn)代化,緩存設(shè)置類似于GPU上現(xiàn)在有的布局。主要的L1/L2緩存得到寫入支持。所有緩存中的標(biāo)準(zhǔn)64字節(jié)緩存行,可以輕松實現(xiàn)與CPU的數(shù)據(jù)共享。它們還是虛擬地址,只要緩存命中,TLB(轉(zhuǎn)換后援緩沖)未命中就不可能發(fā)生。緩存延遲和帶寬數(shù)字相較于Terascale都得到了顯著改善。在28nm制程時代,GCN使AMD在帶寬方面取得了很大的領(lǐng)先優(yōu)勢。這與40nm制程時代相反,那時Fermi通常比Terascale顯卡具有更高的帶寬。

wKgaomWbV1KAeT3uAAHBikCL4tQ168.jpg

隨著AMD繼續(xù)迭代GCN,緩存層次結(jié)構(gòu)得到了進一步的現(xiàn)代化。在GCN第三代中,只讀標(biāo)量緩存獲得了寫入支持。Vega在GCN第三代之后問世,并將命令處理器和渲染后端置于L2之前。這有助于減少L2刷新并提高寫帶寬。

wKgZomWbV1KAQ_FWAAKI47Jd52c592.jpg

來自AMD關(guān)于RDNA架構(gòu)的演示

盡管經(jīng)歷了重大變革,但Terascale的部分遺留特性仍然存在。四個計算單元共享指令和標(biāo)量緩存,有助于減少芯片上用于緩存的面積。這與Kepler的方法形成了鮮明對比,在Kepler中,設(shè)計師全力打造每個SMX的緩存。部分原因在于,像與同時代的英偉達競爭產(chǎn)品一樣,GCN保持了非常高的計算密度。

計算性能(VkFFT)

VkFFT在多個不同的GPU計算API中實現(xiàn)了快速傅里葉變換(FFT)。它是一個現(xiàn)代且目前仍在維護的項目,2010年代初期的GPU在完成完整基準(zhǔn)測試時可能會遇到困難。但是每個平臺都可以通過前幾個子測試,有足夠的數(shù)據(jù)展示GCN的計算潛力。VkFFT可能受內(nèi)存限制較大,而GCN的大容量內(nèi)存總線使其表現(xiàn)出色。

wKgZomWbV1KAG2RnAAL5g74JaEA137.jpg

HD 7950在與GTX 680的對比中表現(xiàn)出色。Hawaii架構(gòu)的R9 390擴大了該優(yōu)勢。VkFFT還會輸出預(yù)估的帶寬數(shù)據(jù),這些數(shù)據(jù)展示了龐大的512位GDDR5總線所能帶來的性能。

wKgaomWbV1KAasx6AAK5fJj7COc827.jpg

等一下,Oland使用128位DDR3總線在這里是怎么回事?

遺憾的是,Tesla K80無法參加Vulkan基準(zhǔn)測試,因為無法讓Vulkan在該云實例上工作。幸運的是,OpenCL幾乎可以在所有設(shè)備上運行,而且VkFFT也可以使用它。

wKgZomWbV1KAQOe9AAIbN17dLog041.jpg

當(dāng)大型GCN與大型Kepler對決時,GCN極高的計算密度和高內(nèi)存帶寬使它在每個子測試中保持領(lǐng)先。GK210的384位總線被Hawaii的512位總線超越。最重要的是,Hawaii的頻率也更高,略高于1 GHz。Tesla K80的運行頻率約為875 MHz,因為GK210芯片必須適應(yīng)150W的功耗范圍。

wKgaomWbV1KAEs_qAAIby1eHUug699.jpg

VkFFT的預(yù)估帶寬數(shù)字再次展示了GCN在帶寬方面的優(yōu)勢。Tesla K80的每個GK210芯片只有240 GB/s的理論帶寬,而R9 390的理論帶寬為384 GB/s。VkFFT在RDNA 2上進行分析時并不支持緩存,RX 6900 XT的4 MB L2幾乎沒有任何命中。K80和R9 390很可能處于類似的情況。

關(guān)于圖形性能的一點說明

對于某些計算工作負(fù)載,GCN的計算密度和高內(nèi)存帶寬可以讓它在與英偉達Kepler架構(gòu)的競爭中大幅領(lǐng)先。然而,在圖形負(fù)載方面可能是另一番情況。GCN的大規(guī)模著色器陣列在具有較長持續(xù)時間的大規(guī)模工作負(fù)載上表現(xiàn)出色。一些圖形工作負(fù)載,比如全屏像素著色器,就屬于這一類。然而,較小的工作負(fù)載可能會讓Kepler占據(jù)優(yōu)勢。

wKgaomWbV1OAJ_56AAe1KM4y1hs301.jpg

處理簡單幾何圖形的頂點著色器等小型工作負(fù)載對任何GPU來說都具有挑戰(zhàn)性,但GCN比Kepler的表現(xiàn)更糟。

相對于計算,Kepler在固定功能圖形硬件上花費更多的面積。GK104擁有四個光柵化分區(qū),每個分區(qū)有兩個SMX。如果Kepler保持與Fermi相同的光柵化吞吐量,每個光柵化器每時鐘周期可以處理一個圖元并輸出8個像素。為了實現(xiàn)Kepler完整的計算吞吐量,每個SMX需要為其四個調(diào)度分區(qū)中的每一個分配至少一個波。在沒有小三角形吞吐量損失的前提下,損失光柵化器可以在32個周期內(nèi)創(chuàng)建訪問Kepler所有計算潛力所需的最小像素工作量。Kepler每個SMX調(diào)度分區(qū)的全部占用(每分區(qū)16個波)至少需要512個周期才能達到。

wKgZomWbV1OAOXCdAAT5n9f2Hm8136.jpg

Tahiti有兩個光柵化器來為一組32個計算單元(CU)提供輸入,即每16個計算單元有一個光柵化器。每個光柵化器每時鐘周期可以處理一個圖元,并在每四個周期內(nèi)創(chuàng)建一個64寬的像素工作波。與Kepler的SMX類似,GCN的計算單元需要為每個SIMD分配至少一個波,以實現(xiàn)完整的吞吐量。光柵化器需要256個時鐘周期來實現(xiàn)這一點。達到最大占用率需要2560個時鐘周期。

wKgZomWbV1OAUrkLAAVYhkKuMdw299.jpg

來自AMD的GDC 2018的演示. GK104 Kepler的“SE:CU”比例式1;2

Hawaii通過增加到四個光柵化器來改善這種情況。對于每個光柵化器的11個計算單元,第二代GCN可以在176個周期內(nèi)實現(xiàn)每個SIMD一個波,以及在1760個周期內(nèi)實現(xiàn)完全占用。然后,像Vega 64和Fury X這樣的更大型GCN實現(xiàn)再次擴展了著色器陣列,將SE(Shader Engine)與計算單元的比例恢復(fù)到1:16。

wKgZomWbV1SAUu-QAALC18lvB1k826.jpg

放大在6900 XT上運行的瓦爾海姆的RGP配置文件,顯示了光柵化器填充著色器陣列時的延遲。同樣的情況也適用于GCN,但GCN應(yīng)該更糟

每線程性能是另一個問題。圖形渲染可能涉及具有有限并行性的序列。與Terascale相比,GCN可能提供更為穩(wěn)定的每線程性能。但是,Kepler可以為單個線程提供更多的執(zhí)行資源,這在具有大量小型繪制調(diào)用的序列中非常重要。

wKgaomWbV1OAesDBAAJY6Wf-jYQ220.jpg

放大觀察在6900 XT上運行的Cyberpunk 2077剖析,顯示具有有限并行性和短周期的小型繪制調(diào)用。在這類序列中,Kepler應(yīng)該優(yōu)于GCN。

因此,高端GCN GPU通常在較高分辨率下表現(xiàn)良好。渲染更多像素意味著更多的并行性,這使得線程啟動速率和每線程執(zhí)行時間相較于GPU的整體吞吐量變得不那么重要。

寫在最后

GCN是一個完全現(xiàn)代化的架構(gòu)。該設(shè)計的調(diào)度、執(zhí)行單元布局和緩存設(shè)置與RDNA 3和英偉達的Ada Lovelace具有更多共同點,而不像其直接前身Terascale 3。與最近的GPU一樣,GCN的設(shè)計在計算和圖形方面都具有很好的定位。然而,AMD側(cè)重于計算的轉(zhuǎn)變并未取得成功。與英偉達的生態(tài)系統(tǒng)優(yōu)勢相比,GCN的通用設(shè)計并沒有太大意義。CUDA在OpenCL之前成熟,并附帶一套預(yù)優(yōu)化的庫。更糟糕的是,GPU計算在消費者領(lǐng)域并未蒸蒸日上。游戲性能仍然是最重要的。

在2010年代初至中期,光柵化圖形繼續(xù)主導(dǎo)游戲市場。AMD在Hawaii中擴展了GCN的工作分配硬件,但英偉達在Maxwell和Pascal中取得了巨大的提升。GCN在性能和能效方面仍然難以與之匹配。

wKgZomWbV1OAEIiMAAziN7IrIWQ065.jpg

AMD希望您編寫計算著色器。

雖然這對2012年的AMD來說可能沒什么慰藉,但現(xiàn)代趨勢已經(jīng)證實了GCN設(shè)計的合理性。固定功能圖形硬件仍然重要,但游戲已逐漸趨向于使用更多的計算。光線追蹤是一個廣為人知的例子。光線追蹤基本上是一種計算工作負(fù)載,它不使用光柵化器。然而,即使沒有光線追蹤,計算著色器也在現(xiàn)代游戲中悄然發(fā)揮著更大的作用?,F(xiàn)代設(shè)計采用了GCN設(shè)計的一些元素。RDNA保留了標(biāo)量數(shù)據(jù)路徑,并使用了類似的指令集。英偉達在其Turing架構(gòu)中加入了標(biāo)量路徑(稱為統(tǒng)一數(shù)據(jù)路徑),并將其保留在后續(xù)設(shè)計中。

如今,得益于更高的顯存容量,HD 7950比GTX 680更具可用性。GCN的設(shè)計也更傾向于大型、長時間運行的內(nèi)核,因為這可以讓GCN的大型著色器陣列更好地發(fā)揮作用,同時減輕了光柵化器快速啟動波前來填充它的壓力。這使得Tahiti更有能力應(yīng)對新游戲帶來的更高著色器工作負(fù)載。R9 390也是如此。幾個月前,我收到了一位朋友的朋友不再使用的這款顯卡,但這并不是因為這款顯卡性能不足。相反地,這款R9 390為他效力的時間太長,以至于散熱膏都已經(jīng)干掉,導(dǎo)致性能極度降低。








審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    15879

    瀏覽量

    175336
  • gpu
    gpu
    +關(guān)注

    關(guān)注

    27

    文章

    4590

    瀏覽量

    128133
  • VRAM
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    8481
  • GCN
    GCN
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    2269

原文標(biāo)題:萬字長文解讀AMD的GPU架構(gòu)GCN

文章出處:【微信號:ICViews,微信公眾號:半導(dǎo)體產(chǎn)業(yè)縱橫】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Optiver采用AMD企業(yè)級產(chǎn)品實現(xiàn)數(shù)據(jù)中心現(xiàn)代化

    AMD(超威,納斯達克股票代碼:AMD )宣布,Optiver – 在超過 100 家交易所擁有交易業(yè)務(wù)的全球領(lǐng)先做市商 – 正在廣泛采用 AMD 高性能計算引擎,通過構(gòu)建一個用作組織基礎(chǔ)的現(xiàn)
    的頭像 發(fā)表于 09-18 09:54 ?260次閱讀

    ALINX FPGA+GPU架構(gòu)視頻圖像處理開發(fā)平臺介紹

    Alinx 最新發(fā)布的新品 Z19-M 是一款創(chuàng)新的 FPGA+GPU 異構(gòu)架構(gòu)視頻圖像處理開發(fā)平臺,它結(jié)合了 AMD Zynq UltraScale+ MPSoC(FPGA)與 NVIDIA Jetson Orin NX(
    的頭像 發(fā)表于 08-29 14:43 ?524次閱讀

    Optiver使用AMD企業(yè)級產(chǎn)品組合賦能數(shù)據(jù)中心現(xiàn)代化

    AMD宣布,Optiver – 在超過100家交易所擁有交易業(yè)務(wù)的全球領(lǐng)先做市商 – 正在廣泛采用AMD高性能計算引擎,通過構(gòu)建一個用作組織基礎(chǔ)的現(xiàn)代化基礎(chǔ)設(shè)施,幫助其進一步履行改善金融市場的使命。
    的頭像 發(fā)表于 05-13 09:59 ?295次閱讀

    英偉達、AMD、英特爾GPU產(chǎn)品及優(yōu)勢匯總

    電子發(fā)燒友網(wǎng)報道(文/李彎彎)隨著人工智能技術(shù)的快速發(fā)展,GPU的市場規(guī)模在全球范圍內(nèi)持續(xù)提升。目前,GPU市場主要由英偉達、AMD和英特爾等幾家大公司主導(dǎo)。其中,英偉達在AI GPU
    的頭像 發(fā)表于 05-10 00:59 ?3815次閱讀

    X-Silicon發(fā)布RISC-V新架構(gòu) 實現(xiàn)CPU/GPU一體化

    X-Silicon 的芯片與其他架構(gòu)不同,其設(shè)計將 CPU 和 GPU 的功能整合到單核架構(gòu)中。這與英特爾和 AMD 的典型設(shè)計不同,前者有獨立的 CPU 內(nèi)核和
    發(fā)表于 04-08 11:34 ?454次閱讀
    X-Silicon發(fā)布RISC-V新<b class='flag-5'>架構(gòu)</b> 實現(xiàn)CPU/<b class='flag-5'>GPU</b>一體化

    AMD將推新GPU,效能媲美英偉達RTX 4080

    據(jù)悉,AMD正努力研制新品級GPU,性能堪比英偉達的RTX 4080,而售價卻只有后者的一半。據(jù)多個在線社區(qū)反映,AMD即將發(fā)布的Radeon RX 8000系列GPU效能與NVIDI
    的頭像 發(fā)表于 01-31 10:00 ?1970次閱讀

    深入解讀AMD最新GPU架構(gòu)

    GCN 取代了 Terascale,并強調(diào) GPGPU 和圖形應(yīng)用程序的一致性能。然后,AMD 將其 GPU 架構(gòu)開發(fā)分為單獨的 CDNA 和 RDNA 線路,分別專門用于計算和圖形。
    發(fā)表于 01-08 10:12 ?957次閱讀
    深入<b class='flag-5'>解讀</b><b class='flag-5'>AMD</b>最新<b class='flag-5'>GPU</b><b class='flag-5'>架構(gòu)</b>

    揭秘GPU: 高端GPU架構(gòu)設(shè)計的挑戰(zhàn)

    在計算領(lǐng)域,GPU(圖形處理單元)一直是性能飛躍的代表。眾所周知,高端GPU的設(shè)計充滿了挑戰(zhàn)。GPU架構(gòu)創(chuàng)新,為軟件承接大模型訓(xùn)練和推理場景的人工智能計算提供了持續(xù)提升的硬件基礎(chǔ)。
    的頭像 發(fā)表于 12-21 08:28 ?734次閱讀
    揭秘<b class='flag-5'>GPU</b>: 高端<b class='flag-5'>GPU</b><b class='flag-5'>架構(gòu)</b>設(shè)計的挑戰(zhàn)

    Lambda數(shù)據(jù)架構(gòu)和Kappa數(shù)據(jù)架構(gòu)——構(gòu)建現(xiàn)代數(shù)據(jù)架構(gòu)

    如何更好地構(gòu)建我們的數(shù)據(jù)處理架構(gòu),如何對IT系統(tǒng)中的遺留問題進行現(xiàn)代化改造并將其轉(zhuǎn)變?yōu)?b class='flag-5'>現(xiàn)代數(shù)據(jù)架構(gòu)?該怎么為你的需求匹配最適合的架構(gòu)設(shè)計呢,
    的頭像 發(fā)表于 11-26 08:04 ?516次閱讀
    Lambda數(shù)據(jù)<b class='flag-5'>架構(gòu)</b>和Kappa數(shù)據(jù)<b class='flag-5'>架構(gòu)</b>——構(gòu)建<b class='flag-5'>現(xiàn)代</b>數(shù)據(jù)<b class='flag-5'>架構(gòu)</b>

    喜報!華為云金融PaaS3.0榮獲“2023年應(yīng)用現(xiàn)代化典型案例”稱號

    摘要:近日,中國軟件行業(yè)協(xié)會首屆“應(yīng)用現(xiàn)代化產(chǎn)業(yè)實踐優(yōu)秀案例”評選結(jié)果揭曉,華為云金融PaaS3.0榮獲“2023年應(yīng)用現(xiàn)代化典型案例”稱號。 中國軟件行業(yè)協(xié)會近期啟動了2023“應(yīng)用現(xiàn)代化產(chǎn)業(yè)實踐
    的頭像 發(fā)表于 11-25 17:34 ?495次閱讀
    喜報!華為云金融PaaS3.0榮獲“2023年應(yīng)用<b class='flag-5'>現(xiàn)代化</b>典型案例”稱號

    NVIDIA GPU的核心架構(gòu)架構(gòu)演進

    在探討 NVIDIA GPU 架構(gòu)之前,我們先來了解一些相關(guān)的基本知識。GPU 的概念,是由 NVIDIA 公司在 1999 年發(fā)布 Geforce256 圖形處理芯片時首先提出,從此 NVIDIA
    發(fā)表于 11-21 09:40 ?1147次閱讀
    NVIDIA <b class='flag-5'>GPU</b>的核心<b class='flag-5'>架構(gòu)</b>及<b class='flag-5'>架構(gòu)</b>演進

    AMD游戲GPU架構(gòu)的優(yōu)勢分析

    目前AMDGPU 分為兩個截然不同的產(chǎn)品領(lǐng)域,一個是針對游戲的,另一個是用于超級計算機、大數(shù)據(jù)分析和機器學(xué)習(xí)系統(tǒng)的。
    發(fā)表于 11-19 12:21 ?559次閱讀
    <b class='flag-5'>AMD</b>游戲<b class='flag-5'>GPU</b><b class='flag-5'>架構(gòu)</b>的優(yōu)勢分析

    Lambda數(shù)據(jù)架構(gòu)和Kappa數(shù)據(jù)架構(gòu)——構(gòu)建現(xiàn)代數(shù)據(jù)架構(gòu)

    如何更好地構(gòu)建我們的數(shù)據(jù)處理架構(gòu),如何對IT系統(tǒng)中的遺留問題進行現(xiàn)代化改造并將其轉(zhuǎn)變?yōu)?b class='flag-5'>現(xiàn)代數(shù)據(jù)架構(gòu)?該怎么為你的需求匹配最適合的架構(gòu)設(shè)計呢,
    的頭像 發(fā)表于 11-15 13:32 ?533次閱讀
    Lambda數(shù)據(jù)<b class='flag-5'>架構(gòu)</b>和Kappa數(shù)據(jù)<b class='flag-5'>架構(gòu)</b>——構(gòu)建<b class='flag-5'>現(xiàn)代</b>數(shù)據(jù)<b class='flag-5'>架構(gòu)</b>

    軟通動力應(yīng)用現(xiàn)代化平臺工程產(chǎn)品及服務(wù)解決方案榮獲“2023年應(yīng)用現(xiàn)代化典型案例”稱號

    北京2023年11月14日?/美通社/ -- 在數(shù)字經(jīng)濟時代,應(yīng)用現(xiàn)代化正在成為一個共識。 近日,中國軟件行業(yè)協(xié)會首屆“應(yīng)用現(xiàn)代化產(chǎn)業(yè)實踐優(yōu)秀案例”評選結(jié)果揭曉,軟通動力應(yīng)用現(xiàn)代化研究中心打造
    的頭像 發(fā)表于 11-14 16:50 ?555次閱讀
    軟通動力應(yīng)用<b class='flag-5'>現(xiàn)代化</b>平臺工程產(chǎn)品及服務(wù)解決方案榮獲“2023年應(yīng)用<b class='flag-5'>現(xiàn)代化</b>典型案例”稱號

    喜報丨軟通動力應(yīng)用現(xiàn)代化平臺工程產(chǎn)品及服務(wù)解決方案榮獲“2023年應(yīng)用現(xiàn)代化典型案例”稱號

    在數(shù)字經(jīng)濟時代,應(yīng)用現(xiàn)代化正在成為一個共識。 近日,中國軟件行業(yè)協(xié)會首屆“應(yīng)用現(xiàn)代化產(chǎn)業(yè)實踐優(yōu)秀案例”評選結(jié)果揭曉, 軟通動力應(yīng)用現(xiàn)代化研究中心打造的應(yīng)用現(xiàn)代化平臺工程產(chǎn)品及服務(wù)解決方
    的頭像 發(fā)表于 11-13 19:30 ?589次閱讀
    喜報丨軟通動力應(yīng)用<b class='flag-5'>現(xiàn)代化</b>平臺工程產(chǎn)品及服務(wù)解決方案榮獲“2023年應(yīng)用<b class='flag-5'>現(xiàn)代化</b>典型案例”稱號