集體通信是現(xiàn)代分布式人工智能培訓(xùn)工作(如推薦系統(tǒng)和自然語言處理)的一個關(guān)鍵性能組成部分。
NVIDIA Collective Communication Library ( NCCL )是一個 Magnum IO 庫,可實現(xiàn) GPU 加速的集體操作:
集合
全部減少
廣播
減少
減少分散
點對點發(fā)送和接收
NCCL 具有拓撲意識,經(jīng)過優(yōu)化,可通過 PCIe 、 NVLink 、以太網(wǎng)和 InfiniBand 互連實現(xiàn)高帶寬和低延遲。 NCCL GCP 插件 和 NCCL AWS 插件 通過自定義網(wǎng)絡(luò)連接,在流行的云環(huán)境中實現(xiàn)高性能 NCCL 操作。
NCCL 版本一直致力于提高集體溝通績效。這篇文章主要關(guān)注 NCCL 2.12 版本帶來的改進。
結(jié)合 NVLink 和網(wǎng)絡(luò)通信
NCCL 2.12 中引入的新功能稱為 PXN ,稱為 PCI × NVLink ,因為它使 GPU 能夠通過 NVLink 然后通過 PCI 與節(jié)點上的 NIC 通信。這不是使用 QPI 或其他無法提供全部帶寬的 CPU 協(xié)議通過 CPU 。這樣,即使每個 GPU 仍然盡可能多地使用其本地 NIC ,但如果需要,它可以訪問其他 NIC 。
GPU 在中間 GPU 上準備緩沖區(qū),通過 NVLink 寫入,而不是在其本地內(nèi)存上準備緩沖區(qū)供本地 NIC 發(fā)送。然后,它通知管理該 NIC 的 CPU 代理數(shù)據(jù)已就緒,而不是通知其自己的 CPU 代理。 GPU- CPU 同步可能會稍微慢一點,因為它可能必須穿過 CPU 插槽,但數(shù)據(jù)本身只使用 NVLink 和 PCI 交換機,以保證最大帶寬。


圖 1 。軌道優(yōu)化拓撲
在圖 1 的拓撲中,每個 DGX 系統(tǒng)的 NIC-0 連接到同一個葉交換機( L0 ), NIC-1 連接到同一個葉交換機( L1 ),依此類推。這種設(shè)計通常被稱為 rail-optimized 。鐵路優(yōu)化網(wǎng)絡(luò)拓撲有助于最大限度地提高所有流量,降低性能,同時最大限度地減少流量之間的網(wǎng)絡(luò)干擾。它還可以通過輕軌之間的連接來降低網(wǎng)絡(luò)成本。
PXN 利用節(jié)點內(nèi) GPU 之間的 NVIDIA NVSwitch 連接,首先將 GPU 上的數(shù)據(jù)移動到與目的地相同的軌道上,然后在不跨越軌道的情況下將其發(fā)送到目的地。這可以實現(xiàn)消息聚合和網(wǎng)絡(luò)流量優(yōu)化。


圖 2 。從 DGX-A 中的 GPU0 到 DGX-B 中的 GPU3 的消息路徑示例
在 NCCL 2.12 之前,圖 X 中的消息會穿過網(wǎng)絡(luò)交換機的三個躍點( L0 、 S1 和 L3 ),這可能會導(dǎo)致爭用,并被其他流量減慢。在同一對 NIC 之間傳遞的消息被聚合,以最大限度地提高有效消息速率和網(wǎng)絡(luò)帶寬。
消息聚合
使用 PXN ,給定節(jié)點上的所有 GPU 將其數(shù)據(jù)移動到給定目的地的單個 GPU 上。這使得網(wǎng)絡(luò)層能夠通過實現(xiàn)新的多接收功能來聚合消息。該功能使遠程 CPU 代理能夠在所有消息準備就緒后立即將它們作為一個整體發(fā)送。
例如,如果節(jié)點上的 GPU 正在執(zhí)行 all2all 操作,并且要從遠程節(jié)點的所有八個 GPU 接收數(shù)據(jù), NCCL 調(diào)用具有八個緩沖區(qū)和大小的多接收。在發(fā)送方方面,網(wǎng)絡(luò)層可以等待所有八次發(fā)送就緒,然后一次發(fā)送所有八條消息,這會對消息速率產(chǎn)生顯著影響。
消息聚合的另一個方面是,現(xiàn)在在給定目的地的所有 GPU 節(jié)點之間共享連接。這意味著要建立的連接更少。如果路由算法依賴于有很多不同的連接來獲得良好的熵,這也會影響路由效率。
PXN 提高了所有 2 的性能


圖 3 。所有 2 跨四個參與流程的所有集體操作
圖 3 顯示了 all2all 需要從每個進程到其他每個進程的通信。換句話說,在 N – GPU 集群中,作為 all2all 操作的一部分交換的消息數(shù)是$ O ( N ^{ 2 })$。
GPU 之間交換的消息是不同的,無法使用 樹/環(huán)等算法(用于 allreduce ) 進行優(yōu)化。當您在 GPU 的 100 秒內(nèi)運行十億個以上的參數(shù)模型時,消息的數(shù)量可能會觸發(fā)擁塞、創(chuàng)建網(wǎng)絡(luò)熱點,并對性能產(chǎn)生不利影響。
如前所述, PXN 將 NVLink 和 PCI 通信結(jié)合起來,以減少通過第二層脊椎交換機的流量,并優(yōu)化網(wǎng)絡(luò)流量。它還通過將多達八條消息聚合為一條消息來提高消息速率。這兩項改進都顯著提高了所有 2 的性能。
所有 reduce 都基于 1:1 GPU:NIC 拓撲
PXN 解決的另一個問題是拓撲的情況,即每個 NIC 附近都有一個 GPU 。環(huán)形算法要求兩個 GPU 靠近每個 NIC 。數(shù)據(jù)必須從網(wǎng)絡(luò)傳輸?shù)降谝粋€ GPU ,通過 NVLink 繞過所有 GPU ,然后從最后一個 GPU 退出網(wǎng)絡(luò)。第一個和最后一個 GPU 必須都靠近 NIC 。第一個 GPU 必須能夠有效地從網(wǎng)絡(luò)接收,最后一個 GPU 必須能夠有效地通過網(wǎng)絡(luò)發(fā)送。如果只有一個 GPU 靠近給定的 NIC ,則無法關(guān)閉環(huán),必須通過 CPU 發(fā)送數(shù)據(jù),這可能會嚴重影響性能。
有了 PXN ,只要最后一個 GPU 可以通過 NVLink 訪問第一個 GPU ,它就可以將數(shù)據(jù)移動到第一個 GPU 。數(shù)據(jù)從那里發(fā)送到 NIC ,將所有傳輸保持在 PCI 交換機的本地。
這種情況不僅與每個 PCI 交換機具有一個 GPU 和一個 NIC 的 PCI 拓撲有關(guān),而且當 NCCL 通信器僅包含 GPU 的子集時,也可能發(fā)生在其他拓撲上??紤]具有 nVLink 超立方體網(wǎng)格的 8x GPU 互連的節(jié)點。


圖 4 。 NVIDIA DGX-1 系統(tǒng)中的網(wǎng)絡(luò)拓撲
圖 5 顯示了當通信器包括系統(tǒng)中的所有 8x GPU 時,利用拓撲中可用的高帶寬 NVLink 連接可以形成的環(huán)。這是可能的,因為 GPU0 和 GPU1 共享對同一本地 NIC 的訪問。


圖 5 。 NCCL 使用的環(huán)形路徑示例
通訊器只能包含 GPU 的一個子集。例如,它可以只包含 GPU 0 、 2 、 4 和 6 。在這種情況下,如果不穿過軌道,就不可能創(chuàng)建環(huán):從 GPU 0 進入節(jié)點的環(huán)必須從 GPU 2 、 4 或 6 退出,這些環(huán)不能直接訪問 GPU 0 ( NIC 0 和 1 )的本地 NIC 。
另一方面, PXN 允許形成環(huán),因為 GPU 2 可以在通過 NIC 0 / 1 之前將數(shù)據(jù)移回 GPU 0 。
這種情況在模型并行性中很常見,具體取決于模型的拆分方式。例如,如果一個模型在 GPU 0-3 之間拆分,則另一個模型在 GPU 4-7 上運行。這意味著 GPU 0 和 4 負責模型的同一部分,并且在所有節(jié)點上創(chuàng)建了一個 NCCL 通信器,其中包含所有 GPU 0 和 4 ,以執(zhí)行相應(yīng)層的所有 reduce 操作。沒有 PXN ,這些通訊器無法有效地執(zhí)行所有 reduce 操作。
到目前為止,實現(xiàn)高效模型并行的唯一方法是在 GPU 0 , 2 , 4 , 6 和 1 , 3 , 5 , 7 上拆分模型,這樣 NCCL 子通信程序?qū)?GPU [0 , 1]、[2 , 3]、[4 , 5]和[6 , 7],而不是[0 , 4]、[1 , 5]、[2 , 6]和[3 , 7]。新的 PXN 特性為您提供了更大的靈活性,并簡化了模型并行性的使用。


圖 6 。 NCCL 2.12 PXN 性能改進
圖 6 對比了在使用和不使用 PXN 的情況下完成所有集合操作的時間。此外, PXN 為所有 reduce 操作提供了更靈活的 GPU 選擇。
總結(jié)
NCCL 2.12 版本顯著提高了所有 2 所有通信集體性能。 Download 最新的 NCCL 版本,并親身體驗改進后的性能。
關(guān)于作者
Karthik Mandakolathur 是 NVIDIA Magnum IO 的產(chǎn)品經(jīng)理,專注于加速分布式 AI 、數(shù)據(jù)分析和 HPC 應(yīng)用。憑借 20 多年的行業(yè)經(jīng)驗, Karthik 曾在 Broadcom 和 Cisco 擔任高級工程和產(chǎn)品職務(wù)。他在沃頓商學院獲得工商管理碩士學位,在斯坦福大學獲得工商管理碩士學位,在印度理工學院獲得工商管理學士學位。他在高性能交換架構(gòu)領(lǐng)域擁有多項美國專利。
Sylvain Jeaugey 是 NVIDIA 的高級軟件工程師,自 2015 年創(chuàng)建 NCCL 庫以來一直在開發(fā)該庫。他在大規(guī)模分布式計算方面有 15 年的經(jīng)驗。他一直致力于各種 MPI 實現(xiàn),開發(fā)和集成高速網(wǎng)絡(luò)技術(shù),并設(shè)計大型網(wǎng)絡(luò)結(jié)構(gòu)。
審核編輯:郭婷
-
gpu
+關(guān)注
關(guān)注
28文章
5298瀏覽量
136134 -
人工智能
+關(guān)注
關(guān)注
1821文章
50407瀏覽量
267304
發(fā)布評論請先 登錄
華為擁抱AI WAN邁向All Intelligence新階段
瞄準20W以內(nèi)汽車小電機市場:英飛凌發(fā)布TLE9932與TLE9934 ALL-IN-ONE芯片
中興通訊將攜全棧AI創(chuàng)新成果亮相MWC 2026
IoT智能模塊高速緩存核心IS61WV204816ALL-12B
全碳化硅 (All-SiC) 有源中點鉗位 (ANPC) 拓撲解決方案研究報告
10 INCH-D-PRIME-MV Amphenol All Sensors 板機接口壓力傳感器 AXCXL 10 DN P
SeaVerse發(fā)布全球首個AI Native平臺,“All in AI Native”引領(lǐng)AI創(chuàng)作前瞻革命
100 PSI-D-PRIME-MV-A6AAQ 板機接口壓力傳感器 Amphenol All Sensors
探索PROFET? +2 12V客戶評估套件:硬件設(shè)計與軟件應(yīng)用全解析
探索All Sensors EK - 02評估套件:簡化傳感器設(shè)計與測試流程
Amphenol All Sensors BFTM系列基礎(chǔ)壓力傳感器:高精度與緊湊設(shè)計的完美結(jié)合
天合光能智慧光儲解決方案亮相2025澳洲All Energy展會
studio編譯過程中報錯:syntax error: unexpected如何解決?
元能芯:用All-in-One芯片革新電機芯片市場
使用NCCL 2.12將所有all2all性能翻倍
評論