深挖英偉達Blackwell架構

下載提醒:伺服器基礎知識全解終極版(第二版)(已領請忽略)請購買過架構師技術全店資料打包彙總(全)46份”的讀者,請在微店留言獲免費取更新。
本次主要更新內容:
  • 1、CPU更新(Intel/AMD架構演進,國產CPU架構
  • 2、GPU更新(英偉達GPU架構,從Fermi到Hopper,Rubin Ultra)
  • 3、記憶體技術、操作系統、儲存技術等更新
  • 4、已知問題修正
  • 5、更新內容40+頁PPT
相關閱讀:
100個DPU關鍵知識點(收藏版)
100個網路技術基礎知識(收藏版)
100個企業儲存基礎知識(收藏版)
100個GPU核心知識概述(收藏版)
Nvidia 長期以來一直致力於打造巨型 GPU。其最新的圖形架構 Blackwell 延續了這一傳統。GB202 是最大的 Blackwell 晶片。它佔據了 750 平方毫米的龐大面積,並擁有 922 億個電晶體。GB202 擁有 192 個流多處理器 (SM),這是 GPU 上與 CPU 核心最接近的等效單元,並透過一個龐大的記憶體子系統為其供電。
Nvidia 的 RTX PRO 6000 Blackwell 擁有迄今為止最大的 GB202 配置。它與 Nvidia 產品線中的 RTX 5090 並列,後者也使用 GB202,但停用了更多 SM。
高階對比展現了 Nvidia 旗下 Blackwell 產品的規模。AMD 的 RDNA4 系列以 RX 9070 和 RX 9070XT 為標杆。RX 9070 的效能略有下降,32 個 WGP 中有 4 個被停用。我將使用 RX 9070 來提供對比資料。
工作分配
GPU 使用專用硬體在其核心之間啟動執行緒,這與依賴作業系統中的軟體排程的 CPU 不同。硬體執行緒啟動非常適合 GPU 工作負載中常見的短小任務。流多處理器 (SM) 是 Nvidia GPU 的基本構建塊,大致類似於 CPU 核心。SM 被分組到圖形處理叢集 (GPC) 中,其中包含光柵化器和相關的工作分配硬體。
GB202 的 SM 與 GPC 比例為 1:16,而 Ada Lovelace 最大的 AD102 晶片的比例為 1:12。這使得 Nvidia 能夠以低成本增加 SM 數量,從而在無需更多 GPC 級硬體的情況下計算吞吐量。然而,短時波次的排程可能難以利用 Blackwell 的規模優勢,因為吞吐量受限於 GPC 向 SM 分配工作的速度,而不是 SM 完成工作的速度。
AMD 的 RDNA4 採用 1:8 的 SE:WGP 比例,因此一個光柵化器為著色器引擎中的一組八個 WGP 提供資料。AMD 上的 WGP 與 Nvidia 上的 SM 最為接近,並且具有相同的標稱向量通道數。RDNA4 更易於用於小型排程和短持續時間的 wave,但值得注意的是,Blackwell 的設計並非獨樹一幟。獨立於工作分配硬體擴充套件 GPU“核心”是構建更大型 GPU 的常用技術。AMD 的 RX 6900XT(RDNA2)的 SE:WGP 比例為 1:10。在此之前,AMD 最大的 GCN 實現(例如 Fury X 和 Vega 64)的 SE:CU 比例為 1:16(CU,即計算單元,是 GCN GPU 的基本組成部分)。雖然 Blackwell 的功率比與大型 GCN 晶片相同,但它擁有更高的時鐘速度,並且很可能擁有更高的波發射率,以匹配每個 GPU 核心的吞吐量。它不會像 10 年前的 Fury X 那樣承受短波的衝擊,但 GB202 仍然比小型 GPU 更難提供訊號。
雖然 Nvidia 沒有擴充套件工作分配硬體,但他們確實對 Blackwell 進行了改進。之前的 Nvidia 產品無法在同一佇列中重疊不同型別的工作負載。在圖形和計算任務之間切換需要“子通道切換”和“等待空閒”機制。這意味著即使遊戲沒有請求同步,佇列中的一個任務也必須完全完成才能開始下一個任務。管理暴露給主機端應用程式的佇列的高階排程硬體可能一次只能跟蹤一種工作負載型別的狀態。Blackwell 取消了子通道切換,如果應用程式頻繁在同一佇列中混合不同型別的工作,它可以更高效地填充著色器陣列。
SM 前端
一旦分配了工作,SM 的前端就會獲取著色器程式指令並將其交付給執行單元。Blackwell 使用固定長度的 128 位(16 位元組)指令,而 SM 採用兩級指令快取設定。這兩個特性都繼承自 Nvidia 的後圖靈/Volta 設計。SM 的四個分割槽各自擁有一個私有的 L0 指令快取,而 L1 指令快取則由 SM 共享。
Nvidia 的長 16 位元組指令意味著指令端頻寬需求較高。L0+L1 指令快取設定可能旨在處理這些頻寬需求,同時在更大的程式碼佔用空間下保持效能。每個 L0 指令每個週期只需提供一條指令,其較小的快取大小應該更容易最佳化以實現高頻寬和低功耗。SM 級 L1 指令快取則可以進行容量最佳化。
Blackwell 的 L1i 可能只有 128 KB,這是透過對不同大小的展開迴圈進行測試,並檢查生成的彙編程式碼 (SASS) 來驗證迴圈的佔用空間得出的結論。L1i 可以處理大約 8K 的指令,相比 Nvidia 的前幾代產品有了顯著提升。
Blackwell 和 Ada Lovelace 似乎都擁有 32 KB 的 L0i 快取,比 Turing 的 16 KB 有所提升。L1i 可以完全滿足單個分割槽的需求,並且可以過濾掉冗餘的指令讀取,從而滿足所有四個分割槽的需求。然而,如果不同分割槽上的兩個 wave 溢位 L1i 並執行不同的程式碼段,L1i 頻寬可能會成為一個明顯的限制。在這種情況下,每個 wave 的吞吐量會下降到每兩個週期一條指令。
AMD 使用 4 到 12 位元組的可變長度指令,與 Nvidia 相比,這降低了指令快取的容量和頻寬壓力。RDNA4 具有在工作組處理器 (WGP) 上共享的 32 KB 指令快取,與前幾代 RDNA 非常相似。與 Nvidia 的 SM 一樣,WGP 分為四個分割槽 (SIMD)。RDNA1 的白皮書表明 L1i 每週期可以為每個 SIMD 提供 32 位元組。考慮到 AMD 更緊湊的指令,這是一個巨大的頻寬。也許 AMD 想要確保每個 SIMD 能夠以持續的方式共同向其向量和標量單元發出指令。在這個基本測試中,當兩波穿過不同的程式碼路徑時,RDNA4 的 L1i 可以輕鬆保持全吞吐量。RDNA4 還享有來自 L2 的更好的程式碼讀取頻寬,儘管我測試過的所有 GPU 都顯示 L2 程式碼讀取頻寬較差。
執行單元
每個 Blackwell SM 分割槽最多可跟蹤 12 個波段以隱藏延遲,這比 RDNA4 上每個 SIMD 的 16 個波段略低。實際佔用率(即活動波段槽的數量)可能受多種因素限制,包括暫存器檔案容量。自 Ampere 以來,Nvidia 一直未改變理論佔用率或暫存器檔案容量,後者仍為每個分割槽 64 KB。因此,假設分配粒度自 Ada 以來未發生變化且仍為 8 個暫存器,則核心在使用全部 12 個波段槽時不能使用超過 40 個暫存器。相比之下,AMD 的高階 RDNA3/4 SIMD 具有 192 KB 的向量暫存器檔案,使核心可以使用最多 96 個暫存器,同時保持最大佔用率。
與前幾代產品相比,Blackwell 的主要 FP32 和 INT32 執行流水線進行了重組,並在內部將其排列為一個 32 位寬的執行流水線。這與 AMD 的 RDNA GPU 以及 Nvidia 的舊款 Pascal 架構相似。一個 32 位寬的流水線同時處理 INT32 和 FP32 意味著 Blackwell 在遇到一連串相同型別的操作時不會出現卡頓。Blackwell 繼承了 Turing 的優勢,能夠在每個分割槽中每週期執行 16 次 INT32 乘法。而 Pascal 和 RDNA GPU 只能以大約四分之一的速率(每個分割槽、每個週期 8 次)執行 INT32 乘法。
與 Blackwell 相比,AMD 的 RDNA4 在每個 SIMD 中都包含了大量向量計算。與 RDNA3 類似,RDNA4 可以使用 VOPD 雙發射指令或 wave64 模式,在每個分割槽中每週期完成 64 次 FP32 運算。AMD SIMD 還可以同時發射來自不同 wave 的不同型別指令,而 Nvidia 的排程單元每個週期只能發射一條指令。RDNA4 的 SIMD 還包含 8 個特殊功能單元 (SFU),而 Nvidia 只有 4 個。這些單元可以處理更復雜的運算,例如平方根倒數和三角函式。
Blackwell 龐大的 SM 數量很快掩蓋了每個分割槽執行單元佈局或數量的差異。即使 RX 9070 可以利用雙發射,28 個 WGP 也無法應對 188 個 SM。Nvidia 在每個類別中都保持領先。
其他 SM 級別變化
Nvidia 在 Blackwell 的統一資料路徑中添加了浮點指令,該指令可以追溯到圖靈架構,其作用與 AMD 的標量單元類似。兩者都解除安裝了在 Wave 中保持不變的指令。Blackwell 的統一浮點指令包括加法、乘法、FMA、最小/最大運算以及整數和浮點之間的轉換。Nvidia 的這一舉措與 AMD 在 RDNA 3.5 和 RDNA4 中新增浮點標量指令的做法如出一轍。
不過,與 AMD 的標量單元相比,Nvidia 的統一資料路徑感覺有些受限。統一暫存器只能從常量記憶體載入,但奇怪的是,統一暫存器可以寫入全域性記憶體。我無法讓 Nvidia 的編譯器在任何指令或快取延遲測試的關鍵部分發出統一指令,即使是從常量記憶體載入值時也是如此。
光線追蹤一直是 Nvidia GPU 的重點。Blackwell 將每個 SM 的光線三角形相交測試速率提高了一倍,儘管 Nvidia 並未具體說明盒子或三角形的測試速率是多少。與 Ada Lovelace 一樣,Blackwell 的光線追蹤硬體支援“不透明度微圖”,提供類似於英特爾即將推出的 Xe3 架構所引用的子三角形不透明度剔除的功能。
SM記憶體子系統
與 Ada Lovelace 和 Ampere 一樣,Blackwell 擁有一個 SM 寬度的 128 KB 儲存塊,該儲存塊被劃分為 L1 快取和共享記憶體。共享記憶體是 Nvidia 的術語,指的是軟體管理的暫存器,用於支援 OpenCL 中的本地記憶體空間。AMD 的對應物是本地資料共享 (LDS),而英特爾的對應物是共享本地記憶體 (SLM)。與他們的資料中心 GPU 不同,Nvidia 選擇不增加 L1/共享記憶體的容量。與前幾代產品一樣,不同的 L1/共享記憶體劃分不會影響 L1 延遲。
AMD 的 WGP 使用更復雜的記憶體子系統,其高階設計在 RDNA 第一代中首次亮相。WGP 擁有 128 KB 的邏輯資料結構 (LDS),其內部由一對 64 KB、32 組結構構成,並透過交叉開關連線。一級向量資料快取(稱為 L0 快取)專用於 SIMD 對。WGP 範圍內的 16 KB 標量快取用於標量和常量讀取。RDNA4 WGP 總共擁有 208 KB 的資料側儲存空間,可用於不同用途。
RDNA4 WGP 的私有記憶體擁有更高的頻寬,可用於全域性和本地記憶體訪問。每個 L0 向量快取每週期可傳輸 128 位元組,而 LDS 每週期可向 WGP 傳輸總計 256 位元組。混合本地和全域性記憶體流量可以進一步提高可實現的頻寬,這意味著 LDS 和 L0 向量快取擁有獨立的資料匯流排。
在 Nvidia 上執行相同操作不會使每個 SM 的吞吐量超過 128B/週期,這表明 128 KB L1/共享記憶體塊到執行單元有一條 128B 的路徑。
然而,AMD 憑藉這一特性所獲得的任何優勢都被削弱了,因為 RX 9070 為了保持 220W 的功耗目標,將主頻降至 2.6 GHz。相比之下,Nvidia 的功耗上限更高,為 600W,並且可以保持接近最高主頻的速度,同時從 SM 私有的 L1/共享記憶體儲存提供 128B/週期的資料傳輸率。
與計算能力一樣,Nvidia 的龐大規模消除了核心間的差異。RTX PRO 6000 Blackwell 上的 188 個 SM 總計擁有超過 60 TB/s 的頻寬。高 SM 數量也為 Nvidia 帶來了更大的 L1/本地記憶體總量。Nvidia 在 RTX PRO 6000 上擁有 24 MB 的 L1/共享記憶體。AMD 的 RX 9070 在其 WGP 中擁有略低於 6 MB 的一級資料儲存。
SM-private 儲存通常延遲較低,至少就 GPU 而言是如此,而 Blackwell 依然如此。Blackwell 在多個方面都比 AMD 更具優勢,部分優勢在於地址生成。我正在測試依賴陣列訪問,Nvidia 只需一條 IMAD.WIDE 指令即可將陣列索引轉換為地址。
AMD 透過其標量單元實現了快速的 64 位地址生成,但當然,只有當編譯器確定地址計算在整個波形中保持不變時,才能使用該功能。如果每個通道都需要獨立生成自己的地址,AMD 的向量整數單元原生只能處理 32 位資料型別,並且必須執行帶進位的加法運算才能生成 64 位地址。
GPU 還可以將地址生成任務交給紋理單元處理,紋理單元可以處理陣列地址計算。當然,紋理單元也可以進行紋理過濾,不過我只在使用 OpenCL 的 image1d_buffer_t 型別測試時要求它返回原始資料。如果紋理單元進行地址計算,AMD 的延遲會更低,但 Nvidia 則不會。
原子(Atomics)
GPU 通常使用靠近一致性點的專用 ALU 來處理原子操作,例如用於本地記憶體的 LDS 或共享記憶體,或用於全域性記憶體的 L2 快取。這與 CPU 形成了鮮明對比,CPU 依靠鎖定快取行來處理原子操作並確保排序。Nvidia 似乎在每個 SM 上都有 16 個 INT32 原子 ALU,而 AMD 的每個 WGP 上都有 32 個。
一個常見的趨勢是,Nvidia 可以憑藉其更強大的 GPU 擊敗 AMD,至少在本地記憶體原子方面是如此。RTX PRO 6000 和 RX 9070 在全域性記憶體中的原子加法吞吐量驚人地相似,這表明 Nvidia 的 L2 儲存體更少,或者每個儲存體中的原子單元更少。
當執行緒透過原子比較和交換操作交換資料時,RDNA4 和 Blackwell 的延遲相似,不過 AMD 的速度略快一些。RX 9070 是一款尺寸更小、時鐘頻率更高的 GPU,兩者均有助於降低在 GPU 之間移動資料的延遲。
GPU 範圍的記憶體子系統
Blackwell 採用傳統的兩級資料快取設定,但延續了 Ada Lovelace 的策略,即增加 L2 容量,以實現與 AMD Infinity Cache 相同的目標。Blackwell 的 L2 延遲迴落至略高於 130 納秒,而 Ada Lovelace 的延遲為 107 納秒。Nvidia 的 L2 延遲仍然介於 AMD 的 L2 和 Infinity Cache 之間,但現在明顯更接近後者。
使用 Vulkan 的測試結果表明,較小的 RTX 5070 也具有比 RTX 4090 更高的 L2 延遲(122 納秒),即使 5070 具有更少的 SM 和更小的 L2。Nemes 的 Vulkan 測試套件的快取延遲結果應該與我的 OpenCL 結果大致相當,因為我們都使用 current = arr[current] 訪問模式。深入觀察後發現,程式碼生成存在細微差異,這似乎會使 Vulkan 結果的延遲增加約 3 納秒。但這並沒有改變 L2 延遲的大局。此外,L1 和 L2 延遲之間的差異應該近似於遍歷片上網路和訪問 L2 所需的時間。在這方面,OpenCL 和 Vulkan 結果之間的差異微不足道。GB202 的 L2 延遲迴歸部分可能來自其龐大的規模,但 5070 的結果表明情況並非如此。
RTX PRO 6000 Blackwell 的 VRAM 延遲可控在 329 納秒,L2 命中延遲約為 200 納秒。AMD 的 RDNA4 的 VRAM 延遲更佳,向量訪問延遲為 254 納秒,標量路徑延遲為 229 納秒。有趣的是,Nvidia 之前的Ada Lovelace 和 Ampere 架構的VRAM 延遲比 Blackwell 更好,與 RDNA4 和 RDNA2 的延遲大致相同。
Blackwell 的 L2 頻寬約為 8.7 TB/s,略高於 RX 9070 的 8.4 TB/s。在更大的測試規模下,Nvidia 仍保持著巨大的優勢,而 AMD 的 Infinity Cache 提供的頻寬還不到後者的一半。在視訊記憶體方面,Blackwell 的 GDDR7 和 512 位視訊記憶體匯流排使其繼續遙遙領先於 AMD。
Nvidia 的 L2 效能值得密切關注,因為這是 RX 9070 與巨頭 RTX PRO 6000 Blackwell 驚人地接近的領域之一。GB202 的晶片照片顯示其擁有 64 個快取塊,這表明 L2 被拆分成了 64 個快取組。如果是這樣,每個快取組可能每週期傳輸 64 位元組(其中測試達到了 48B/週期)。這比 Ada Lovelace 最大的 AD102 晶片中的 48 個 L2 塊有所提升。然而,Nvidia 的 L2 仍然難以兼顧 L1 未命中的第一站和大型末級快取。換句話說,它正在執行 AMD 的 L2 和 Infinity Cache 級別的工作。減少快取級別肯定是有好處的,因為檢查快取級別會增加延遲和功耗成本。然而,快取也必須在容量、效能和功耗/面積成本之間做出權衡。
Nvidia 很可能依賴其靈活的 L1/共享記憶體安排來控制 L2 頻寬需求,並使 SM 免受 L2 延遲的影響。如果核心不需要本地記憶體,Blackwell SM 可以將其整個 128 KB L1/共享記憶體塊用作 L1 快取,而 AMD WGP 則只能使用兩個 32 KB 向量快取和一個 16 KB 標量快取。然而,如果核心受限於本地記憶體容量,且資料佔用量在幾兆位元組左右,那麼 Nvidia 就會處於劣勢。觀察 AMD 和 Nvidia 如何權衡這些權衡頗有趣味,但由於兩款產品在如此不同的細分市場競爭,因此無法得出任何結論。
計算效能:FluidX3D
FluidX3D 模擬流體行為,可能需要大量的記憶體頻寬。它使用 FP32 值進行計算,但可以將其轉換為 FP16 格式進行儲存。這樣做可以降低 VRAM 頻寬和容量要求。正如計算和記憶體頻寬規格所示,Nvidia 的 RTX PRO 6000 遠遠領先於 AMD 的 RX 9070。
無論 FluidX3D 採用何種模式編譯,Nvidia 的領先優勢都保持相對穩定。
最後的話
從技術層面來看,2025 年 GPU 領域的競爭將比以往任何時候都更加激烈,因為英特爾的 GPU 研發工作穩步推進,並使其成為第三大競爭對手。在資料中心領域,AMD 的 MI300 憑藉其在超級計算領域的勝利,證明了其極強的競爭力。但在高階消費市場,競爭卻明顯缺失。英特爾的 Battlemage 和 AMD 的 RDNA4 都停留在中端市場。RX 9070 的目標效能水平確實高於英特爾的 Arc B580,但兩者都遠不及英偉達最大的 202 GB 視訊記憶體的 GPU。
至於 GB202,這是 Nvidia 竭盡全力打造更大尺寸以征服高階市場的又一例證。750mm2 的晶片突破了單片設計的極限。其 575W 或 600W 的目標功率考驗著消費級 PC 的功率極限。透過突破這些極限,Nvidia 創造了當今市場上最大的消費級 GPU。就向量 FP32 吞吐量而言,RTX PRO 6000 令人難以置信地接近 AMD 的 MI300X,並且遠遠領先於 Nvidia 自己的 B200 資料中心 GPU。記憶體子系統也是一個怪物。也許 Nvidia 的工程師們問過他們是否應該像 AMD 的 RDNA2 那樣強調快取,還是像他們在 Ampere 上那樣依賴 VRAM 頻寬。顯然,答案是兩者兼而有之。同樣的方法也適用於計算,答案顯然是“所有 SM”。
打造如此強大的 GPU 並非易事,Nvidia 顯然也面臨著諸多挑戰。考慮到它可能需要處理的海量計算吞吐量,L2 效能表現平平。除了 GPU 尺寸之外,與 RDNA4 的比較也顯示出 AMD 繼續使用數量更少、效能更強的獨立核心的趨勢。RDNA4 的基本工作組處理器構建塊比 Blackwell SM 擁有更高的計算吞吐量和快取頻寬。
但這些在高階市場都不重要,因為英偉達的“核心”數量是後者的6倍多,末級快取容量是後者的兩倍,並且視訊記憶體頻寬也遙遙領先。Blackwell在某些方面可能沒有那麼出色。但英偉達的工程師值得稱讚,因為其他所有人顯然都看到了這些挑戰,並決定根本不去嘗試。因此,Blackwell理所當然地贏得了高階市場。像RTX PRO 6000這樣的產品令人著迷,我預計英偉達將繼續突破其消費級GPU的極限。但我也希望,在未來的幾十年乃至幾個世紀裡,高階市場的競爭最終會重新出現。
來源:內容編譯自hipsandcheese
轉載:半導體行業觀察
相關閱讀:

請之前購買過全店打包架構師技術全店資料打包彙總(全)”的讀者,請憑藉購買記錄在微店留言免費獲取(PDF閱讀版本)。後續所有更新均免費發放目前46本資料)。

免責申明:本號聚焦相關技術分享,內容觀點不代表本號立場,可追溯內容均註明來源,釋出文章若存在版權等問題,請留言聯絡刪除,謝謝。
推薦閱讀
更多架構相關技術知識總結請參考“架構師全店鋪技術資料打包(全)”相關電子書(46本技術資料打包彙總詳情可透過“閱讀原文”獲取)。
溫馨提示:
掃描二維碼關注公眾號,點選閱讀原文連結獲取架構師技術全店資料打包彙總(全)電子書資料詳情


相關文章