GPU 網絡通信基礎,Part 1(橫向與縱向擴展;訓練中的通信環節...) 原創
編者按: 當我們談論訓練萬億參數的大語言模型時,除了驚嘆于其算力需求,是否曾深入思考過:如何讓成千上萬甚至數十萬塊 GPU 高效協同工作,像超級大腦般實時共享信息?
本文以訓練大語言模型對海量算力的迫切需求為切入點,深入剖析了大規模 GPU 集群網絡設計的核心挑戰與解決方案:首先揭示了理想化“全互聯”架構的不可行性,進而引入網絡交換機及分層“葉脊拓撲”結構。接著系統對比了兩種關鍵擴展策略——通過增加節點實現橫向擴展與通過提升單節點算力密度實現縱向擴展,并重點強調節點內通信(如 NVLink/Infinity Fabric)憑借極短物理距離和專用互連技術,其速度與帶寬遠超節點間通信。最后結合神經網絡訓練流程(前向/反向傳播、梯度更新),點明全歸約(AllReduce) 等集合通信操作在梯度同步中的核心地位及其延遲對訓練效率的直接影響,并提及軟件優化(如通信與計算重疊)的重要性。
作者 | Austin Lyons
編譯 | 岳揚
本系列文章將用輕松的方式聊聊網絡與 GPU。這個話題很重要,但可能顯得有些枯燥或深奧。請耐心聽我道來!
01 訓練動機
訓練大語言模型需要海量的浮點運算(FLOPs):

Source: ??https://chamath.substack.com/p/deep-dive-the-current-state-of-ai??
這些模型要訓練多久?
假設單個 GPU 每秒能完成 2 PetaFLOP/s(即 2 * 10^15 次浮點運算),而一天共有 86,400 秒,那么單日運算量約為 1.7 x 10^20 FLOPS。在最理想的情況下,使用單個 GPU 訓練達到 10^24 FLOPs 需要整整 16 年。
16年!誰等得起啊!
如何才能在數月或數周內完成訓練?我們需要讓大量 GPU 協同工作。
這些 GPU 還需要相互通信,實時共享訓練進度和訓練結果。它們如何實現通信?靠網絡!

不,不是這種社交網絡。

對,這才是我們要說的網絡!??
連接 GPU 其實是個非常有趣的技術難題。想想 xAI 需要協調 20 萬個 GPU 之間的通信!
02 網絡交換機
以 xAI 的 20 萬塊 GPU 集群為例:如何實現互聯?
在理想狀態下,每塊 GPU 都能以最高速率與其他所有 GPU 直接通信。
最直接的想法是:能否直接連接所有 GPU?
無需交換機或其他中轉設備,理論上這種方案速度最快!
這就是“全互聯(full mesh)”網絡架構。
但全互聯架構在實際的大規模部署中存在諸多問題。
例如:若要實現 GPU 兩兩直連,每塊 GPU 需配備 199,999 個端口,總共需要約 200 億條線纜!這顯然太荒謬。
如果引入網絡交換機呢?網絡交換機是專門用于在多設備(此處指 GPU)間高效路由數據的硬件設備。
無需將所有 GPU 直接相連,而是讓 GPU 連接到交換機,由交換機統一管理通信鏈路。

網絡交換機連接這些 GPU,使它們能夠相互通信
若采用單臺交換機連接 20 萬塊 GPU,線纜數量可降至每塊 GPU 1 條,從 200 億條驟減至 20 萬條!
但這樣的交換機仍需具備 20 萬個端口,顯然不可實現。

需要的端口數量相當于這個交換機的 8000 倍 ??
顯然單臺巨型交換機無法滿足需求,這就需要采用分層交換架構(hierarchical switching)。
03 葉脊拓撲結構
無需采用一個巨型交換機連接所有 GPU,我們可以將網絡組織為多層級交換機結構:

層級結構中的每個交換機只需連接部分 GPU,其尺寸和成本更易管控。
這種方案下,GPU 不再需要成千上萬的直連端口,交換機也是如此!
但代價是:當不同分支的 GPU 需要通信時,數據必須經過多個交換機中轉,這會增加額外延遲。
舉例說明:若兩塊 GPU 未連接至同一交換機,它們的通信需先上傳至高層級的交換機,再下傳至目標 GPU 所在的交換機。

網絡跳轉會增加數據傳輸耗時
這種雙層架構通常稱為葉脊架構或雙層 Clos 網絡。
葉交換機直接連接計算單元,脊交換機則負責連接葉交換機:

04 橫向擴展
如何實現數千塊 GPU 的互聯?
橫向擴展(或稱水平擴展)是指通過增加更多 GPU 和網絡交換機來擴大集群規模。 這種方式將訓練工作負載分攤到更多硬件上,從而縮短大語言模型的訓練周期。

只需不斷復制粘貼網絡結構……即可實現橫向擴展!
這些 GPU 與交換機之間如何通信?橫向擴展采用以太網或 InfiniBand 技術,兩者都能為 GPU 間通信提供所需的高速網絡環境。
InfiniBand 是英偉達的專有技術(通過收購 Mellanox 獲得),因其比高性能以太網變體(如 RoCE —— 基于融合以太網的 RDMA[1])具有更低的延遲和更高的帶寬,歷來被大規模 AI 集群優先選用。

如果您覺得這不像以太網線,那就對了!1.5m (5ft) 英偉達(NVIDIA)/邁絡思(Mellanox)MCP4Y10-N01A兼容 800G OSFP NDR InfiniBand 頂部帶散熱片高速線纜,用于 Quantum-2 交換機。圖片來源[2]
新建的訓練集群正越來越傾向于選擇以太網。正如黃仁勛在近期英偉達 GTC 主題演講中所述,埃隆的 xAI 采用英偉達 Spectrum X 以太網構建了全球最大的訓練集群(Colossus[3])。
05 縱向擴展
橫向擴展雖能短期見效,但終究會受到物理定律和經濟規律的制約。設備與交換機數量的增加會導致延遲增加、能耗攀升及成本上漲。發展到某個階段,單純依靠橫向擴展就不再是最優解。
這便引出了另一種方案:縱向擴展(或稱垂直擴展)。
縱向擴展是指提升單個節點的算力密度,而非單純增加節點數量。
葉交換機無需直接連接單塊 GPU,而是連接至每臺搭載多塊 GPU(例如八塊)的服務器。此舉大大減少了所需直接聯網的交換機數量和線纜規模:

每個服務器節點容納 8 塊 GPU;單臺交換機可覆蓋更多 GPU
類比早期的網絡擴展:快速發展的公司會先通過增加 CPU 核心和內存來升級單臺服務器(縱向擴展);當單機性能不足時,再通過添加服務器和負載均衡器分流流量(橫向擴展)。
敏銳的讀者可能會問:這些縱向擴展的 GPU 如何通信?它們仍需要通過網絡交換機連接嗎?這與橫向擴展有何區別?
問得非常好!
節點內通信 vs 節點間通信
同一服務器節點內的通信稱為節點內通信。

不同服務器間 GPU 的通信稱為節點間通信。

事實證明,相鄰 GPU 的節點內通信速度與帶寬遠勝于使用 Infiniband 或以太網的節點間通信。
為何如此?
這主要歸功于 GPU 之間緊密的物理距離以及所采用的專用互連技術。這些技術利用了直接的、短距的且經過優化的信號布線,它們通常直接集成在同一塊電路板上或同一個物理封裝外殼內,從而縮短信號傳輸距離并最大限度地降低延遲。
例如 AMD 在 2018 年 IEEE 國際固態電路會議(ISSCC)[4]公布的 Infinity Fabric 布線方案:

亮色連接線(跡線)表示計算單元間的金屬連接,可視為封裝基板中的“導線”
由于服務器內 GPU 采用直連方式,可規避大部分節點間通信的開銷。封裝外殼內布線通過縮短跡線長度、減少傳播延遲和信號衰減來提升效率。
而 Infiniband 與以太網等外部連接需依賴中繼器、重定時器、糾錯機制等信號完整性保障組件來保障遠距離傳輸的可靠性,這些都會增加額外的延遲和功耗。
不妨將 NVLink、InfinityFabric 等節點內通信比作德國高速公路[5]:專為高速內無中斷的通行設計。
節點間通信則像雙車道公路:速度更慢、通行量有限,還可能因春耕秋收的拖拉機導致降速(即應對擁堵)。

注意,前方可能有交警蹲守!
06 訓練中的通信環節
理解神經網絡如何訓練,有助于我們了解其中的通信挑戰。
在每個訓練周期中,網絡首先執行前向傳播:輸入數據流經網絡各層生成預測結果。隨后通過損失函數將預測值與正確答案對比,量化誤差幅度。
學習的核心發生在反向傳播階段。通過反向傳播算法,系統計算網絡中每個權重對誤差的貢獻程度。利用這些信息,梯度下降算法會沿著減少誤差的方向調整所有權重 —— 這本質上就如同轉動數十億個“旋鈕”,逐步提升網絡的預測精度。每次迭代中的細微調整,都讓神經網絡在新數據上的預測更趨可靠。

每塊 GPU 根據前向傳播的誤差計算權重更新的梯度,但由于各 GPU 處理不同的數據子集,這些梯度僅是局部結果。為確保所有 GPU 應用相同的參數更新并保持同步,必須跨所有 GPU 對梯度進行聚合與求平均。
這個過程稱為全歸約通信(all-reduce communication),它使得各 GPU 在更新本地模型前能夠交換并分發最終計算值。通過維持全局一致性,該機制可避免模型漂移,確保分布式訓練的有效性。
全歸約通信的延遲直接影響訓練效率。
此外還存在其他集合通信操作,例如英偉達 NCCL 軟件庫[6]支持的:全歸約(AllReduce)、廣播(Broadcast)、歸約(Reduce)、全聚合(AllGather)、散射規約(ReduceScatter)。
因此理想情況下,訓練集群需采用最高帶寬和最低延遲的通信方案。
正如我們在 DeepSeek V3 中所見[7],還可通過軟件方法實現通信與計算的重疊執行,減少 GPU 空閑時間,降低通信限制的影響。
07 Conclusion
本文的第一部分到此結束。當然還有更多內容可以探討。實際的大規模集群并非全互聯結構,其架構要復雜得多。

Source:??https://www.youtube.com/watch?v=wLW3UzUw5rY&t=452s??
該系列文章后續還將涵蓋推理的通信需求(及其與訓練的差異)、前端網絡與后端網絡、光通信等主題。
但希望目前的內容已足以讓您在看到技術圖表(例如英偉達 SuperPOD 計算架構圖[8])時,能建立基礎的認知框架,并通過提問填補知識空白:

上圖中可以看到脊交換機和葉交換機助力實現橫向擴展,而 B200 服務器則體現了縱向擴展。
從表格數據可知,每個可擴展單元包含 32 個節點,每個節點配備 8 塊 GPU。這正是橫向擴展(32 節點)與縱向擴展(單節點 8 GPU)的結合。不必糾結“移除 DGX 以適配 UFM 連接”這類細節 —— 關鍵是你現在已經能理解整體框架了!
END
本期互動內容 ??
?你覺得在未來,是算力會先遇到天花板,還是網絡通信會先成為 AI 發展的最大瓶頸?
文中鏈接
[2]??https://www.fs.com/products/204997.html?now_cid=3908??
[4]??https://ieeexplore.ieee.org/xpl/conhome/8304413/proceeding??
[5]??https://www.german-way.com/travel-and-tourism/driving-in-europe/driving/autobahn/??
[6]??https://docs.nvidia.com/deeplearning/nccl/user-guide/docs/usage/collectives.html??
[7]??https://www.chipstrat.com/i/158842573/dualpipe-algorithm-and-computation-communication-overlap??
本文經原作者授權,由 Baihai IDP 編譯。如需轉載譯文,請聯系獲取授權。
原文鏈接:
??https://www.chipstrat.com/p/gpu-networking-basics-part-1??

















