用于人工智能的 CXL 內存帶寬擴展如何?定制人工智能超級分頻器芯片的采用情況如何?
如果我們把時間拉回到兩年前,在人工智能迅速崛起之前,數據中心硬件領域的許多人都在追逐 CXL。它被許諾為帶來異構計算、內存池和可組合服務器架構的救世主。現有廠商和一大批新創公司都急于將 CXL 集成到自己的產品中,或創建基于 CXL 的新產品,如內存擴展器、池器和交換機。時至 2023 年和 2024 年初,許多項目已被悄然擱置,許多超大規模企業和大型半導體公司幾乎已完全轉向其他領域。
隨著 Astera Labs 即將上市和產品發布,CXL 的討論至少在短期內又回到了前排。我們已經就這項技術、其為云服務提供商節約成本的潛力以及生態系統和硬件堆棧撰寫了大量文章。雖然從紙面上看非常有前景,但數據中心的格局已經發生了很大變化,但有一點沒有改變:控制器和交換機等 CXL 硬件仍未大量上市。盡管如此,圍繞 CXL 的討論和研究仍然不絕于耳,業內某些專業人士現在還在鼓吹 CXL 是人工智能的 "助推器"。
更廣泛的 CXL 市場是否已經準備好起飛并實現其承諾?CXL 能否成為人工智能應用的互連器件?CXL 在 CPU 附加擴展和池化中的作用是什么?我們將在本報告的用戶部分回答這些問題。
簡單的答案是否定的--推動 CXL 用于人工智能的人大錯特錯。讓我們先快速回顧一下 CXL 的主要用例和承諾。
CXL 快速復習概述
CXL 是一種建立在 PCIe 物理層之上的協議,可實現跨設備的高速緩存和內存一致性。利用 PCIe 接口的廣泛可用性,CXL 允許在各種硬件之間共享內存:CPU、網卡和 DPU、GPU 和其他加速器、SSD 和內存設備。
這樣就可以實現以下用例:
內存擴展:CXL可幫助增加服務器的內存帶寬和容量。
內存池:CXL 可以創建內存池,將內存從 CPU 中分離出來,理論上可以大幅提高 DRAM 利用率。從紙面上看,這可以為每個云服務提供商節省數十億美元。
異構計算:ASIC 的效率遠遠高于通用 CPU。CXL 可以在 ASIC 和通用計算之間提供低延遲緩存一致性互連,從而幫助實現異構計算,這樣應用程序就可以更輕松地將它們集成到現有代碼庫中。
可組合服務器架構:服務器被分解成不同的組件并放置在不同的組中,這些資源可以動態地分配給不同的工作負載,從而提高資源滯留率和利用率,同時更好地滿足應用需求。
下圖說明了部分情況:CXL 可以解決主系統內存和存儲之間的延遲和帶寬差距,從而實現新的內存層。
有些人預測,到 2028 年,CXL的銷售額將高達 150 億美元,而現在只有幾百萬美元,因此我們認為是時候對 CXL 市場進行適當的更新了,因為這種說法簡直太荒謬了。讓我們先來談談人工智能的 CXL 案例。
CXL 不會成為人工智能時代的互聯技術
目前,CXL 的可用性是主要問題,因為 Nvidia GPU 不支持它,而 AMD 的技術僅限于 MI300A。雖然 MI300X 理論上可以在硬件上支持 CXL,但它并沒有正確地暴露出來。CXL IP 的可用性在未來會有所改善,但除了可用性之外,還有更深層次的問題使 CXL 在加速計算時代失去了意義。
兩個主要問題與 PCIe SerDes 和海濱或海岸線區域有關。芯片的 IO 通常必須來自芯片邊緣。下面這張來自 Nvidia 的圖片以漫畫的形式展示了 H100。中央是所有的計算區域。頂部和底部兩側 100% 專用于 HBM。從 H100 到 B100,HBM 數量增加到 8 個,需要更多的岸線面積。Nvidia 將繼續在其 2 芯片封裝的整整兩側使用 HBM。
剩下的兩面專門用于其他芯片到芯片的 IO,這也是標準和專有互連爭奪芯片面積的地方。H100 GPU 有 3 種 IO 格式:PCIe、NVlink 和 C2C(用于連接 Grace)。Nvidia 決定只包含最少的 16 條 PCIe 通道,因為 Nvidia 在很大程度上更喜歡后者 NVLink 和 C2C。請注意,服務器 CPU(如 AMD 的 Genoa)的 PCIe 通道最多可達 128 條。
做出這種選擇的主要原因是帶寬。16 通道 PCIe 接口每個方向的帶寬為 64GB/s。Nvidia 的 NVlink 為其他 GPU 帶來了 450 GB/s 的雙向帶寬,大約高出 7 倍。Nvidia 的 C2C 也能為 Grace CPU 帶來每秒 450GB 的雙向帶寬。為了公平起見,Nvidia 為 NVLink 提供了更多的岸線面積,因此我們需要將硅片面積也計算在內;但即便如此,我們估計在各種 SOC 中,Nvidia NVLink、Google ICI 等以太網式 SerDes 每平方毫米的單位岸線面積帶寬要高出 3 倍。
因此,如果你是一個帶寬受限的芯片設計者,當你選擇使用 PCIe 5.0 而不是 112G 以太網式 SerDes 時,你的芯片大約要差 3 倍。隨著下一代圖形處理器和人工智能加速器采用 224G SerDes,這種差距將繼續存在,并與 PCIe 6.0 / CXL 3.0 保持 3 倍的差距。我們處在一個焊盤有限的世界,放棄 IO 效率是一種瘋狂的權衡。
人工智能集群的主要擴展和縮小互聯將采用專有協議,如 Nvidia NVlink 和 Google ICI,或以太網和 Infiniband。這是因為 PCIe SerDes 本身的局限性,即使在擴展格式中也是如此。由于延遲目標不同,PCIe 和以太網 SerDes 對誤碼率(BER)的要求也大相徑庭。
PCIe 6 要求誤碼率小于 1e-12,而以太網要求 1e-4。之所以存在 8 個數量級的巨大差異,是因為 PCIe 有嚴格的延遲要求,因此必須采用極輕的前向糾錯(FEC)方案。FEC 在發送器中以數字方式添加冗余奇偶校驗比特/信息,接收器利用這些比特/信息來檢測和糾正錯誤(比特翻轉),這與內存系統中的 ECC 非常相似。較重的 FEC 會增加更多開銷,占用本可用于數據位的空間。更重要的是,FEC 會增加接收器的大量延遲。這就是 PCIe 在 Gen6 之前一直避免使用任何 FEC 的原因。
以太網式 SerDes 受嚴格的 PCIe 規范限制更少,因此速度更快,帶寬更高。因此,NVlink 的延遲更高,但這在大規模并行工作負載的人工智能世界中并不重要,因為 ~100ns 與 ~30ns 并不是值得考慮的因素。
首先,MI300 AID 將大部分海濱區域用于 PCIe SerDes,而不是以太網式 SerDes。雖然這為 AMD 在 IFIS、CXL 和 PCIe 連接方面提供了更多的可配置性,但卻導致總 IO 約為以太網式 SerDes 的 1/3。如果 AMD 想要與 Nvidia 的 B100 競爭,就必須立即放棄 PCIe 式 SerDes 的人工智能加速器。我們相信,MI400 也將如此。
AMD 缺乏高質量 SerDes 嚴重限制了其產品的長期競爭力。他們提出了 Open xGMI / Open Infinity Fabric / Accelerated Fabric Link,因為 CXL 并不是人工智能的正確協議。雖然它主要基于 PCIe,但由于上市時間、性能、一致性和覆蓋范圍等原因,它確實摒棄了 PCIe 7.0 和 CXL 的一些標準功能。
用于人工智能的 CXL 內存帶寬擴展如何?定制人工智能超級分頻器芯片的采用情況如何?其他供應商的定制硅芯片(如 Marvell Google CXL 芯片)又如何呢?
