AI 和科學計算是分布式計算問題的典型示例。這些問題通常計算量巨大,計算很密集,無法在單臺機器上完成。于是,這些計算被分解為并行任務,由分布在數千個 CPU 或 GPU 的計算引擎上運行。
為了實現可擴展的性能,需要把工作負載劃分在多個節點,如訓練數據、模型參數或兩者一起劃分。然后,這些節點之間需要頻繁交換信息,例如模型訓練中反向傳播期間新處理的模型計算的梯度。這些通信往往需要高效的集合通信,如 all-reduce、broadcast 以及 gather 和 scatter 等操作。
這些集合通信模式可確保整個分布式計算中模型參數的同步和收斂。這些操作的效率對于最大限度地減少通信開銷和最大限度地提高并行計算效率至關重要,優化不佳的集合通信可能會導致瓶頸,限制可擴展性。
瓶頸源于以下幾個因素:
延遲和帶寬限制:集合操作依賴于節點間的高速數據傳輸,而這些高速數據傳輸受到物理網絡延遲和帶寬的限制。隨著系統規模的增加,要交換的數據量也隨之增加,通信所花費的時間成為至關重要的因素。
同步開銷:許多集合操作需要同步點,確保所有參與的節點必須先達到相同的狀態,才能繼續下一步操作。如果某些節點速度較慢,將拖累整個系統延遲,從而導致效率低下,被稱為 stragglers。
網絡爭用:隨著越來越多的節點試圖同時通信,網絡變得更加擁塞,對帶寬和網絡資源的爭奪也在增加,這進一步降低了集合操作的性能。
非優化通信模式:一些集合通信算法(例如基于樹的歸約操作或基于 Ring 的 all-reduce 操作)并非始終針對大規模系統進行了良好優化,導致可用資源的低效利用和延遲增加。
克服這一瓶頸需要先進的網絡技術(例如 InfiniBand 和 RDMA)和算法優化(例如分層 all-reduce 或流水線技術),以最大限度地減少同步延遲、減少資源爭用并優化分布式系統之間的數據流。
創建 NVIDIA SHARP
關鍵的集合通信使所有計算引擎能夠相互交換數據。在網卡或服務器上管理這類通信需要交換大量數據,并且會受到延遲或集合性能差異的影響,稱為服務器抖動。
將管理和執行這些集合通信的任務遷移到網絡交換機上,可以將傳輸的數據量減半,并最大限度地減少抖動。NVIDIA Scalable Hierarchical Aggregation and Reduction Protocol(SHARP)技術實現了這一理念,并引入了網絡計算概念。它集成在交換機 ASIC 中,旨在加速分布式計算系統中的集合通信。
SHARP 已隨著NVIDIA InfiniBand網絡一起推出,可將集合通信操作(如 all-reduce、reduce 和 broadcast 等)從服務器的計算引擎卸載到網絡交換機。通過直接在網絡中執行歸約(如求和、平均等),SHARP 可以顯著改進這些操作并提升整體應用程序性能。
NVIDIA SHARP 代際演進
第一代 SHARP 專為科學計算應用而設計,側重于小消息歸約操作。它隨著NVIDIA EDR 100Gb/s 交換機產品推出,并迅速得到行業領先 MPI 通訊庫的支持。SHARPv1 小消息歸約可以并行支持多個科學計算應用。
MVAPICH2 是 MPI 標準的開源實現,專為 HPC 場景而設計。負責 MVAPICH MPI 通信庫的俄亥俄州立大學團隊在德克薩斯先進計算中心 Frontera 超級計算機上驗證了 SHARP 的性能。MPI AllReduce 的性能提高了 5 倍,而 MPI Barrier 集合通信的性能則提高了 9 倍。
第二代 SHARP 隨著NVIDIA HDR 200Gb/s Quantum InfiniBand 交換機推出,增加了對 AI 工作負載的支持。SHARPv2 支持大消息規約操作,每次支持一個工作負載。這一版本進一步提升了該技術的可擴展性和靈活性,支持更復雜的數據類型和集合操作。
2021 年 6 月 NVIDIA MLPerf 提交的結果展示了 SHARPv2 的性能優勢,其中 BERT 的訓練性能提高了 17%。掃描二維碼,參閱技術博客:
NVIDIA 副總裁兼人工智能系統首席架構師 Michael Houston在加州大學伯克利分校的機器學習系統課程中介紹了 SHARPv2 的 AllReduce 性能優勢。
SHARPv2 將 AllReduce 的帶寬性能提高了一倍,將 BERT 訓練性能提高了 17%。
圖 1.加州大學伯克利分校機器學習系統課程示例(來源:分布式深度學習,第 II 部分:擴展約束)
第三代 SHARP 隨著NVIDIA Quantum-2 NDR 400G InfiniBand平臺推出。SHARPv3 支持多租戶 AI 工作負載網絡計算,與 SHARPv2 的單工作負載相比,可同時支持多個 AI 工作負載的并行使用。
Microsoft Azure 首席軟件工程師 Jithin Jose 在“Transforming Clouds to Cloud-Native Supercomputing:Best Practices with Microsoft Azure”專題會議上展示了 SHARPv3 性能。Jithin 介紹了 InfiniBand 網絡計算技術在 Azure 上的應用,并展示了 AllReduce 在延遲方面取得數量級的性能優勢。
圖 2. SHARPv3 的 AllReduce 延遲性能
端到端 AI 系統優化
SHARP 強大功能的經典示例是 allreduce 運算。在模型訓練期間,多個 GPU 或節點之間需要進行梯度求和,SHARP 在網絡中實現梯度求和,從而無需在 GPU 之間或節點之間進行完整的數據集傳送。這縮短了通信時間,從而加快 AI 工作負載的迭代速度并提高吞吐量。
在網絡計算和 SHARP 時代到來之前,NVIDIA Collective Communication Library(NCCL)通信軟件會從圖中復制所有模型權重,執行 all-reduce 運算來計算權重之和,然后將更新的權重寫回圖,從而產生多次數據復制。
2021 年,NCCL 團隊開始集成 SHARP,引入了用戶緩沖區注冊。這使 NCCL 集合操作能夠直接使用指針,從而消除了在此過程中來回復制數據的需求,提高了效率。
如今,SHARP 已與廣泛用于分布式 AI 訓練框架的 NCCL 緊密集成。經過優化的 NCCL 充分利用 SHARP 的能力,將關鍵的集合通信操作卸載到網絡,從而顯著提高分布式深度學習工作負載的可擴展性和性能。
SHARP 技術有助于提高分布式計算應用程序的性能。SHARP 正被 HPC 超級計算中心用于科學計算工作負載,也被人工智能(AI)超級計算機用于 AI 應用程序。SHARP 已成為實現競爭優勢的“秘訣”。一家大型服務提供商使用 SHARP 將其內部 AI 工作負載的性能提高了 10% 到 20%。
SHARPv4
SHARPv4 引入了新算法,可支持更多種類的集合通信,這些通信類型已用于領先的人工智能訓練應用。
SHARPv4 將隨著NVIDIA Quantum-X800 XDR InfiniBand 交換機平臺一起發布,從而將網絡計算能力提升至更高水平。
-
cpu
+關注
關注
68文章
10863瀏覽量
211747 -
NVIDIA
+關注
關注
14文章
4986瀏覽量
103046 -
網絡
+關注
關注
14文章
7565瀏覽量
88775 -
Sharp
+關注
關注
0文章
6瀏覽量
8995
原文標題:利用 NVIDIA SHARP 網絡計算提升系統性能
文章出處:【微信號:NVIDIA-Enterprise,微信公眾號:NVIDIA英偉達企業解決方案】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論