人工智能集群的性能,尤其是機(jī)器學(xué)習(xí)訓(xùn)練集群,受到神經(jīng)網(wǎng)絡(luò)處理單元NPUs(即GPU或TPU)之間并行計(jì)算能力的顯著影響。在我們稱(chēng)為縱向擴(kuò)展scale-up和橫向擴(kuò)展scale-out設(shè)計(jì)中,NPUs之間網(wǎng)絡(luò)的特性成為定義整個(gè)系統(tǒng)性能的關(guān)鍵因素之一。通過(guò)定義不同的并行策略,NPUs需要定期相互交換數(shù)據(jù),對(duì)模型的各個(gè)層輸出,或者梯度進(jìn)行數(shù)據(jù)通信,從而更快速地完成前向和反向的訓(xùn)練過(guò)程。
根據(jù)并行方案和機(jī)器學(xué)習(xí)框架的具體細(xì)節(jié),數(shù)據(jù)通信的要求可能會(huì)有所不同。通常,NPUs之間的數(shù)據(jù)傳輸被稱(chēng)為集合通信。集合通信原理已將其形式化為幾種類(lèi)型,具體取決于數(shù)據(jù)的初始和最終位置,以及是否需要在過(guò)程中執(zhí)行數(shù)學(xué)運(yùn)算。常用的類(lèi)型包括廣播和收集、ReduceScatter和AllGather、AllReduce和AlltoAll。操作名稱(chēng)中存在“Reduce”關(guān)鍵字表示該操作對(duì)數(shù)據(jù)進(jìn)行計(jì)算。
集合通信算子
集合通信可以通過(guò)多種算法來(lái)實(shí)現(xiàn)。其中一些算法較為簡(jiǎn)單,因此性能較低;有些算法利用操作的性質(zhì),通常是網(wǎng)絡(luò)拓?fù)洌瓿傻酶臁llReduce的知名算法包括單向環(huán)和雙向環(huán)、雙二進(jìn)制樹(shù)以及Halving-Double算法,每種算法根據(jù)NPUs的數(shù)量以及它們?nèi)绾位ミB,表現(xiàn)出不同的性能。
圖1、8個(gè)計(jì)算節(jié)點(diǎn)的AllReduce單向環(huán)
圖2、8個(gè)計(jì)算節(jié)點(diǎn)的AllReduce Halving-Double
Rank 與通信集群大小
在集合通信中,每個(gè)參與交換數(shù)據(jù)消息的單元稱(chēng)為一個(gè)Rank。在大多數(shù)實(shí)際應(yīng)用中,每個(gè)參與操作的NPU通常對(duì)應(yīng)一個(gè)Rank。集合中所有Rank總數(shù)稱(chēng)為通信集群大小,用n表示,Rank是使用從0開(kāi)始的整數(shù)ID進(jìn)行順序編號(hào)的,因此,最大的Rank ID是n - 1。在像廣播(Broadcast)和收集(Gather)這樣的集合通信操作中,有一個(gè)專(zhuān)門(mén)的發(fā)送者或接收者,稱(chēng)為根,默認(rèn)情況下使用Rank ID 0作為根。
集合通信庫(kù)
用于在人工智能集群中實(shí)現(xiàn)集合操作的軟件通常稱(chēng)作“集合通信庫(kù)”(Collective Communication Library)。其中一個(gè)最早的庫(kù) NCCL由NVIDIA開(kāi)發(fā)。NCCL有多個(gè)衍生版本,其中一些是公開(kāi)的,而其他一些則是私有的。
通信完成時(shí)間
集群完成集合通信操作的速度越快,訓(xùn)練任務(wù)就能越快地在昂貴的NPUs上進(jìn)行下一輪計(jì)算。因此,我們致力于改進(jìn)的是操作完成時(shí)間,即集合完成時(shí)間(Collective Completion Time,CCT),我們通常以秒為單位進(jìn)行測(cè)量。
通信數(shù)據(jù)大小
集合通信操作的目標(biāo)是移動(dòng)數(shù)據(jù),因此數(shù)據(jù)的大小顯著影響操作所需的時(shí)間。在集合通信基準(zhǔn)測(cè)試方法中,我們將一個(gè)Rank的通信數(shù)據(jù)大小定義為S,并以字節(jié)(B)為單位進(jìn)行設(shè)置。
根據(jù)具體的操作和實(shí)現(xiàn)方式,集合通信算法會(huì)將數(shù)據(jù)大小S劃分為多個(gè)算法數(shù)據(jù)塊,每個(gè)塊的大小為c,并且每個(gè)塊在集合的Rank之間移動(dòng)時(shí)都會(huì)遵循特定的路徑。塊的概念對(duì)于表達(dá)和理解集合操作算法的邏輯非常有用。
數(shù)據(jù)大小S參數(shù)具有幾個(gè)值得注意的特性:
在大多數(shù)集合通信操作中,所有Rank的數(shù)據(jù)大小S都是一致的。但也有一些例外,例如在廣播操作中,只有一個(gè)Rank提供輸入數(shù)據(jù)。在AlltoAll-v操作中,每個(gè)NPU的數(shù)據(jù)大小S可能不同。
每個(gè)Rank通過(guò)網(wǎng)絡(luò)發(fā)送的有效負(fù)載量D通常與S不同。這取決于具體的集合操作和所采用的算法。例如,在AlltoAll并行操作中,每個(gè)秩會(huì)保留一個(gè)大小為c = S/n的塊給自己,并通過(guò)網(wǎng)絡(luò)發(fā)送D = c * (n – 1)的數(shù)據(jù)。而在AllReduce環(huán)形操作中,每個(gè)秩將發(fā)送的數(shù)據(jù)量是D = 2 * c *(n – 1),因?yàn)檫@個(gè)操作是由ReduceScatter和AllGather兩個(gè)步驟組成的復(fù)合操作。
在真實(shí)的AI/ML訓(xùn)練作業(yè)中,集合通信操作使用的數(shù)據(jù)大小受同一作業(yè)內(nèi)部和不同作業(yè)之間的多種因素影響。由于AI集群基礎(chǔ)設(shè)施在其生命周期內(nèi)需要支持不斷變化的作業(yè),因此我們需要了解集合通信操作的性能如何隨數(shù)據(jù)大小變化。這就是為什么集合通信基準(zhǔn)測(cè)試方法會(huì)遍歷不同的數(shù)據(jù)大小,以測(cè)量每個(gè)S值的關(guān)鍵指標(biāo)的主要原因。
在AI集群中,大多數(shù)操作移動(dòng)的是位于與NPUs直接連接的內(nèi)存中的數(shù)據(jù),而不是CPU內(nèi)存中的數(shù)據(jù)。因此,我們可以通過(guò)檢查現(xiàn)代NPUs的內(nèi)存量來(lái)確定S的上限,這樣做的實(shí)際意義在于基準(zhǔn)測(cè)試。以NVIDIA H100 SXM為例,它擁有80GB的內(nèi)存。由于這部分內(nèi)存需要在AI模型的權(quán)重、訓(xùn)練數(shù)據(jù)和梯度之間共享,因此在這種情況下,32GB可能是一個(gè)實(shí)際的數(shù)據(jù)大小限制。
算法帶寬
集合通信操作領(lǐng)域的研究人員不斷發(fā)現(xiàn)新的算法,這些算法顯著提高了集合通信完成時(shí)間(CCT),這通常歸功于對(duì)底層網(wǎng)絡(luò)拓?fù)涞睦斫狻赐負(fù)涓兄S捎贑CT直接依賴(lài)于數(shù)據(jù)大小S,而S是特定于任務(wù)的,因此引入一個(gè)新的指標(biāo)來(lái)衡量算法性能是很有幫助的,這個(gè)指標(biāo)可以在不同的任務(wù)之間進(jìn)行比較。類(lèi)似于我們通過(guò)速度而不是旅行時(shí)間來(lái)比較汽車(chē)的性能,這個(gè)指標(biāo)就是算法帶寬(algbw)。它定義為數(shù)據(jù)大小S除以CCT,并以千兆字節(jié)每秒(GB/s)為單位進(jìn)行測(cè)量。
請(qǐng)注意,盡管飛機(jī)的平均速度高于汽車(chē),但由于等待時(shí)間,我們并不使用它們進(jìn)行短距離旅行。類(lèi)似地,當(dāng)數(shù)據(jù)大小太小,無(wú)法完全加載網(wǎng)絡(luò)時(shí),CCT的一大部分時(shí)間將花費(fèi)在啟動(dòng)和停止數(shù)據(jù)傳輸上。在這種情況下,algbw將不是一個(gè)有意義的指標(biāo),因?yàn)樗鼤?huì)在不同的數(shù)據(jù)大小之間顯著變化。在比較哪個(gè)算法性能更好時(shí),您可能需要回到使用CCT。
為了說(shuō)明這一點(diǎn),圖3是一個(gè)基準(zhǔn)測(cè)試輸出,其中在較小的數(shù)據(jù)大小上,CCT保持在7毫秒左右,但algbw每次數(shù)據(jù)大小翻倍時(shí)都會(huì)翻倍。另一方面,在較大的數(shù)據(jù)大小上,algbw趨于穩(wěn)定在25GB/s,而CCT則隨著數(shù)據(jù)大小的增加而繼續(xù)增加。
圖3、不同集合通信大小下的算法帶寬表現(xiàn)
注意:由于算法在執(zhí)行時(shí)實(shí)際傳輸?shù)挠行ж?fù)載D與數(shù)據(jù)大小S之間的區(qū)別,將算法帶寬(algbw)與網(wǎng)絡(luò)接口的理論速度進(jìn)行比較是不恰當(dāng)?shù)摹?/p>
總線帶寬
雖然CCT和algbw依賴(lài)于數(shù)據(jù)大小S,但通信集群大小n的影響就不那么明顯了。根據(jù)算法的不同,這種依賴(lài)性可能更直接或更間接。例如,對(duì)于AlltoAll并行操作,在保持相同數(shù)據(jù)大小的情況下增加集合中的Rank數(shù),會(huì)導(dǎo)致算法數(shù)據(jù)塊c = S / n變小。因此,更大的帶寬比例會(huì)浪費(fèi)在數(shù)據(jù)包頭上,CCT大約會(huì)增加相同的比例。相比之下,對(duì)于AllReduce環(huán)形操作,通信集群中的Rank數(shù)越多,每個(gè)數(shù)據(jù)塊為了完成環(huán)形需要穿越的跳數(shù)就越多,導(dǎo)致CCT線性增加。我們需要一個(gè)指標(biāo)來(lái)描述通信集群的性能,這個(gè)指標(biāo)與訓(xùn)練作業(yè)的大小無(wú)關(guān)。
為了這個(gè)目的,我們可以想象由集合通信算法定義的數(shù)據(jù)塊移動(dòng)類(lèi)似于汽車(chē)在城市中的移動(dòng),其中停車(chē)場(chǎng)、車(chē)道、道路和交叉口分別代表內(nèi)存、NIC、電線和開(kāi)關(guān),而汽車(chē)就是數(shù)據(jù)塊。當(dāng)與城市街道相比較時(shí),這里唯一真正的延伸是所有數(shù)據(jù)塊都沿著完全相同的模式移動(dòng),并且不會(huì)分心。有了這個(gè)類(lèi)比,我們可以很有把握地猜測(cè),汽車(chē)到達(dá)最終目的地所需的時(shí)間將很大程度上受到其路徑上最慢路段的影響——瓶頸路段。當(dāng)瓶頸路段達(dá)到其容量時(shí),需要通過(guò)的汽車(chē)數(shù)量翻倍,它們通過(guò)所需的時(shí)間也將翻倍。換句話說(shuō),瓶頸的峰值吞吐量不依賴(lài)于城市中停車(chē)場(chǎng)的數(shù)量(通信集群大小n)或汽車(chē)的數(shù)量(通信數(shù)據(jù)大小S)。
這個(gè)類(lèi)比的另一個(gè)用處是,盡管瓶頸的峰值吞吐量不依賴(lài)于相鄰街道和汽車(chē)移動(dòng)的模式(拓?fù)浜退惴ǎ衅?chē)完成旅行所需的時(shí)間將非常取決于它們所采取的路線,以及它們?cè)诔鞘兄械臄?shù)量。
總結(jié)來(lái)說(shuō),只要汽車(chē)(數(shù)據(jù)塊)以峰值數(shù)量穿越瓶頸,達(dá)到其容量(帶寬),它將決定我們城市基礎(chǔ)設(shè)施(AI集群)的性能——有效負(fù)載的移動(dòng)速率無(wú)法超越系統(tǒng)中瓶頸的峰值容量。描述AI基礎(chǔ)設(shè)施對(duì)集合通信操作瓶頸的指標(biāo)稱(chēng)為總線帶寬(busbw),并以千兆字節(jié)每秒(GB/s)為單位測(cè)量。
對(duì)比理想CCT
一些集合通信基準(zhǔn)測(cè)試工具無(wú)法深入了解底層的L1-4 OSI堆棧,因此無(wú)法在測(cè)試過(guò)程中提供網(wǎng)絡(luò)利用率的信息,也無(wú)法判斷是否還有優(yōu)化空間。在創(chuàng)建AI Data Center Builder軟件時(shí),Keysight團(tuán)隊(duì)考慮到了這一點(diǎn),并融入了對(duì)底層的洞察。KAI Collective Benchmarks應(yīng)用程序會(huì)計(jì)算每個(gè)集合通信算法的理想CCT,并將其與實(shí)際測(cè)量得到的CCT值進(jìn)行比較。因此,由KAI Collective Benchmarks產(chǎn)生的數(shù)據(jù)包含了與理想CCT值的比較,指標(biāo)形式為百分比。
圖4、KAI Collective Benchmarks 綜合結(jié)果中的理想百分比
數(shù)據(jù)塊完成時(shí)間分布
許多集合通信算法在每次Rank移動(dòng)數(shù)據(jù)塊時(shí)都展現(xiàn)出對(duì)稱(chēng)性。這是一個(gè)重要結(jié)論:當(dāng)系統(tǒng)為每個(gè)數(shù)據(jù)塊分配相等帶寬時(shí),即實(shí)現(xiàn)了帶寬公平性,此時(shí)性能最佳。缺乏公平性會(huì)導(dǎo)致數(shù)據(jù)移動(dòng)的尾延遲增加。一種評(píng)估公平性的方法是測(cè)量每個(gè)數(shù)據(jù)塊的完成時(shí)間(DCT),并報(bào)告最小值、最大值,以及第50和第95百分位數(shù)。在具有帶寬公平性的系統(tǒng)中,最小和最大DCT值應(yīng)當(dāng)較為接近。如果它們相差較大,您可以通過(guò)檢查P50和P95的結(jié)果來(lái)判斷異常值是更多地出現(xiàn)在快速還是慢速一側(cè)。這些指標(biāo)對(duì)于網(wǎng)絡(luò)工程師來(lái)說(shuō)非常熟悉,并且比學(xué)術(shù)文獻(xiàn)中提到的其他公平性指標(biāo)更容易在團(tuán)隊(duì)和組織之間使用。
請(qǐng)注意,只有在集合算法中所有數(shù)據(jù)塊的大小相等時(shí),報(bào)告DCT百分位數(shù)才是有意義的。
結(jié)論
集合通信操作的基準(zhǔn)測(cè)試是理解分布式AI基礎(chǔ)設(shè)施性能極限的基礎(chǔ)性方法。它是AI集群設(shè)計(jì)和優(yōu)化過(guò)程中尋找改進(jìn)方案的有用工具。無(wú)論是開(kāi)源還是商業(yè)實(shí)現(xiàn),這些工具都圍繞著一組共同的輸入?yún)?shù)和測(cè)量指標(biāo)進(jìn)行操作。在本文中,我們提供了這些參數(shù)的定義,并詳細(xì)闡述了它們的含義,以助力術(shù)語(yǔ)的標(biāo)準(zhǔn)化。
術(shù)語(yǔ)和定義一覽表
術(shù)語(yǔ)
Collective Operation
定義
集合通信算子,這些通信模式涉及一組進(jìn)程間的數(shù)據(jù)交換,是擴(kuò)展型AI/ML集群中網(wǎng)絡(luò)通信的基本單元,負(fù)責(zé)在GPU之間移動(dòng)數(shù)據(jù)。
單位/值
Broadcast
Gather
Scatter
ReduceScatter
AllGather
AllReduce
AlltoAll
術(shù)語(yǔ)
Rank
定義
在集合通信操作中交換消息的端點(diǎn)的標(biāo)識(shí)符。通常,一個(gè)Rank代表一個(gè)GPU。在某些情況下,一個(gè)GPU可以有多個(gè)Rank。
單位/值
從0開(kāi)始的整數(shù)
術(shù)語(yǔ)
Collective Size(n)
定義
集合通信中Rank的數(shù)量
單位/值
2或大于2的整數(shù)
術(shù)語(yǔ)
Data Size(S)
定義
集合通信操作中,單個(gè)Rank輸入的數(shù)據(jù)大小
單位/值
Bytes
術(shù)語(yǔ)
Collective Completion Time (CCT)
定義
集合通
集合通信操作完成所需的時(shí)間,尤其適用于比較不同集合通信算法在處理不同數(shù)據(jù)大小時(shí)的性能表現(xiàn)。
單位/值
秒
術(shù)語(yǔ)
Algorithm Bandwidth (algbw)
定義
一種用于比較不同數(shù)據(jù)大小下集合通信算法性能的指標(biāo)。算法帶寬(algbw)= 數(shù)據(jù)大小S / 集合完成時(shí)間(CCT)
單位/值
GB/s
術(shù)語(yǔ)
Bus Bandwidth (busbw)
定義
描述了集合通信算法在AI基礎(chǔ)設(shè)施中的瓶頸性能。該公式是特定于算法的。
單位/值
GB/s
術(shù)語(yǔ)
Ideal %
定義
將測(cè)量的集合通信完成時(shí)間(CCT)與給定算法、傳輸開(kāi)銷(xiāo)和網(wǎng)絡(luò)接口速度的最小理論值進(jìn)行比較。
單位/值
秒
術(shù)語(yǔ)
Data chunk Completion Time (DCT)
定義
在兩個(gè)Rank之間傳輸一個(gè)數(shù)據(jù)塊所需的時(shí)間。測(cè)量集合通信操作中每個(gè)數(shù)據(jù)塊完成時(shí)間(DCT)的值,并報(bào)告最小值、最大值、第50百分位數(shù)(P50)和第95百分位數(shù)(P95)有助于理解系統(tǒng)中的帶寬公平性。
單位/值
秒
關(guān)于是德科技
是德科技(NYSE:KEYS)啟迪并賦能創(chuàng)新者,助力他們將改變世界的技術(shù)帶入生活。作為一家標(biāo)準(zhǔn)普爾 500 指數(shù)公司,我們提供先進(jìn)的設(shè)計(jì)、仿真和測(cè)試解決方案,旨在幫助工程師在整個(gè)產(chǎn)品生命周期中更快地完成開(kāi)發(fā)和部署,同時(shí)控制好風(fēng)險(xiǎn)。我們的客戶(hù)遍及全球通信、工業(yè)自動(dòng)化、航空航天與國(guó)防、汽車(chē)、半導(dǎo)體和通用電子等市場(chǎng)。我們與客戶(hù)攜手,加速創(chuàng)新,創(chuàng)造一個(gè)安全互聯(lián)的世界。
-
通信
+關(guān)注
關(guān)注
18文章
6042瀏覽量
136140 -
gpu
+關(guān)注
關(guān)注
28文章
4753瀏覽量
129057 -
AI
+關(guān)注
關(guān)注
87文章
31133瀏覽量
269453 -
人工智能
+關(guān)注
關(guān)注
1792文章
47425瀏覽量
238948 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8425瀏覽量
132770
原文標(biāo)題:集合通信與AI基礎(chǔ)架構(gòu)
文章出處:【微信號(hào):是德科技KEYSIGHT,微信公眾號(hào):是德科技KEYSIGHT】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論