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