Nvidia 的 RTX 4090 采用 Nvidia 的最新架構(gòu),以早期計(jì)算先驅(qū)Ada Lovelace的名字命名。與之前的架構(gòu) Ampere 相比,Ada Lovelace 享有制程節(jié)點(diǎn)優(yōu)勢(shì),使用臺(tái)積電為 GPU 定制的 4 納米制程。Nvidia 還強(qiáng)調(diào)了光線追蹤性能,以及旨在彌補(bǔ)啟用光線追蹤對(duì)性能造成的巨大影響的技術(shù)。但光線追蹤性能并不是唯一重要的事情,因?yàn)橛泻芏嘤螒蚋静恢С止饩€追蹤。此外,大多數(shù)使用光線追蹤的游戲僅使用它來渲染某些效果;傳統(tǒng)的光柵化仍然負(fù)責(zé)渲染大部分場景。
我還覺得對(duì)光線追蹤的關(guān)注掩蓋了 Nvidia 工程師為提高其他領(lǐng)域的性能所做的工作。在本文中,我們將使用一組正在進(jìn)行的微基準(zhǔn)測試來研究 Nvidia 的 Ada Lovelace 架構(gòu)。我們將關(guān)注影響各種工作負(fù)載性能的領(lǐng)域,無論是否有光線追蹤,特別強(qiáng)調(diào)緩存和內(nèi)存子系統(tǒng)。
特別感謝Skyjuice在 RTX 4090 上運(yùn)行測試。
GPU 概覽
SM 或流式多處理器構(gòu)成了 Nvidia GPU 的基本構(gòu)建塊。它們與 AMD 的 RDNA 和 RDNA 2 架構(gòu)上的 WGP 或工作組處理器大致相當(dāng)。SM 和 WGP 都具有 128 個(gè) FP32 通道(或著色器,如果您愿意的話),并進(jìn)一步分為四個(gè)塊,每個(gè)塊有 32 個(gè)通道。Ampere 最大的客戶端芯片 GA102 已經(jīng)非常龐大。
GA102 框圖,來自 Nvidia 的白皮書 Ada Lovelace 表面上與 Ampere 相似,每個(gè) SM 具有相似的計(jì)算特性。然而,它已經(jīng)通過roof擴(kuò)大了規(guī)模。AD102 有 144 個(gè) SM,而 GA102 有 84 個(gè),代表 SM 數(shù)量增加了 71%。RTX 4090 僅啟用了 128 個(gè) SM,但這仍然代表了 52% 的增長。將其與較大的時(shí)鐘速度提升相結(jié)合,我們正在研究計(jì)算能力的巨大飛躍。
AD102 框圖,來自 Nvidia 的白皮書 但擴(kuò)大 GPU 的規(guī)模不僅僅是復(fù)制和粘貼工作。GPU 往往需要來自內(nèi)存子系統(tǒng)的大量帶寬,所有這些額外的 SM 都必須以某種方式提供。讓我們轉(zhuǎn)向我們正在進(jìn)行的微基準(zhǔn)測試,看看 Ada Lovelace 的內(nèi)存層次結(jié)構(gòu)。
緩存和內(nèi)存延遲
我們正在啟動(dòng)緩存和內(nèi)存延遲基準(zhǔn)測試,因?yàn)檫@將使我們對(duì)緩存設(shè)置有一個(gè)很好的了解。 與 Ampere 一樣,Ada Lovelace 堅(jiān)持使用經(jīng)過驗(yàn)證的真正的兩級(jí)緩存方案。Nvidia 最近的兩種架構(gòu)都為每個(gè) SM 提供了一個(gè)大型 L1 緩存,但 Ada Lovelace 大大擴(kuò)展了 L2 緩存。Ampere 具有傳統(tǒng)大小的 6 MB L2,但 AD102 包含 96 MB L2。RTX 4090 啟用了 72 MB 的二級(jí)緩存。從 Ampere 到 Ada Lovelace,Nvidia 沒有享受到顯著的 VRAM 帶寬增加,因此 Ada 的 L2 獲得了巨大的容量提升,以防止隨著計(jì)算容量的擴(kuò)大而出現(xiàn)內(nèi)存帶寬瓶頸。 AMD 的 RDNA 2 架構(gòu)選擇了復(fù)雜的四級(jí)緩存系統(tǒng),具有三級(jí)共享緩存。每個(gè)著色器陣列中有一個(gè) 128 KB 的 L1 來吸收來自相對(duì)較小 (16KB) 的 L0 緩存的緩存未命中流量。L2 的作用可與 Ampere 的 L2 相媲美,而大型 Infinity Cache 可幫助 AMD 通過更便宜(且功耗更低)的 VRAM 子系統(tǒng)實(shí)現(xiàn)高性能。
有趣的是,英特爾的 A770 的 L2 延遲與 RTX 4090 相似 Ada Lovelace 的緩存子系統(tǒng)具有令人印象深刻的延遲特性。第一級(jí) SM 私有緩存看起來與 Ampere 的相似,但 Ada Lovelace 的更高時(shí)鐘速度使其具有整體延遲優(yōu)勢(shì)。但 L2 是樂趣的開始。盡管容量比 Ampere 的 L2 增加了 12 倍,但 Nvidia 還是設(shè)法將延遲降低了大約 30 ns。Ampere 的 L2 在延遲方面接近 AMD 的 Infinity Cache,但 Ada Lovelace 的 L2 現(xiàn)在在容量和延遲方面位于 RDNA2 的 L2 和 Infinity Cache 之間。 與 Ampere 相比,RDNA 2 的緩存子系統(tǒng)看起來很有競爭力。這兩個(gè)交易在小測試規(guī)模上受到打擊,而 AMD 在 L2 規(guī)模及以上區(qū)域具有明顯優(yōu)勢(shì)。Ada Lovelace 改變了這一點(diǎn),隨著測試規(guī)模從 AMD 的 L2 溢出,Nvidia 現(xiàn)在享有明顯的優(yōu)勢(shì)。Ada Lovelace 的內(nèi)存延遲也有所下降,盡管這在很大程度上可能是由于更好的 L2 性能,因?yàn)楸仨氃谕ㄍ鶅?nèi)存的路上檢查 L2。 隨著 Ada Lovelace 改進(jìn) L2,AMD 發(fā)現(xiàn)自己處于一個(gè)不舒服的位置,Nvidia 使用單級(jí)緩存來填補(bǔ) AMD 的 L2 和 Infinity Cache 的角色。更少的緩存級(jí)別意味著更低的復(fù)雜性,以及更少的潛在標(biāo)簽和每次內(nèi)存訪問的狀態(tài)檢查。當(dāng)然,更多的緩存級(jí)別意味著在容量、延遲和帶寬權(quán)衡方面具有更大的靈活性。RDNA 2 與 Ampere 相比無疑證明了這一點(diǎn),它具有更快的 L2 緩存和更大的 Infinity Cache,幾乎與 Ampere 的 L2 一樣快。但艾達(dá)洛夫萊斯是一個(gè)不同的故事。
帶寬
延遲是影響 GPU 性能的一個(gè)因素,但帶寬也是一個(gè)因素,而且 GPU 往往比 CPU 更需要帶寬。首先,我們將使用單個(gè) OpenCL 工作組測試帶寬。屬于同一工作組的線程能夠共享本地內(nèi)存,這意味著它們將被限制在單個(gè) WGP 或 SM 上運(yùn)行。這是我們可以得到的最接近 GPU 單核帶寬測試的結(jié)果。
一旦我們進(jìn)入 L2 及更高級(jí)別,RDNA 2 WGP 就比 Ampere SM 享有良好的帶寬優(yōu)勢(shì)。Ada Lovelace 并沒有改變這一點(diǎn),但 L2 帶寬確實(shí)比 Ampere 有所提高。再次,我們看到 Nvidia 的工程師在 L2 上做得非常出色。在 AMD 方面,我們開始看到 RDNA 2 非常擅長處理低占用工作負(fù)載的跡象。讓我們?cè)黾庸ぷ鹘M數(shù)量來測試擴(kuò)展,看看這種優(yōu)勢(shì)能持續(xù)多久。
帶寬擴(kuò)展
共享緩存設(shè)計(jì)很難,尤其是在 GPU 中,因?yàn)榫彺姹仨氝B接到大量客戶端并滿足它們的帶寬需求。在這里,我們正在使用越來越多的工作組來測試帶寬。和以前一樣,每個(gè)工作組都必須使用單個(gè) WGP 或 SM,因此我們看到共享緩存可以應(yīng)對(duì)更多 WGP 和 SM 發(fā)揮作用并開始要求帶寬的能力。 Ada Lovelace 是對(duì) Ampere 的明顯改進(jìn),并且在匹配的工作組數(shù)量下實(shí)現(xiàn)了更高的帶寬。使用 RTX 4090 的所有 SM 時(shí),我們看到了驚人的 5 TB/s 帶寬——幾乎是使用 RTX 3090 的 84 個(gè) SM 時(shí)看到的兩倍。Nvidia 成功地?cái)U(kuò)大了 L2 容量,同時(shí)也擴(kuò)大了帶寬以支持大量 SM,這是一項(xiàng)了不起的成就。Ada Lovelace 在低入住率的情況下超越 Ampere 的能力是錦上添花。
AMD 在小型工作負(fù)載方面仍然具有優(yōu)勢(shì)。RDNA 2 的 L2 在擴(kuò)展方面尤其令人印象深刻,可以處理 40 個(gè) WGP,要求最大帶寬,而不會(huì)出現(xiàn)爭用問題。大型 Infinity Cache 也表現(xiàn)不錯(cuò),在low occupancy.的情況下?lián)魯×?Ampere 和 Ada Lovelace。但與我們?cè)谟⑻貭柕?Arc A770 上看到的不同,英偉達(dá)也不甘落后。 更重要的是,Ada Lovelace 在低占用率下的性能提升意味著 RDNA 2 失去優(yōu)勢(shì)的速度比對(duì)抗 Ampere 的速度更快。由于有超過 24 個(gè)工作組在運(yùn)行,Ada Lovelace 的 SM 可以從 L2 提取比 RDNA 2 的 WGP 從 Infinity Cache 獲得的更多帶寬。RDNA 2 的 L2 帶寬優(yōu)勢(shì)一直持續(xù)到 Nvidia 擁有超過 50 個(gè) SM。但是 RDNA 2 和 Ada Lovelace 之間的 L2 比較就不那么簡單了,因?yàn)?L2 容量不再像 RDNA 2 和 Ampere 那樣處于同一個(gè)范圍內(nèi)。在高入住率下,Ampere 比 RDNA 2 具有相當(dāng)大的優(yōu)勢(shì),但 Ada Lovelace 更進(jìn)一步。RDNA 2 的 L2 和 Infinity Cache 與 Lovelace 的 L2 相比都處于明顯劣勢(shì)。 接下來,讓我們看看當(dāng)測試大小大到足以溢出緩存時(shí)會(huì)發(fā)生什么。
我們測量的 RTX 4090 在高占用率下的理論帶寬高于理論帶寬,這可能是因?yàn)橐恍┲貜?fù)讀取被合并并廣播到多個(gè) SM。我有沒有提到 GPU 測試很難? Ada Lovelace 的擴(kuò)展速度不如 Ampere,但這種優(yōu)勢(shì)并不是特別重要,因?yàn)?Ada Lovelace 應(yīng)該為 L2 之外的更多內(nèi)存訪問提供服務(wù)。VRAM 帶寬也沒有比 Ampere 顯著增加,但兩張 Nvidia 卡的絕對(duì)帶寬仍然很大。從角度來看,它們的理論顯存帶寬幾乎與 AMD 的 Radeon VII 一樣多,后者具有基于 HBM2 的顯存子系統(tǒng)。 AMD 的 RDNA 2 在低占用率下再次享有帶寬優(yōu)勢(shì),但 Nvidia 最近的架構(gòu)為大型工作負(fù)載提供了更多的 VRAM 帶寬。AMD 也更依賴于他們的 Infinity Cache,因?yàn)樗麄兊?VRAM 帶寬在加載十幾個(gè) WGP 后停止擴(kuò)展。 最后,讓我們測試 512 個(gè)工作組在高占用率下的帶寬。這應(yīng)該讓每個(gè) SM 或 WGP 有多個(gè)工作組可供使用,每個(gè)工作組中都有大量的并行性。
使用Nemes的基于 Vulkan 的帶寬測試獲得的 RTX 3090 結(jié)果。與此處的 OpenCL 結(jié)果不直接可比較,但無論如何都提供了上下文 由于 RTX 4090 的高時(shí)鐘速度和瘋狂的 SM 數(shù)量,Ada Lovelace 的 L1 帶寬突破了roof并破壞了該圖表上的比例。L2 緩存帶寬也不是開玩笑的,它比 Ampere 的帶寬有了很大的改進(jìn)。即使 RDNA 2 可以為 L2 或 Infinity Cache 的內(nèi)存訪問提供服務(wù),RDNA 2 也難以與之競爭。AMD 確實(shí)為他們完成了工作。
本地內(nèi)存延遲
在 GPU 上,本地內(nèi)存是一小塊暫存器內(nèi)存,由工作組中的所有線程共享,并且在工作組之外無法訪問。軟件必須明確地將數(shù)據(jù)加載到本地內(nèi)存中,一旦工作組完成執(zhí)行,本地內(nèi)存內(nèi)容就會(huì)消失。這使得本地內(nèi)存更難使用,但作為交換,本地內(nèi)存通常比普通的全局內(nèi)存子系統(tǒng)提供更快和更一致的性能。本地內(nèi)存的一種用途是在光線追蹤時(shí)存儲(chǔ) BVH 遍歷堆棧。 Nvidia 將本地內(nèi)存稱為“共享內(nèi)存”,而 AMD 將其稱為“本地?cái)?shù)據(jù)共享”或 LDS。
*由于時(shí)鐘斜坡非常緩慢,Nvidia Xavier 的測量可能不準(zhǔn)確 與 Ampere 相比,Ada Lovelace 在本地內(nèi)存延遲方面提供了不錯(cuò)的改進(jìn),從而擴(kuò)大了 Nvidia 在 RDNA 2 上的領(lǐng)先優(yōu)勢(shì)。這里需要注意的是,Nvidia 的兩種架構(gòu)都使用單個(gè) 128 KB 的 SRAM 塊作為 L1 緩存和本地內(nèi)存。該架構(gòu)可以通過改變標(biāo)記 SRAM 的數(shù)量來提供 L1 高速緩存和本地內(nèi)存大小的不同組合。相比之下,AMD 為每個(gè) CU(WGP 的一半)使用 16 KB 的專用 L0 矢量緩存,以及 128 KB 的專用本地內(nèi)存。這意味著 Nvidia 在實(shí)踐中將擁有更少的本地內(nèi)存容量。
計(jì)算
試圖確定每個(gè)周期、每個(gè) WGP 的吞吐量數(shù)據(jù)是一種令人沮喪的練習(xí),因?yàn)楹茈y確定 GPU 運(yùn)行的時(shí)鐘速度。我們還需要調(diào)查 Nvidia 的 Ampere 和 Ada Lovelace 架構(gòu)是否在我們的指令速率測試中做了一些奇怪的事情,這很難,因?yàn)槲乙膊粨碛小? 至少據(jù)我們所知,Ada Lovelace 的表現(xiàn)很像 Ampere。常見 FP32 操作(如加法和融合乘法加法)的延遲保持在 4 個(gè)周期。用于比較的 RDNA 2 對(duì)這些操作有 5 個(gè)周期延遲。 總結(jié)各種操作的吞吐量特征:
RDNA 2 還以雙倍速率執(zhí)行 FP16 操作。根據(jù) Ada 白皮書,Ampere 和 Ada Lovelace 可以以 1:1 的速率執(zhí)行 FP16,但我們無法驗(yàn)證這一點(diǎn),因?yàn)?Nvidia 卡都不支持 OpenCL 的 FP16 擴(kuò)展。
Atomics延遲
與 CPU 非常相似,現(xiàn)代 GPU 支持原子操作以允許線程之間的同步。OpenCL 通過 atomic_cmpxchg 內(nèi)在函數(shù)公開這些原子操作。這是我們可以在 GPU 上進(jìn)行的最接近內(nèi)核到內(nèi)核延遲測試的方法。跟游戲有關(guān)系嗎?可能不會(huì),因?yàn)槲覐奈匆娺^在游戲著色器代碼中使用這些指令。但是測試有趣嗎?是的。 與 CPU 不同,GPU 具有不同的atomic指令來處理本地和全局內(nèi)存。本地內(nèi)存(共享內(nèi)存或 LDS)上的原子應(yīng)該完全包含在 SM 或 WGP 中,因此應(yīng)該比全局內(nèi)存上的原子快得多。如果我們想稍微擴(kuò)展一下,本地內(nèi)存上的原子延遲大致相當(dāng)于測量 CPU 內(nèi)核上兄弟 SMT 線程之間的內(nèi)核到內(nèi)核延遲。
Ada Lovelace 在這里提供了對(duì) Ampere 的增量改進(jìn),這在很大程度上可能是由于更高的時(shí)鐘速度。AMD 的 RDNA 2 在這項(xiàng)測試中表現(xiàn)非常出色。從絕對(duì)意義上說,有趣的是 GPU 上的“核心到核心”延遲如何與 Ryzen CPU 上的跨 CCX 訪問相媲美。
最后的話
審核編輯 :李倩
-
處理器
+關(guān)注
關(guān)注
68文章
19259瀏覽量
229649 -
gpu
+關(guān)注
關(guān)注
28文章
4729瀏覽量
128890 -
英偉達(dá)
+關(guān)注
關(guān)注
22文章
3770瀏覽量
90982
原文標(biāo)題:英偉達(dá)最新GPU架構(gòu),深度解讀!
文章出處:【微信號(hào):芯長征科技,微信公眾號(hào):芯長征科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論