RDNA 3 代表了 AMD RDNA 架構(gòu)的第三次迭代,它在其消費類圖形產(chǎn)品線中取代了 GCN。在較高層面上,與 RDNA 2 相比,RDNA 3 的目標(biāo)是大規(guī)模擴展。緩存設(shè)置在各個層面進行了調(diào)整,以提供更高的帶寬。為了擴展計算吞吐量而不僅僅是添加更多 WGP,AMD 為通用指令的子集實現(xiàn)了雙重發(fā)布功能。
在本文中,我們將對 7900XTX 進行一些微基準(zhǔn)測試,看看與 AMD 的 RDNA 2 架構(gòu)相比的差異。我們還將結(jié)合Nemes 的 GPU 微基準(zhǔn)測試套件的結(jié)果。雖然我對 CPU 微基準(zhǔn)測試有相當(dāng)多的了解,但我無法將幾乎那么多的時間投入到我的 OpenCL bsaed 測試中。Nemes 在她基于 Vulkan 的 GPU 測試套件上取得了很好的進展,她的測試在某些領(lǐng)域提供了更好的覆蓋。
內(nèi)存延遲
測試緩存和內(nèi)存延遲讓我們可以很好地了解 RDNA 3 的緩存和內(nèi)存設(shè)置。延遲測試在后 GCN AMD 圖形架構(gòu)上也很復(fù)雜,因為全局內(nèi)存層次結(jié)構(gòu)可以通過標(biāo)量或矢量數(shù)據(jù)路徑訪問,它們具有不同的一級緩存。如果編譯器確定加載的值在整個波前(wavefront)是恒定的,它可以告訴 GPU 使用標(biāo)量數(shù)據(jù)路徑。因為標(biāo)量路徑用于延遲敏感的東西,比如計算波前負(fù)載的內(nèi)存地址,延遲是相當(dāng)不錯的(對于 GPU)。在訪問全局內(nèi)存時,AMD 大量使用矢量和標(biāo)量端。確切的比例會因工作量而異,但通常兩者都很重要。
Radeon GPU Profiler 的統(tǒng)計數(shù)據(jù)顯示了在 RDNA 2 上運行的幾個工作負(fù)載上執(zhí)行的指令混合。SMEM(標(biāo)量路徑)和 VMEM(矢量路徑)都用于命中全局內(nèi)存。
讓我們從標(biāo)量方面開始。與 RDNA 2 一樣,RDNA 3 具有 16 KB、4 路組關(guān)聯(lián)標(biāo)量緩存。此緩存的加載到使用延遲非常好,RDNA 3 為 15.4 ns,RDNA 2 為 17.4 ns。RDNA 3 的延遲優(yōu)勢至少部分歸功于更高的時鐘速度。Nvidia 的 Ada Lovelace 在到達 SM 的 L1 時的延遲稍好一些,考慮到 Nvidia 緩存的大小,這令人印象深刻。我們在這里看到 64 KB 的 L1 緩存容量,但 Ada Lovelace 實際上有一個 128 KB 的 SRAM 塊,可以在 L1 和共享內(nèi)存 (LDS) 使用之間靈活分區(qū)。
AMD 還增加了 L1 和 L2 中級緩存的容量,以便更好地處理更大 GPU 的帶寬需求。RDNA 2 有一個 128 KB、16 路集關(guān)聯(lián) L1,在著色器陣列中共享。RDNA 3 將容量翻倍至 256 KB,同時保持 16 向結(jié)合性。L2 緩存容量增加到 6 MB,而 RDNA 2 上為 4 MB,同時還保持 16 路關(guān)聯(lián)性。盡管容量有所增加,但 RDNA 3 在 L1 和 L2 上都提供了可測量的延遲改進。
AMD 的幻燈片描述了 RDNA 3 的緩存系統(tǒng)
然而,RDNA 3 的 Infinity Cache 有所退步。容量從 128 MB 減少到 96 MB,同時延遲增加。這并不奇怪,因為 RDNA 3 的 Infinity Cache 是在單獨的內(nèi)存控制器芯片上實現(xiàn)的。但這也不應(yīng)該是一個大問題。RDNA 3 可能能夠通過其片上 L2 為更多內(nèi)存訪問提供服務(wù),而不必經(jīng)常訪問 Infinity Cache。
為了減少內(nèi)存帶寬需求,Nvidia 選擇大規(guī)模擴展 L2 而不是添加另一級緩存。與 AMD 最近的 GPU 相比,這稍微提高了 L2 延遲,但確實提供了比 Ada Lovelace 更優(yōu)越的延遲特性,以應(yīng)對數(shù)十兆字節(jié)范圍內(nèi)的內(nèi)存占用。RTX 4090 的 L2 容量為 72 MB,比芯片上實際存在的 96 MB SRAM 有所縮減。
與 RDNA 2 相比,RDNA 3 上的 VRAM 延遲略有上升。Nvidia 在該領(lǐng)域具有優(yōu)勢,部分原因是 AMD 在前往 DRAM 的途中檢查額外級別的緩存時會產(chǎn)生額外的延遲。
矢量延遲
當(dāng)然,矢量路徑的延遲也很重要,因此我修改了測試以防止編譯器確定加載的值在整個波前保持不變。從矢量方面來看,AMD 發(fā)現(xiàn)延遲增加了,但矢量訪問對延遲的敏感度應(yīng)該較低。向量緩存的設(shè)計也發(fā)揮了作用——與 4 路標(biāo)量緩存相比,它在 RDNA 2 和 RDNA 3 上都是 32 路組關(guān)聯(lián)。在一次查找中檢查 32 個標(biāo)簽可能會比檢查四個標(biāo)簽產(chǎn)生更高的延遲。
盡管如此,與 RDNA 2 相比,RDNA 3 設(shè)法減少了 L0 向量緩存延遲,同時將容量翻了一番,達到每個 CU 32 KB。
在緩存層次結(jié)構(gòu)的下方,延遲特性主要反映標(biāo)量端的特性,盡管絕對延遲當(dāng)然更高。當(dāng)我們從矢量端進行測試時,RDNA 2 的 VRAM 延遲優(yōu)勢也會降低。這兩種架構(gòu)在 1 GB 的測試大小下結(jié)束了幾納秒,這基本上沒有。
內(nèi)存帶寬
Radeon 7900 XTX 比 6900 XT 擁有更多的 WGP。同時,每個 WGP 都有更多的計算吞吐量,因此必須加強內(nèi)存子系統(tǒng)來滿足它們的需求。因此,RDNA 3 在內(nèi)存子系統(tǒng)的每個級別都看到了巨大的帶寬增加。L1 和 L2 緩存的增益尤其顯著,與 RDNA 2 相比,帶寬大約翻了一番,盡管它們的容量也有所增加。
使用 Nemes 的帶寬測試,因為它比我的更干凈地溢出緩存級別
Infinity Cache 帶寬也有大幅增加。使用純讀取訪問模式,我們無法獲得理論上可能實現(xiàn)的 2.7 倍帶寬增長。盡管如此,1.8 倍的帶寬提升并不是開玩笑的??紤]到 Infinity Cache 在不同的小芯片上物理實現(xiàn),帶寬優(yōu)勢令人印象深刻,而 RDNA 2 將 Infinity Cache 保留在芯片上。
AMD 還為 7900XTX 配備了更大的 GDDR6 設(shè)置,使其帶寬比 6900XT 高得多。事實上,它的 VRAM 帶寬更接近 GA102 的帶寬。這可能使 AMD 能夠保持高性能,同時減少末級緩存的數(shù)量,從而允許使用更小的內(nèi)存控制器芯片。
占用率較低時的帶寬
現(xiàn)代 GPU 旨在利用大量顯式并行性。但是一些工作負(fù)載沒有足夠的并行性來填充所有可用的計算單元。頂點著色器,我在看著你。Nemes 的測試套件目前沒有為較低的工作組數(shù)量提供結(jié)果,所以我在這里使用 OpenCL 結(jié)果。
讓我們從單個工作組的帶寬開始。運行單個工作組將我們限制在 AMD 上的單個 WGP,或 Nvidia 架構(gòu)上的 SM。這是我們可以在 CPU 上獲得的最接近單核帶寬的值。與 CPU 上的單核帶寬一樣,此類測試并不特別代表任何現(xiàn)實世界的工作負(fù)載。但它確實讓我們從單個計算單元的角度了解了內(nèi)存層次結(jié)構(gòu)。
同樣,我們可以看到 RDNA 3 更大的片上緩存。從單個 WGP 的角度來看,所有這三個緩存級別都提供了更高的帶寬。Nvidia 有一個非常大和快速的一級緩存,但在那之后,只要它可以服務(wù)于 L1 或 L2 的訪問,AMD 就有優(yōu)勢。
從 Infinity Cache 來看,RDNA 3 的日子更難過,這可能是因為單個 WGP 沒有獲得足夠的內(nèi)存級并行能力增加來吸收 Infinity Cache 延遲的增加。事實上,一個 WGP 的 Infinity Cache 帶寬與 RDNA 2 中的帶寬相比有所下降。當(dāng)我們使用 VRAM 時,情況再次翻轉(zhuǎn),RDNA 3 領(lǐng)先。
帶寬縮放
共享緩存很好,因為可以更有效地使用它們的容量。共享緩存可以存儲數(shù)據(jù)一次并為來自多個計算單元的請求提供服務(wù),而不是在多個私有緩存之間復(fù)制共享數(shù)據(jù)。然而,共享緩存很難實現(xiàn),因為它必須能夠處理所有客戶端的帶寬需求。
我們將從 L2 帶寬開始,因為 L0 和 L1 帶寬幾乎呈線性擴展。L2 縮放更難實現(xiàn),因為單個 6 MB L2 緩存必須為 GPU 上的所有 48 個 WGP 提供服務(wù)??紤]到這一點,RDNA 3 的 L2 在擴展方面做得非常好,可以滿足所有這些 WGP 的帶寬需求。隨著 WGP 數(shù)量的增加,RDNA 3 的 L2 帶寬開始遠離 RDNA 2。
與 Nvidia 的 Ada Lovelace 相比,這兩種 AMD 架構(gòu)都能夠為匹配的工作組數(shù)量提供更多的 L2 帶寬。但是,RTX 4090 具有更大的一級緩存,應(yīng)該可以減少 L2 流量。Ada Lovelace 的 L2 也起著稍微不同的作用,兼作某種 Infinity Cache??紤]到其非常大的容量,Nvidia 的 L2 表現(xiàn)非常出色。如果我們與具有相似容量的 RDNA 3 的 Infinity Cache 進行比較,Ada 的 L2 在低占用率下保持相似的帶寬。當(dāng) Ada 的所有 SM 都發(fā)揮作用時,Nvidia 將享有巨大的帶寬優(yōu)勢。當(dāng)然,AMD 的 Infinity Cache 不需要提供那么多的帶寬,因為 L2 緩存通常會吸收相當(dāng)比例的 L1 未命中流量。
與 RDNA 2 相比,RDNA 3 的 Infinity Cache 的提升速度稍慢,并且加載不到其 WGP 的一半處于劣勢。但是,當(dāng)工作負(fù)載擴展到填滿所有 WGP 時,RDNA 3 的 Infinity Cache 顯示出比 RDNA 2 更大的帶寬優(yōu)勢。
4090 夸大了其最大內(nèi)存帶寬,因為我們的測試無法完全擊敗 4090 上的讀取組合
從 VRAM 來看,兩種 AMD 架構(gòu)都以低占用率享有非常好的帶寬。
RDNA 3 從一個小優(yōu)勢開始,隨著更多 WGP 發(fā)揮作用而變得更大。從另一個角度來看,RDNA 2 的 256 位 GDDR6 設(shè)置可能僅用 10 個 WGP 就可以飽和。RDNA 3 更大的 VRAM 子系統(tǒng)可以滿足更多需要全帶寬的 WGP。如果僅加載少量 SM,Nvidia 在 VRAM 帶寬方面會遇到更多麻煩,但在占用率較高時處于領(lǐng)先地位。
本地內(nèi)存延遲
除了常規(guī)的全局內(nèi)存層次結(jié)構(gòu)之外,GPU 還具有快速暫存器內(nèi)存。OpenCL 調(diào)用這個本地內(nèi)存。在 AMD GPU 上,相應(yīng)的結(jié)構(gòu)稱為本地數(shù)據(jù)共享 (LDS)。Nvidia GPU 稱之為共享內(nèi)存。與緩存不同,軟件必須明確分配和管理本地內(nèi)存容量。一旦數(shù)據(jù)在 LDS 中,軟件就可以期望有保證的高帶寬和低延遲訪問該數(shù)據(jù)。
與前幾代 RDNA 一樣,每個 RDNA 3 WGP 都有一個 128 KB 的 LDS。LDS 內(nèi)部構(gòu)建有兩個 64 KB 塊,每個塊都隸屬于 WGP 中的一個 CU。每個 64 KB 塊包含 32 個存儲區(qū),每個存儲區(qū)可以處理 32 位寬的訪問。這使得 LDS 可以在每個周期為波前范圍的負(fù)載提供服務(wù)。我們目前沒有針對 LDS 帶寬的測試,但 RDNA 3 似乎具有非常低的延遲 LDS。
*Xavier 結(jié)果可能不準(zhǔn)確,因為該 GPU 上的時鐘斜坡非常慢
由于架構(gòu)改進和更高的時鐘速度相結(jié)合,RDNA 3 大大改善了 LDS 延遲。Nvidia 的本地內(nèi)存延遲略高于 AMD 的架構(gòu),但 RDNA 3 改變了這一點。當(dāng) RDNA 3 處理光線追蹤時,低 LDS 延遲可能非常有用,因為 LDS 用于存儲 BVH 遍歷堆棧。
作為比較,RDNA 2 的 LDS 具有與其標(biāo)量緩存大致相同的加載到使用延遲。它仍然非常有用,因為它可以比從 L0 向量緩存中更快地將數(shù)據(jù)放入向量寄存器。我檢查了這個測試的編譯代碼,它正在使用向量寄存器,即使工作組中除了一個線程之外的所有線程都被屏蔽了。
WGP 計算特性
相比RDNA 2,RDNA 3在計算吞吐量上明顯有很大優(yōu)勢。畢竟,它具有更高的 WGP 計數(shù)。但計算吞吐量的潛在增長不止于此,因為 RDNA 3 的 SIMD 獲得了有限的雙重發(fā)布能力。在 wave32 模式下,某些常用操作可以打包到單個 VOPD(向量操作,對偶)指令中。在 wave64 模式下,SIMD 自然會嘗試在單個周期內(nèi)開始執(zhí)行 64 寬波前,前提是指令可以雙重發(fā)出。
RDNA 3 VOPD 指令以八個字節(jié)編碼,并支持兩個操作中的每一個的兩個源和一個目標(biāo)。這不包括需要三個輸入的操作,例如通用的融合乘加操作。雙重發(fā)行機會進一步受到可用執(zhí)行單元、數(shù)據(jù)依賴性和寄存器文件帶寬的限制。
同一位置的操作數(shù)不能從同一寄存器組(register bank)讀取。早些時候我們推測這是handling bank 沖突的局限性。然而,AMD 的 ISA 手冊明確指出,每個存儲體實際上都有一個寄存器緩存,其中包含三個讀取端口,每個端口都與一個操作數(shù)位置相關(guān)聯(lián)。來自相同源位置的相同存儲體的兩次讀取將超額訂閱寄存器高速緩存端口。另一個限制適用于目標(biāo)寄存器,它不能同時是偶數(shù)或奇數(shù)。
在此測試中,我們運行單個工作組以將測試保持在 WGP 的本地。由于最近 GPU 上的提升行為變化很大,我們將時鐘鎖定到 1 GHz 以深入了解每個時鐘的行為。
我的測試肯定高估了 Ada 的 FP32 和 INT32 添加,或者 2.7 GHz 時鐘速度的假設(shè)已關(guān)閉
不幸的是,通過 OpenCL 進行測試很困難,因為我們依賴編譯器來尋找雙重問題機會。我們只看到 FP32 添加令人信服的雙重問題行為,其中編譯器發(fā)出 v_dual_add_f32 指令。混合 INT32 和 FP32 加法測試看到了一些好處,因為 FP32 加法是雙重發(fā)出的,但由于缺少用于 INT32 操作的 VOPD 指令,因此無法為 INT32 生成 VOPD 指令。用于計算 GPU 的標(biāo)題 TFLOPs 數(shù)的融合乘加看到很少發(fā)出雙重問題指令。兩種架構(gòu)都可以雙倍速率執(zhí)行 16 位操作,盡管這與 RDNA 3 的新雙發(fā)射功能無關(guān)。相反,16 位指令受益于以壓縮數(shù)學(xué)模式發(fā)出的單個操作。在其他主要類別中,吞吐量與 RDNA 2 基本相似。
為融合乘加測試生成的 RDNA 3 代碼,雙問題對標(biāo)記為紅色
我猜 RDNA 3 的雙發(fā)模式影響有限。它在很大程度上依賴于編譯器來尋找 VOPD 的可能性,而編譯器在看到非常簡單的優(yōu)化時愚蠢得令人沮喪。例如,上面的 FMA 測試對兩個輸入使用一個變量,這應(yīng)該使編譯器能夠滿足雙重問題約束。但顯然,編譯器并沒有讓它發(fā)生。我們還使用 clpeak 進行了測試,并在那里看到了類似的行為。即使編譯器能夠發(fā)出 VOPD 指令,只有在計算吞吐量成為瓶頸而不是內(nèi)存性能時,性能才會提高。
從 AMD 的新聞稿中幻燈片,注意到新的雙重發(fā)行能力
另一方面,VOPD 確實留下了改進的潛力。AMD 可以通過用手動優(yōu)化的程序集替換已知的著色器來優(yōu)化游戲,而不是依賴于編譯器代碼生成。與編譯器所希望的相比,人類更善于發(fā)現(xiàn)雙重問題機會。Wave64 模式是另一個機會。在 RDNA 2 上,AMD 似乎將許多像素著色器編譯為 wave64 模式,在這種模式下,雙重問題可能會在編譯器沒有任何調(diào)度或寄存器分配智能的情況下發(fā)生。
一旦 AMD 有更多時間優(yōu)化架構(gòu),看看 RDNA 3 的性能將會很有趣,但他們絕對有理由不將 VOPD 雙問題功能作為額外的著色器來宣傳。通常,GPU 制造商使用著色器計數(shù)來描述他們的 GPU 每個周期可以完成多少 FP32 操作。理論上,VOPD 將使每個 WGP 的 FP32 吞吐量翻倍,除了額外的執(zhí)行單元外,硬件開銷非常小。但它是通過將繁重的調(diào)度責(zé)任推給編譯器來實現(xiàn)的。AMD 可能意識到編譯器技術(shù)無法勝任這項任務(wù),而且不會很快達到目標(biāo)。
在指令延遲方面,RDNA 3 與之前的 RDNA 架構(gòu)相似。常見的 FP 操作以 5 個周期的延遲執(zhí)行。Nvidia 在這方面略有優(yōu)勢,能夠以 4 個周期的延遲執(zhí)行常見操作。
GPU 不進行分支預(yù)測,也不像 CPU 那樣具有強大的標(biāo)量執(zhí)行能力,因此循環(huán)開銷通常會導(dǎo)致延遲被高估,即使在展開時也是如此
從圖靈開始,Nvidia 也實現(xiàn)了非常好的整數(shù)乘法性能。整數(shù)乘法在著色器代碼中似乎極為罕見,而且 AMD 似乎也沒有針對它進行優(yōu)化。32 位整數(shù)乘法的執(zhí)行速度約為 FP32 的四分之一,而且延遲也相當(dāng)高。
全 GPU 吞吐量——Vulkan
在這里,我們使用 Nemes 的 GPU 基準(zhǔn)測試套件來測試完整的 GPU 吞吐量,其中考慮了所有 WGP 處于活動狀態(tài)時的加速時鐘。RDNA 3 通過 VOPD 指令、更高的 WGP 計數(shù)和更高的時鐘速度實現(xiàn)更高的吞吐量。奇怪的是,AMD的編譯器非常愿意將Nemes的測試代碼序列轉(zhuǎn)化為VOPD指令。
為了從每秒操作中獲得 FLOP 數(shù),將 FMA 數(shù)乘以 2,這為 FP32 和 FP16 FMA 計算提供了 62.9 TFLOP。
結(jié)果是 FP32 吞吐量大幅增加。FP16 的吞吐量增加較小,因為 RDNA 2 能夠使用打包的 FP16 執(zhí)行,以及 v_pk_add_f16 等指令。這些指令將每個 32 位寄存器解釋為兩個 16 位元素,從而使吞吐量翻倍。RDNA 3 做同樣的事情,但不能雙重發(fā)出這樣的打包指令。奇怪的是,RDNA 3 實際上在 FP64 吞吐量上倒退了。我們之前已經(jīng)在 OpenCL 中看到了這一點,其中一個 RDNA 2 WGP 每個周期可以執(zhí)行八個 FP64 操作。RDNA 3 將吞吐量減半,這意味著 WGP 可以執(zhí)行四次 FP64 操作——可能每個周期每個 SIMD 一個。
兩個 GPU 上特殊操作的吞吐量都較低。倒數(shù)通常用作避免昂貴的除法運算的一種方式,并且在兩種體系結(jié)構(gòu)上都以四分之一的速率運行。除法甚至更慢,對整數(shù)運算進行模塊化運算與進行 FP64 一樣慢。
現(xiàn)在,讓我們談?wù)?AMD 聲稱的 123TFLOP FP16 數(shù)字。雖然這在技術(shù)上是正確的,但這個數(shù)字有很大的局限性。查看 RDNA3 ISA 文檔,只有一個 VOPD 指令可以同時發(fā)出打包的 FP16 指令和另一個可以使用打包的 BF16 數(shù)字的指令。
這些是可以使用壓縮數(shù)學(xué)的 2 條 VOPD 指令。
這意味著標(biāo)題 123TF FP16 數(shù)字只會在非常有限的場景中看到,主要是在 AI 和 ML 工作負(fù)載中,盡管游戲已經(jīng)開始更頻繁地使用 FP16。
PCIe鏈路
Radeon 7900 XTX 通過 PCIe 4.0 x16 鏈接連接到主機。與 RDNA 2 一樣,AMD 的新圖形架構(gòu)在將數(shù)據(jù)移動到 GPU 時表現(xiàn)非常出色,尤其是在中等大小的塊中。從 GPU 獲取數(shù)據(jù)時傳輸速率較低。
使用 Smcelrea 的 6700 XT 結(jié)果是因為我的 6900 XT 沒有設(shè)置可調(diào)整大小的 BAR,這似乎會影響 OpenCL 帶寬結(jié)果。
Nvidia 處于中間位置,在所有副本大小和方向上都具有不錯的傳輸速度。在大拷貝尺寸下,Nvidia 似乎比 AMD 在 PCIe 傳輸帶寬方面具有優(yōu)勢。
內(nèi)核啟動延遲
在這里,我們使用clpeak來估計 GPU 啟動內(nèi)核并報告其完成所需的時間。Clpeak 通過向 GPU 提交極少量的工作并測試完成所需的時間來做到這一點。
Terascale 2 在這里做什么?5850怎么還活著?不要質(zhì)疑它......
結(jié)果似乎相差很大,我們無法將平臺與我們的測試模型相匹配。然而,我們可以看出 RDNA 3 沒有任何異常。Nvidia 的 GPU 內(nèi)核啟動速度可能稍快一些,但由于我們無法匹配平臺,因此很難得出任何結(jié)論。
最后的話
AMD 的 RDNA 2 架構(gòu)使該公司的 GPU 與 Nvidia 的最佳性能相差無幾,這標(biāo)志著 AMD 與 Nvidia 最高端卡的距離達到了另一個例子。
RDNA 3 希望通過擴大 RDNA 2 來推進這一點,同時引入旨在提高性能的架構(gòu)改進,而不僅僅是添加 WGP。AMD 采用多管齊下的策略來實現(xiàn)這一目標(biāo)。
在物理實現(xiàn)方面,AMD 轉(zhuǎn)向了臺積電更先進的 5 納米工藝節(jié)點。5 nm 允許更高的晶體管密度,并在沒有膨脹區(qū)域的情況下改進 WGP。因此,WGP 獲得了增加的寄存器文件大小和雙重發(fā)布能力。Chiplet 技術(shù)通過將 Infinity Cache 和內(nèi)存控制器移動到單獨的芯片上,可以實現(xiàn)更小的 5 納米主芯片。這有助于通過在圖形芯片上使用更少的區(qū)域來實現(xiàn) VRAM 連接,從而實現(xiàn)更高帶寬的 VRAM 設(shè)置。
更高的帶寬是支持更大 GPU 的關(guān)鍵,而 AMD 超越了 VRAM 帶寬。緩存帶寬在每個級別都會增加。AMD 還增加了片上緩存的容量,因為即使在片之間有中介層,片外訪問也更耗電。即使采用小芯片設(shè)置,AMD 也需要最大限度地提高面積效率,dual issue 就是一個很好的例子。VOPD 指令允許 AMD 為最常見的操作添加額外的執(zhí)行單元,但在其他地方的額外開銷很少。AMD 還增加了矢量寄存器文件容量,這應(yīng)該有助于提高占用率。而且,它們極大地減少了 LDS 延遲。光線追蹤似乎是這一變化的明顯受益者。
結(jié)果是 GPU 的性能非常接近 Nvidia 的 RTX 4080。根據(jù)Hardware?Unboxed,7900 XTX 在 1440p 時慢 1%,在 4K 時快 1%。AMD 沒有使用非常大的 WGP/SM 數(shù)量,而是通過提高每個 WGP 的吞吐量來實現(xiàn)其性能。他們還專注于為 WGP 提供更復(fù)雜的內(nèi)存層次結(jié)構(gòu)。與上一代相比,最后一級緩存的總?cè)萘坑兴陆?,因?384 位內(nèi)存總線意味著 RDNA 3 不需要那么高的緩存命中率來避免帶寬瓶頸。
?
AMD 和 Nvidia 因此做出不同的權(quán)衡以達到相同的性能水平。通過將緩存和內(nèi)存控制器放在單獨的 6 納米芯片上,小芯片設(shè)置幫助 AMD 在領(lǐng)先的工藝節(jié)點中使用比 Nvidia 更少的芯片面積。作為交換,AMD 必須支付更昂貴的封裝解決方案費用,因為簡單的封裝走線在處理 GPU 的高帶寬要求方面表現(xiàn)不佳。
Nvidia 將所有東西都放在一個更大的芯片上,采用尖端的 4 納米節(jié)點。這使得 4080 的 VRAM 帶寬和緩存比 7900 XTX 更少。它們的晶體管密度在技術(shù)上低于 AMD,但這是因為 Nvidia 更高的 SM 數(shù)量意味著與寄存器文件和 FMA 單元相比它們具有更多的控制邏輯。每個 SM 更少的執(zhí)行單元意味著 Ada Lovelace 將更容易讓這些執(zhí)行單元得到滿足。
Nvidia 還具有更簡單的緩存層次結(jié)構(gòu)的優(yōu)勢,它仍然提供相當(dāng)大的緩存容量。
無論如何,很高興看到 AMD 和 Nvidia 在 Nvidia 多年無可置疑的領(lǐng)先優(yōu)勢之后繼續(xù)正面交鋒。希望這會導(dǎo)致未來 GPU 價格下降,以及雙方更多的創(chuàng)新。
編輯:黃飛
?
評論