乾明 發自 凹非寺
量子位 報道 | 公衆号 QbitAI
從節點架構到網絡架構,再到通信算法,阿裡巴巴把自研的高性能AI叢集技術細節寫成了論文,并對外公布。
論文名為EFLOPS: Algorithm and System Co-design for a High Performance Distributed Training Platform,被計算機體系結構頂級會議HPCA 2020收錄。阿裡是國内唯一有論文收錄的企業,論文作者之一、阿裡資深技術專家蔣曉維在會議現場分享了論文内容。

除了展示AI叢集技術細節,他還介紹了其如何為阿裡巴巴内部業務和算法帶來價值。這一叢集已應用于阿裡巴巴計算平台的人工智能訓練平台(PAI),服務阿裡巴巴的人工智能業務的模型訓練:
能将拍立淘百萬分類大模型的訓練速度提升4倍,并首次支援千萬分類模型的訓練;在提升阿裡巴巴翻譯模型精度的同時,能将訓練時間從100小時降低至12小時。
而且與世界頂級的AI計算系統相比,阿裡的AI叢集雖然使用了性能較低的硬體資源,但表現出了相當的性能。
這是阿裡巴巴首次對外披露高性能AI叢集的性能,具體情況如何?我們根據阿裡研究團隊提供的解讀一一來看。
從業務出發,優化AI叢集架構
由于深度神經網絡的技術突破,圍繞AI的技術研究,如AI算法模型、訓練架構、以及底層的加速器設計等,引起越來越多的關注,而且應用越來廣泛,已經落地到社會生活的各個方面。
“然而極少有人從叢集架構角度探究過,AI業務的運作模式與傳統大資料處理業務的差别,以及AI叢集的架構設計應該如何優化,“阿裡研究團隊表示。
他們認為,雖然AI業務存在很強的資料并行度,但與大資料處理業務和高性能計算業務特征存在明顯的不同。核心差别有兩點:
第一,AI業務的子任務獨立性很低,需要周期性地進行通信,實作梯度的同步;第二,AI業務的運作以加速部件為中心,加速部件之間直接通信的并發度顯著高于傳統伺服器。
是以,在傳統資料中心的伺服器架構和網絡架構上運作AI業務,會存在很多嚴重的問題。
具體來說,伺服器架構問題,主要是資源配置不平衡導緻的擁塞問題,以及PCIe鍊路的QoS問題。
一般情況下,傳統伺服器配備一張網卡用于節點間通信,為了支援AI業務會配置多個GPU。
但AI訓練經常需要在GPU之間進行梯度的同步,多GPU并發通路網絡,唯一的網卡就會成為系統的瓶頸。
此外,PCIe鍊路上的帶寬配置設定與路徑長度密切相關,長路徑獲得的帶寬配置設定較低,而跨Socket通信的問題更加嚴重。
網絡架構問題,主要在于AI訓練中同步通信導緻的短闆效應。網絡擁塞本是一個非常普遍的問題,相關研究已經持續了幾十年。
但擁塞控制算法的最終目的,在于對兩個碰撞的流進行限速,使其盡快達到均分實體帶寬的目的,并不能解決AI訓練叢集的通信效率問題。
由于AI業務通信的同步性,每個通信事務的最終性能決定于最慢的連接配接。均分帶寬意味着事務完成時間的成倍提升,會嚴重影響AI通信的性能。
基于此,阿裡巴巴決定為AI業務自研高性能AI叢集。
阿裡AI叢集的關鍵技術
阿裡巴巴自研的高性能AI叢集名為EFlops,關鍵技術一共有三個:網絡化異構計算伺服器架構、高擴充性網絡架構、與系統架構協同的高性能通信庫。
為了避免網卡上的資料擁塞,他們為每個GPU提供專用的網卡,來負責與其他GPU的通信。
此外,基于Top-of-Server的設計思想,将節點内加速器之間的通信導出到節點外,并利用成熟的以太網QoS機制來保證擁塞流量之間的公平性。
研究團隊認為,随着加速器晶片計算能力的快速提升,對通信性能提出越來越高的需求,這種多網卡的網絡化異構計算伺服器架構将很快成為主流。
在網絡架構層面,EFlops設計了BiGraph網絡拓撲,在兩層網絡之間提供了豐富的鍊路資源,提供了跨層路由的可控性。
配合多網卡伺服器結構,他們在EFlops項目中提出了BiGraph網絡拓撲,其與傳統的Fat-tree拓撲有相似之處,也存在根本的差別。
與Fat-tree拓撲類似的地方在于,他們将網絡中的分為兩部分(Upper和Lower),各部分之間通過Clos架構進行互連,形如兩層Fat-tree拓撲的Spine和Leaf交換機。
與Fat-tree不同的是,他們在兩部分交換機上都可以直接接入計算伺服器;即每一個交換機都扮演了Fat-tree拓撲中的Spine和Leaf兩個角色,最大跳步數為3。
也給BiGraph拓撲帶來了兩個重要的特性:
一方面,在兩層交換機之間提供了豐富的實體鍊路資源。在N個計算伺服器的系統中,兩層交換機之間至少存在着N/2個實體鍊路可供使用。另一方面,接入不同層次的任意兩個計算伺服器之間的最短路徑具有唯一性。
是以,他們可以充分利用這一特性,在通信庫甚至更高層次進行伺服器間通信模式的管理。比如,在建立連接配接的時候,選擇合适源和目的伺服器,來控制網絡上的路徑選擇。
想要說清楚這一點,需要引入一個新的概念:Allreduce——資料并行訓練場景下的最主要集合通信操作。
其中常用的通信算法有Ring-based(Ring)、Tree-based(Tree)和Halving-Doubling(HD)等。
在阿裡巴巴的這篇論文中,主要關注的是Ring和HD,前者是應用範圍最廣的算法之一,後者是他們在這一研究中的優化對象。
Ring和HD算法在資料傳輸量上沒有差別,都是2S;其中S是Message的大小。從通信次數角度看,Ring算法需要N-1個Step的通信,而HD算法隻需要log2N個Step;其中N是參與節點個數。
而Ring算法隻需要N個連接配接,而HD算法需要N*log2N個連接配接。需要特别指出的是,HD算法的每個Step隻需要N/2個連接配接。
結合BiGraph拓撲的特性進行分析,可以看到:BiGraph拓撲兩層交換機之間存在N/2個實體鍊路,而HD算法每個step需要N/2個連接配接。
BiGraph拓撲兩層交換機之間最短路徑的确定性,提供了一種可能性:将HD算法的連接配接和BiGraph拓撲的實體鍊路進行一一映射,避免它們之間的鍊路争用,以徹底解決網絡擁塞問題。
基于此,他們也進一步提出了Rank映射算法,将HD算法的通信連接配接一一映射至BiGraph網絡的實體鍊路,避免了網絡的擁塞,該算法Halving-Doubling with Rank-Mapping(HDRM)已經在阿裡定制的集合式通信庫ACCL實作。具體步驟如下:
如此叢集,性能如何?
為了評估EFlops系統的性能,他們部署了16個節點,共計64個GPU的訓練叢集。其中每個節點配置了4個Tesla V100-32G的GPU,以及4個ConnectX-5 100Gbps網卡。
網絡環境按照BiGraph拓撲進行設計,其中8個實體交換機劃分為16個虛拟交換機,分别部署于BiGraph的兩層。
研究團隊用MLPerf的ResNet50模型評估了叢集性能,具體方式是在達到指定準确率之後,計算機關時間圖檔處理數量。
下圖呈現了EFlops系統和單網卡系統的性能對比,包括全系統吞吐量和單GPU平均吞吐量。
可以看到,EFlops系統的性能基本達到了線性擴充,而單網卡系統的機關吞吐量明顯随着規模逐漸下降。
與世界頂級的AI計算系統相比,EFlops雖然使用了性能較低的硬體資源(V100-PCIe性能低于V100-SXM2約10%)也表現出了相當的性能。
此外,他們還分析了阿裡巴巴内部應用的性能收益。以拍立淘百萬分類模型為例,EFlops系統可以提升通信性能5.57倍,端到端性能34.8%。
因為通信量占比不高,HDRM算法提升通信性能43.5%,整體性能4.3%。對BERT模型而言,通信量明顯高于拍立淘百萬分類模型,僅HDRM算法就可以提升通信性能36%,端到端性能15.8%。
研究團隊表示,可以預見,随着系統規模進一步增長,EFlops的性能收益将顯著提升。基于64節點叢集的收益,他們進一步搭建了512 GPUs的高性能AI訓練叢集。
初步的評測結果顯示,基于ImageNet訓練集,在Resnet50模型上,EFlops叢集仍然能保持接近線性的擴充性。
阿裡巴巴基礎設施團隊打造
EFlops叢集一共有17名阿裡的技術專家參與打造,大多來自阿裡巴巴基礎設施團隊,平頭哥團隊提供支援。
論文的第一作者是董建波,畢業于中科院計算所,現在是阿裡巴巴進階技術專家。論文的通訊作者是謝源——阿裡巴巴達摩院進階研究員、平頭哥首席科學家。
謝源是計算體系結構、晶片設計領域大牛級别的存在,研究方向是計算機體系結構、內建電路設計、電子設計自動化、和嵌入式系統設計,已發表過300多篇頂級期刊和會議論文。
在獲得IEEE、AAAS、ACM Fellow稱号之後,他在2月28日再次獲得國際學術榮譽——IEEE CS 2020年度技術成就獎。
本文來源:量子位微信公衆号
點選檢視原文