EFLOPS伺服器架構
傳統伺服器架構的瓶頸主要來自內部PCIe Fabric樹形互連。首先,傳統的數據中心伺服器通常只配備一個網路介面(獨立網卡或者Bond網卡),當該伺服器配備多個加速部件(比如GPU)並通過網路介面並發傳輸數據時,就會面臨很大的流量匯聚,使其成為系統的瓶頸。而這種同步式的網路訪問,在分散式AI訓練任務中非常常見。AI訓練的數據集一般被劃分為多個批次,每個批次的數據處理完成之後,所有參與計算的NPU加速器都要進行梯度的同步。跨伺服器的NPU梯度同步操作都要通過網路介面進行通信。這種周期性的同步式網路介面訪問,勢必導致網路介面上的擁塞。類似的埠擁塞還會發生在PCIe樹形拓撲的跟節點處。分散式AI訓練業務在每個批次的數據處理完成之後,會同步載入下一批次數據,導致內存的並發訪問。
其次,PCIe Switch埠上的擁塞可能導致整體通信效率的降低。當NPU1和NPU3同時向NPU2發送數據時,將會在與NPU2直接相連的PCIe Switch埠上形成擁塞。由於NPU1和NPU3到NPU2的通信距離不同,導致二者之間具有顯著的帶寬差異。而AI訓練任務的梯度AllReduce是一個全局性的同步操作,其完成時間往往受限於最慢的鏈路,所以這種鏈路帶寬的不公平性也會導致系統性能的下降。
最後,出於種種原因,PCIe交換晶元往往只會實現一個虛擬通道,導致QoS能力缺失,這就使得伺服器內各種流量沒有隔離能力,形成帶寬的無序爭搶。
EFLOP伺服器架構重點解決上述互連問題,伺服器配備了與加速器(NPU)等量的網卡(NIC),並將NPU和NIC進行綁定配對,每一對綁定的NPU和NIC處於同一PCIe Switch之下,約束NPU的網路通信只能經由自己綁定的NIC。這樣,NPU的網路通信流量全部被局限在PCIe Switch之內,避免了網路介面上的擁塞。針對PCIe Switch引入的擁塞問題,在PCIe流量較大的情況下,禁用NPU之間進行跨PCIe Switch通信,使其通過網路介面進行數據交換,利用網路協議棧的流量控制機制來降低系統的擁塞程度。值得強調的是,網路化伺服器架構是一個開放的架構,可為各種加速器提供高速互連,對於自帶直連匯流排(如英偉達的 NVLink)的加速器同樣兼容,利用其直連匯流排實現更高帶寬通信。
EFLOPS系統互連架構
系統互連架構
數據中心大多採用Clos拓撲,提供了高對剖帶寬、可擴展的基礎通信能力,但由於路徑選擇的哈希演算法總是存在碰撞的可能,使得網路中的擁塞無法避免。相比傳統僅優化擁塞控制演算法的思路,EFLOPS從更上層架構進行網路流量管理,以徹底解決網路的擁塞問題。
配合EFLOPS多網卡伺服器結構,阿里巴巴工程師們出了BiGraph扁平化拓撲,分為上下兩組,每組的交換機與另一組交換機全互連,同組交換機之間的數據交換需要另一組交換機轉發,這樣每一個交換機都扮演了Clos網路中的Spine和Leaf兩個角色,最大跳步數僅為3,BiGraph拓撲具有如下兩個重要的特性。
1.它在兩層交換機之間提供了豐富的物理鏈路資源。在N個計算伺服器的系統中,兩層交換機之間至少存在著N/2個物理鏈路可供使用。這意味著我們有機會將 Halving-Doubling AllReduce演算法的所有連接一一映射到可用的物理鏈路上,避免它們之間的鏈路爭用,以徹底解決網路擁塞問題。
2.接入不同層次的任意兩個計算伺服器之間的最短路徑具有唯一性。工程師可以充分利用這一特性,在通信庫甚至更高層次進行伺服器間通信模式的管理。比如,在建立連接的時候,選擇合適源和目的伺服器,來控制網路上的路徑選擇。
Re-ranking Halving-Doubling演算法示意圖
通信庫軟體是發揮BiGraph拓撲優勢的關鍵,阿里巴巴自研了ACCL(Alibaba Collective Communication Library)集合通信庫,首先它在物理網路中構建出BiGraph虛擬拓撲,然後基於該虛擬結構,實現無擁塞集合通信演算法。無擁塞集合通信演算法是阿里巴巴在標準Halving-Doubling演算法的基礎上,提出的一套新的Re-ranking Halving-Doubling演算法,實現了通信連接與BiGraph拓撲的完美映射,從根本上避免選路衝突。
相比最流行的Ring AllReduce演算法,EFLOPS的演算法更利於大規模性能擴展。Ring AllReduce非常適合傳統單網卡伺服器架構,每一步需要傳輸的數據量少而且採用單向環式的網路傳輸,但需要O(N)步執行,延遲隨系統規模擴大而線性增加。 Halving-Doubling演算法則是通過遞增和二分的方式快速地實現數據傳輸,僅需要O(logN)步,但每一步要傳輸的數據量比 Ring AllReduce更大,這一特徵恰好與EFLOPS的互連網路能力適配。
Re-ranking Halving-Doubling演算法的核心是根據每個進程的物理位置,重新排列該進程對應的排名,結合節點之間的同步策略,使得任何時刻任何點到點的數據傳輸都能獨佔一條物理鏈路,從而有效地避免了網路擁塞,理論上能夠達到線速的傳輸。以8台伺服器,每台伺服器包含4個加速器的系統為例,對該演算法進行說明,其中方形表示交換機,圓圈表示加速器,圓圈裡的數字表示重新排列後新的排名。連線代表交換機之間的物理連接,不同顏色代表不同步驟下使用的路徑。按照重新排列後,可以看到演算法的任何一個步驟,同一個主機的四個加速器走的都是不同的直連鏈路,這樣保證了數據經過的路徑最短,且加速器間的數據傳輸路徑沒有衝突。
通信性能對比圖
EFLOPS AI集群性能
只要在多機多卡環境,不需要太大的規模,EFLOPS集群架構就可以發揮明顯的性能優勢。在一個64張GPU卡(NVDIA V100 32G 顯存)的小規模集群中,AllReduce集合通信性能測試表明,採用不同的AllReduce演算法,EFLOPS集群的硬體設計可以將通信效率提升2.3~11.3倍。EFLOPS演算法架構協同演算法可以將通信效率進一步提升1.4~7.3倍。隨著系統規模的增長,網路擁塞概率的增加,EFLOPS AI集群的通信性能優勢更明顯。
在該64 GPU卡測試場景中,拍立淘百萬分類 大模型的端到端性能提升了2.2倍。對自然語言處理領域廣泛應用的BERT預訓練模型進行評測在EFLOPS集群中,BERT的通信開銷得到了大幅降低,僅使用EFLOPS硬體即可獲得2倍通信性能的提升,疊加ACCL通信庫支持,整體性能提升了2倍,通信性能提升了4倍。
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/250137.html
微信掃一掃
支付寶掃一掃