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)了光線(xiàn)追蹤性能,以及旨在彌補(bǔ)啟用光線(xiàn)追蹤對(duì)性能造成的巨大影響的技術(shù),。但光線(xiàn)追蹤性能并不是唯一重要的事情,,因?yàn)橛泻芏嘤螒蚋静恢С止饩€(xiàn)追蹤。此外,,大多數(shù)使用光線(xiàn)追蹤的游戲僅使用它來(lái)渲染某些效果,;傳統(tǒng)的光柵化仍然負(fù)責(zé)渲染大部分場(chǎng)景。
我還覺(jué)得對(duì)光線(xiàn)追蹤的關(guān)注掩蓋了 Nvidia 工程師為提高其他領(lǐng)域的性能所做的工作,。在本文中,,我們將使用一組正在進(jìn)行的微基準(zhǔn)測(cè)試來(lái)研究 Nvidia 的 Ada Lovelace 架構(gòu)。我們將關(guān)注影響各種工作負(fù)載性能的領(lǐng)域,,無(wú)論是否有光線(xiàn)追蹤,,特別強(qiáng)調(diào)緩存和內(nèi)存子系統(tǒng)。
特別感謝Skyjuice在 RTX 4090 上運(yùn)行測(cè)試,。
GPU 概覽
SM 或流式多處理器構(gòu)成了 Nvidia GPU 的基本構(gòu)建塊,。它們與 AMD 的 RDNA 和 RDNA 2 架構(gòu)上的 WGP 或工作組處理器大致相當(dāng)。SM 和 WGP 都具有 128 個(gè) FP32 通道(或著色器,,如果您愿意的話(huà)),并進(jìn)一步分為四個(gè)塊,,每個(gè)塊有 32 個(gè)通道,。Ampere 最大的客戶(hù)端芯片 GA102 已經(jīng)非常龐大。
Ada Lovelace 表面上與 Ampere 相似,,每個(gè) SM 具有相似的計(jì)算特性,。然而,它已經(jīng)通過(guò)roof擴(kuò)大了規(guī)模,。AD102 有 144 個(gè) SM,,而 GA102 有 84 個(gè),代表 SM 數(shù)量增加了 71%,。RTX 4090 僅啟用了 128 個(gè) SM,,但這仍然代表了 52% 的增長(zhǎng)。將其與較大的時(shí)鐘速度提升相結(jié)合,,我們正在研究計(jì)算能力的巨大飛躍,。
但擴(kuò)大 GPU 的規(guī)模不僅僅是復(fù)制和粘貼工作,。GPU 往往需要來(lái)自?xún)?nèi)存子系統(tǒng)的大量帶寬,所有這些額外的 SM 都必須以某種方式提供,。讓我們轉(zhuǎn)向我們正在進(jìn)行的微基準(zhǔn)測(cè)試,,看看 Ada Lovelace 的內(nèi)存層次結(jié)構(gòu)。
緩存和內(nèi)存延遲
我們正在啟動(dòng)緩存和內(nèi)存延遲基準(zhǔn)測(cè)試,,因?yàn)檫@將使我們對(duì)緩存設(shè)置有一個(gè)很好的了解,。
與 Ampere 一樣,Ada Lovelace 堅(jiān)持使用經(jīng)過(guò)驗(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 沒(méi)有享受到顯著的 VRAM 帶寬增加,,因此 Ada 的 L2 獲得了巨大的容量提升,以防止隨著計(jì)算容量的擴(kuò)大而出現(xiàn)內(nèi)存帶寬瓶頸,。
AMD 的 RDNA 2 架構(gòu)選擇了復(fù)雜的四級(jí)緩存系統(tǒng),,具有三級(jí)共享緩存。每個(gè)著色器陣列中有一個(gè) 128 KB 的 L1 來(lái)吸收來(lái)自相對(duì)較小 (16KB) 的 L0 緩存的緩存未命中流量,。L2 的作用可與 Ampere 的 L2 相媲美,,而大型 Infinity Cache 可幫助 AMD 通過(guò)更便宜(且功耗更低)的 VRAM 子系統(tǒng)實(shí)現(xiàn)高性能。
Ada Lovelace 的緩存子系統(tǒng)具有令人印象深刻的延遲特性,。第一級(jí) SM 私有緩存看起來(lái)與 Ampere 的相似,,但 Ada Lovelace 的更高時(shí)鐘速度使其具有整體延遲優(yōu)勢(shì)。但 L2 是樂(lè)趣的開(kāi)始,。盡管容量比 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)看起來(lái)很有競(jìng)爭(zhēng)力,。這兩個(gè)交易在小測(cè)試規(guī)模上受到打擊,,而 AMD 在 L2 規(guī)模及以上區(qū)域具有明顯優(yōu)勢(shì)。Ada Lovelace 改變了這一點(diǎn),,隨著測(cè)試規(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í)緩存來(lái)填補(bǔ) AMD 的 L2 和 Infinity Cache 的角色,。更少的緩存級(jí)別意味著更低的復(fù)雜性,以及更少的潛在標(biāo)簽和每次內(nèi)存訪(fǎng)問(wèn)的狀態(tài)檢查,。當(dāng)然,,更多的緩存級(jí)別意味著在容量、延遲和帶寬權(quán)衡方面具有更大的靈活性,。RDNA 2 與 Ampere 相比無(wú)疑證明了這一點(diǎn),,它具有更快的 L2 緩存和更大的 Infinity Cache,幾乎與 Ampere 的 L2 一樣快,。但艾達(dá)洛夫萊斯是一個(gè)不同的故事,。
帶寬
延遲是影響 GPU 性能的一個(gè)因素,但帶寬也是一個(gè)因素,,而且 GPU 往往比 CPU 更需要帶寬,。首先,我們將使用單個(gè) OpenCL 工作組測(cè)試帶寬,。屬于同一工作組的線(xiàn)程能夠共享本地內(nèi)存,,這意味著它們將被限制在單個(gè) WGP 或 SM 上運(yùn)行。這是我們可以得到的最接近 GPU 單核帶寬測(cè)試的結(jié)果,。
一旦我們進(jìn)入 L2 及更高級(jí)別,,RDNA 2 WGP 就比 Ampere SM 享有良好的帶寬優(yōu)勢(shì)。Ada Lovelace 并沒(méi)有改變這一點(diǎn),,但 L2 帶寬確實(shí)比 Ampere 有所提高,。再次,我們看到 Nvidia 的工程師在 L2 上做得非常出色,。在 AMD 方面,,我們開(kāi)始看到 RDNA 2 非常擅長(zhǎng)處理低占用工作負(fù)載的跡象。讓我們?cè)黾庸ぷ鹘M數(shù)量來(lái)測(cè)試擴(kuò)展,,看看這種優(yōu)勢(shì)能持續(xù)多久。
帶寬擴(kuò)展
共享緩存設(shè)計(jì)很難,,尤其是在 GPU 中,,因?yàn)榫彺姹仨氝B接到大量客戶(hù)端并滿(mǎn)足它們的帶寬需求。在這里,,我們正在使用越來(lái)越多的工作組來(lái)測(cè)試帶寬,。和以前一樣,每個(gè)工作組都必須使用單個(gè) WGP 或 SM,因此我們看到共享緩存可以應(yīng)對(duì)更多 WGP 和 SM 發(fā)揮作用并開(kāi)始要求帶寬的能力,。
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)爭(zhēng)用問(wè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 的速度更快,。由于有超過(guò) 24 個(gè)工作組在運(yùn)行,Ada Lovelace 的 SM 可以從 L2 提取比 RDNA 2 的 WGP 從 Infinity Cache 獲得的更多帶寬,。RDNA 2 的 L2 帶寬優(yōu)勢(shì)一直持續(xù)到 Nvidia 擁有超過(guò) 50 個(gè) SM,。但是 RDNA 2 和 Ada Lovelace 之間的 L2 比較就不那么簡(jiǎn)單了,因?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ì),。
接下來(lái),讓我們看看當(dāng)測(cè)試大小大到足以溢出緩存時(shí)會(huì)發(fā)生什么,。
我們測(cè)量的 RTX 4090 在高占用率下的理論帶寬高于理論帶寬,,這可能是因?yàn)橐恍┲貜?fù)讀取被合并并廣播到多個(gè) SM。我有沒(méi)有提到 GPU 測(cè)試很難,?
Ada Lovelace 的擴(kuò)展速度不如 Ampere,,但這種優(yōu)勢(shì)并不是特別重要,因?yàn)?Ada Lovelace 應(yīng)該為 L2 之外的更多內(nèi)存訪(fǎng)問(wèn)提供服務(wù),。VRAM 帶寬也沒(méi)有比 Ampere 顯著增加,,但兩張 Nvidia 卡的絕對(duì)帶寬仍然很大。從角度來(lái)看,它們的理論顯存帶寬幾乎與 AMD 的 Radeon VII 一樣多,,后者具有基于 HBM2 的顯存子系統(tǒng),。
AMD 的 RDNA 2 在低占用率下再次享有帶寬優(yōu)勢(shì),但 Nvidia 最近的架構(gòu)為大型工作負(fù)載提供了更多的 VRAM 帶寬,。AMD 也更依賴(lài)于他們的 Infinity Cache,,因?yàn)樗麄兊?VRAM 帶寬在加載十幾個(gè) WGP 后停止擴(kuò)展。
最后,,讓我們測(cè)試 512 個(gè)工作組在高占用率下的帶寬,。這應(yīng)該讓每個(gè) SM 或 WGP 有多個(gè)工作組可供使用,每個(gè)工作組中都有大量的并行性,。
使用Nemes的基于 Vulkan 的帶寬測(cè)試獲得的 RTX 3090 結(jié)果,。與此處的 OpenCL 結(jié)果不直接可比較,但無(wú)論如何都提供了上下文
由于 RTX 4090 的高時(shí)鐘速度和瘋狂的 SM 數(shù)量,,Ada Lovelace 的 L1 帶寬突破了roof并破壞了該圖表上的比例,。L2 緩存帶寬也不是開(kāi)玩笑的,它比 Ampere 的帶寬有了很大的改進(jìn),。即使 RDNA 2 可以為 L2 或 Infinity Cache 的內(nèi)存訪(fǎng)問(wèn)提供服務(wù),,RDNA 2 也難以與之競(jìng)爭(zhēng)。AMD 確實(shí)為他們完成了工作,。
本地內(nèi)存延遲
在 GPU 上,,本地內(nèi)存是一小塊暫存器內(nèi)存,由工作組中的所有線(xiàn)程共享,,并且在工作組之外無(wú)法訪(fǎng)問(wèn),。軟件必須明確地將數(shù)據(jù)加載到本地內(nèi)存中,一旦工作組完成執(zhí)行,,本地內(nèi)存內(nèi)容就會(huì)消失,。這使得本地內(nèi)存更難使用,但作為交換,,本地內(nèi)存通常比普通的全局內(nèi)存子系統(tǒng)提供更快和更一致的性能,。本地內(nèi)存的一種用途是在光線(xiàn)追蹤時(shí)存儲(chǔ) BVH 遍歷堆棧。
Nvidia 將本地內(nèi)存稱(chēng)為“共享內(nèi)存”,,而 AMD 將其稱(chēng)為“本地?cái)?shù)據(jù)共享”或 LDS,。
與 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)可以通過(guò)改變標(biāo)記 SRAM 的數(shù)量來(lái)提供 L1 高速緩存和本地內(nèi)存大小的不同組合。相比之下,AMD 為每個(gè) CU(WGP 的一半)使用 16 KB 的專(zhuān)用 L0 矢量緩存,,以及 128 KB 的專(zhuān)用本地內(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)是否在我們的指令速率測(cè)試中做了一些奇怪的事情,,這很難,,因?yàn)槲乙膊粨碛小?/p>
至少據(jù)我們所知,Ada Lovelace 的表現(xiàn)很像 Ampere,。常見(jiàn) FP32 操作(如加法和融合乘法加法)的延遲保持在 4 個(gè)周期,。用于比較的 RDNA 2 對(duì)這些操作有 5 個(gè)周期延遲。
總結(jié)各種操作的吞吐量特征:
RDNA 2 還以雙倍速率執(zhí)行 FP16 操作,。根據(jù) Ada 白皮書(shū),,Ampere 和 Ada Lovelace 可以以 1:1 的速率執(zhí)行 FP16,但我們無(wú)法驗(yàn)證這一點(diǎn),,因?yàn)?Nvidia 卡都不支持 OpenCL 的 FP16 擴(kuò)展,。
Atomics延遲
與 CPU 非常相似,現(xiàn)代 GPU 支持原子操作以允許線(xiàn)程之間的同步,。OpenCL 通過(guò) atomic_cmpxchg 內(nèi)在函數(shù)公開(kāi)這些原子操作,。這是我們可以在 GPU 上進(jìn)行的最接近內(nèi)核到內(nèi)核延遲測(cè)試的方法。跟游戲有關(guān)系嗎,?可能不會(huì),,因?yàn)槲覐奈匆?jiàn)過(guò)在游戲著色器代碼中使用這些指令。但是測(cè)試有趣嗎,?是的,。
與 CPU 不同,GPU 具有不同的atomic指令來(lái)處理本地和全局內(nèi)存,。本地內(nèi)存(共享內(nèi)存或 LDS)上的原子應(yīng)該完全包含在 SM 或 WGP 中,,因此應(yīng)該比全局內(nèi)存上的原子快得多。如果我們想稍微擴(kuò)展一下,,本地內(nèi)存上的原子延遲大致相當(dāng)于測(cè)量 CPU 內(nèi)核上兄弟 SMT 線(xiàn)程之間的內(nèi)核到內(nèi)核延遲,。
Ada Lovelace 在這里提供了對(duì) Ampere 的增量改進(jìn),這在很大程度上可能是由于更高的時(shí)鐘速度,。AMD 的 RDNA 2 在這項(xiàng)測(cè)試中表現(xiàn)非常出色,。從絕對(duì)意義上說(shuō),有趣的是 GPU 上的“核心到核心”延遲如何與 Ryzen CPU 上的跨 CCX 訪(fǎng)問(wèn)相媲美,。
最后的話(huà)
Nvidia 的新 Ada Lovelace 架構(gòu)因其提高的光線(xiàn)追蹤性能和快速幻化中間幀的能力而備受關(guān)注,。這是可以理解的,,因?yàn)?Nvidia 在他們的主題演講中大部分時(shí)間都在談?wù)撨@些功能。這反過(guò)來(lái)也是可以理解的,,因?yàn)榉駝t Nvidia 的基本計(jì)算架構(gòu)不會(huì)有太多變化,。
但 Ada Lovelace 改進(jìn)的緩存架構(gòu)值得關(guān)注。AD102 的 L2 緩存實(shí)現(xiàn)比 GA102 顯著改進(jìn),。顯然,,它通過(guò)增加 L2 緩存容量來(lái)解決內(nèi)存帶寬問(wèn)題,幾乎達(dá)到 AMD Infinity Cache 的水平,。令人驚奇的是,,與 GA102 相比,Nvidia 做到了這一點(diǎn),,同時(shí)還提高了 L2 緩存性能,。AD102 的 L2 具有更多帶寬,使其能夠提供額外的計(jì)算容量,。它減少了延遲,,從而更容易利用可用帶寬。更好的 L2 延遲也間接降低了 VRAM 延遲,,因?yàn)楹艽笠徊糠?VRAM 訪(fǎng)問(wèn)延遲只是在 GPU 芯片上移動(dòng)數(shù)據(jù),。Ada Lovelace 做得更快。當(dāng)然,,AD102 訪(fǎng)問(wèn) VRAM 的頻率應(yīng)該低于 GA102,。
除了全局內(nèi)存子系統(tǒng)更改之外,Ada Lovelace 還改善了本地內(nèi)存延遲,。與安培相比,,低占用率的計(jì)算吞吐量也向前邁進(jìn)了一步,這要?dú)w功于更高的時(shí)鐘速度,。時(shí)鐘速度的提高可能很無(wú)聊,,但更高的時(shí)鐘速度是擴(kuò)展性能的一種非常好的方法,這意味著您在 Ampere 上可以做的幾乎所有事情都可以在 Ada Lovelace 上更快地完成,。
所有的變化結(jié)合在一起,,使 Ada Lovelace 成為一個(gè)強(qiáng)大的架構(gòu),即使我們把標(biāo)題抓取光線(xiàn)追蹤相關(guān)的功能放在一邊,。Nvidia 的新架構(gòu)提高了低占用率的性能,,削弱了 RDNA 2 相對(duì)于 GA102 的主要優(yōu)勢(shì)之一。在高入住率下,,安培已經(jīng)非常強(qiáng)大,。Ada Lovelace 擴(kuò)展了這一優(yōu)勢(shì),并超越了 RDNA 2,。如果 AMD 想要 RDNA 3 具有競(jìng)爭(zhēng)力,,即使在純光柵化工作負(fù)載中,,他們也會(huì)為他們完成工作。我們期待看到 AMD 的下一個(gè)架構(gòu)會(huì)帶來(lái)什么,。
更多信息可以來(lái)這里獲取==>>電子技術(shù)應(yīng)用-AET<<