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

革命性神經形態微控制器 ?**Pulsar**? 的深度技術解讀

瑞薩365 深度解讀

GPU架構深度解析

ARM Mali GPU 深度解讀
Arm 公司面向 PC 市場的 ?Arm Niva? 深度解讀
Arm 公司面向移動端市場的 ?Arm Lumex? 深度解讀
Arm 公司面向汽車市場的 ?Arm Zena? 深度解讀
NVIDIA Blackwell數據手冊與NVIDIA Blackwell架構技術解析
NVIDIA RTX 5880 Ada顯卡部署DeepSeek-R1模型實測報告

評論