天天看點

網絡架構如何支援超萬卡的大規模 AI 訓練?| AICon

作者:InfoQ

作者 | 席永青

策劃 | AICon

審校 | 高玉娴

AI 訓練場景的算力 Scaling 核心是網絡,依賴于大規模、高性能的資料中心網絡叢集來實作算力的規模擴充,為此,阿裡雲設計了 HPN7.0 架構系統,基于 Ethernet 來建構超大規模、極緻性能的網絡互聯。

本文整理自阿裡巴巴資深網絡架構師席永青在 AICon 2024 北京【大模型基礎設施建構】專題的演講“網絡驅動大規模 AI 訓練 - 阿裡雲可預期網絡 HPN 7.0 架構”,内容經 InfoQ 進行不改變原意的編輯。

在 8 月 18-19 日即将舉辦的 AICon 上海站,我們也設定了【大模型訓練以及推理加速】專題,本專題将全面剖析大模型訓練和推理過程中的關鍵技術與優化政策。目前大會已進入 8 折購票最後優惠期,感興趣的同學請鎖定大會官網:https://aicon.infoq.cn/2024/shanghai/track

大家好,我是席永青,來自阿裡雲。阿裡雲的 PAI 靈駿想必大家都熟悉,已經是 AI 領域的标杆算力平台,服務了衆多知名的 AI 大模型公司。我有幸負責靈駿智算叢集網絡架構設計。今天非常高興有機會在 AICon 這個優秀的平台上與大家交流,希望能夠與各位進行深入的探讨。

我在阿裡雲工作已經有近十年的時間,專注于資料中心網絡架構和高性能系統的設計。從 2021 年開始,我專注于 AI 智算領域,負責智算叢集網絡的規劃演進。在大模型還未如此火熱之前,阿裡雲就開始設計 AI 計算的萬卡叢集。回顧整個過程,智算最初在自動駕駛領域應用較多,許多自動駕駛客戶希望通過 AI GPU 叢集進行視覺模型訓練,在 2021 年阿裡雲就非常有遠見地建構了第一代萬卡叢集,當時我們稱為 HPN 6.0。

這幾年來,從網絡到 GPU、機器、整個 IDC,再到平台系統和上層 AI 模型架構,AI 基礎設施領域的發展速度非常快。我有兩點明顯的感受:第一,随着 GPT 的爆發,我們幾乎每天都需要更新知識庫,雖然網絡是底層技術,但也需要密切關注模型發展和架構變化帶來的對網絡使用上的變化,也包括 GPU 硬體更新疊代對網絡互聯和帶寬的影響等。第二,叢集規模的迅速變化,從一開始的千卡 GPU 到現在萬卡十萬卡規模,如果沒有前瞻性的技術儲備和規劃,基礎設施将面臨巨大的挑戰。

我今天要分享的内容主要分為四個部分,首先我會介紹高性能網絡系統的發展曆程以及它目前所處的階段。接着,我會探讨在建構大規模 GPU 叢集,比如萬卡甚至十萬卡叢集時,對于網絡來講最關鍵的要素是什麼。接下來,我将重點介紹阿裡雲 HPN 7.0 架構,它是阿裡雲 PAI 靈駿智算叢集的核心網絡技術。最後,我将展望以 GPU 為中心的基礎設施及其高性能網絡系統的未來發展趨勢。

在座的可能有些是網絡領域的專家,有些可能是更上層的系統、AI 平台或算法的專家,還有一些可能是 GPU 領域的專家,希望在今天的分享中,我能回答大家三個問題。第一個問題是網絡對于 AI 計算意味着什麼,網絡在整個 AI 計算系統中扮演的角色以及它的重要性。第二個問題,如果你的公司正在做 AI 模型相關工作,無論是在建構大模型平台還是自行研發大模型,基礎設施網絡的方向應該如何選擇。第三個問題是,一旦确定了網絡方向,網絡方案和一些關鍵技術點應該如何實施。

高性能網絡系統進入可預期時代

讓我們回顧一下網絡的整個發展曆程。在 2000 年左右,網際網路剛剛興起時,網絡主要是由裝置供應商提供的基礎設施,用于支撐 IT 業務系統。那時,資料中心開始起步,電商業務如淘寶,搜尋業務如百度、Google 等開始規模化使用資料,産生對資料中心大規模計算的需求。那時,資料中心内部主要使用 TCP 協定,那時的 TCP 能夠滿足算力連接配接服務的需求,随着摩爾定律的持續推進,CPU 不斷更新,TCP 的能力也随之提升,網絡并沒有成為瓶頸。

随着雲計算和大資料的興起,網絡進入了第二個發展階段。在這個階段,因為叢集規模的擴大,網絡的規模和穩定性要求以及帶寬需求都在增加。這時,網絡進入了軟體定義網絡(SDN)的時代,這是許多網絡專業人士都熟悉的一個時代,誕生了許多新技術,也湧現了許多網絡領域的創業公司。

随着雲計算資料中心的進一步擴大,AI 智算時代逐漸到來。智算叢集與傳統雲計算資料中心有很大的不同,它對網絡的要求也截然不同。這也是我接下來要分享的重點,希望帶大家了解為什麼在 AI 資料中心中,網絡如此重要,網絡在其中扮演了多麼關鍵的角色。我們目前正處于第三個階段,這個階段的網絡技術架構的發展将決定 AI 計算規模化發展的趨勢,這是接下來讨論的重點。

在讨論叢集算力中網絡所扮演的角色之前,我們首先需要明确 AI 基礎設施的關鍵要求。對于 AI 基礎設施來說,一個至關重要的要求是訓練時間。訓練時間對于業務創新至關重要,因為它直接關系到公司是否能高品質得到 AI 模型,是否能快速将産品推向市場,同時這個過程中訓練時間所帶來的創新疊代效應也将更加明顯。

訓練時間的關鍵因素包括模型的時間加上中斷時間。其中模型訓練的時間,與整體計算量有關,在模型、資料集确定的情況下,這是一個固定值,這個算力需求的總量,除以叢集的算力,就是模型訓練的時間。此外,還需要考慮中斷時間,這可能包括模型調整、資料調整或因為故障導緻的訓練暫停進而從上一個 checkpoint 恢複。

叢集算力與通信效率密切相關。組成 AI 訓練叢集的千卡、萬卡 GPU 是一個整體,所有人在協同完成同一個計算的任務。我們往往通過增加 GPU 的規模來增加叢集的總算力,比如從 1000 張 GPU 增加到 2000 張、4000 張,整個叢集所表現出的算力是否還能保持“單 GPU 乘以 GPU 數量”的算力,這是我們通常所說的線性比。這個線性比怎麼做到最優,核心是通過高性能的網絡系統來實作的。如果網絡出現問題,哪怕是影響到一塊 GPU 的網絡問題,都會導緻整個叢集的任務變慢或者停下來。是以,網絡在“叢集算力”中扮演着至關重要的角色,它不僅關系到算力的線性擴充,還直接影響到訓練任務的穩定性和效率。

網絡架構如何支援超萬卡的大規模 AI 訓練?| AICon

AI 計算中的通信模型與傳統計算有着顯著的不同。AI 計算過程是疊代,包括計算、通信、同步,然後再回到計算。以模型訓練過程為例,首先将模型所需的資料加載到 GPU 上,然後 GPU 進行前向計算、反向計算,在反向計算完成後,關鍵的一步是同步模型收斂的梯度參數到每一個 GPU。這樣,在下一輪的資料訓練開始時,所有的 GPU 都能夠從最新的模型參數開始疊代,這樣将整個參數收斂到我們期望的結果。

在這個過程中,網絡要做的核心工作對梯度進行全局同步。在每一輪的疊代計算中,都需要将梯度資料同步。而圖中藍色部分所表示的,正是網絡所承擔的工作。網絡負責在各個 GPU 之間傳輸和同步這些梯度資料,確定每個 GPU 都能夠接收到最新的模型參數,進而進行有效的并行計算。

網絡架構如何支援超萬卡的大規模 AI 訓練?| AICon

網絡在 AI 計算中的重要性展現在它對算力規模擴充的影響上。當算力規模擴大時,如果網絡的線性比下降,實際展現出來的算力也會随之下降。如果我們将 GPU 的數量從 128 張增加到 1024 張、4096 張,再到 1 萬張,理想情況下,隻要擴充 GPU 規模,就能獲得相應的算力提升。但實際情況往往并非如此。網絡在梯度同步過程中需要時間,這個時間的長短直接影響到 GPU 在計算過程中的等待時間,尤其随着規模的擴充,梯度同步所需要的網絡交換資料量也會變大,網絡通信的時間也會變長,相當于損失了 GPU 算力。好的網絡架構設計,高性能的網絡系統,可以做到随着規模的增加仍然保持較好的線性比,充分發揮大規模 GPU 的算力,網絡性能即規模化的算力。

GPU 叢集對網絡的關鍵要求

傳統網絡叢集設計不再适用 AI 計算

在 AI 計算中,GPU 叢集對網絡有着更高的性能要求,希望網絡在算力擴充過程中能夠保持高效的通信。這引出了一個問題:GPU 叢集對網絡提出了哪些關鍵要求?

首先,我們可以得出一個結論,即傳統的網絡叢集已不再适用于 AI 計算。過去 20 年左右,資料中心的核心算力主要來自 CPU。如果我們觀察 CPU 系統和網絡系統的組成,可以發現幾個特點:CPU 系統通常是單張網卡的,從 CPU 通過 PCIe 到網卡出口,内部沒有特殊的網絡互聯。CPU 系統的單機帶寬最大到 200G 就已經足夠,因為它們主要服務于 APP/Web 類型的應用,這些應用需要進行網際網路通路和資料中心内機器的協同工作,處理各種流量。

GPU 網絡的情況已經發生了很大變化。每個 GPU 都有自己的内部互聯,例如 NVIDIA 的 A100 或 H800,它們内部的 NVLink 互聯可以達到 600GB 甚至 900GB。這種内部互聯與外部以太網網絡叢集設計之間存在耦合關系。GPU 是單機多網卡的,單機内的多張網卡之間有高速互聯,單個伺服器的帶寬可以達到 3.2T,與通用 CPU 計算帶寬相比至少有 6 到 8 倍的關系。GPU 需要使用 GPU Direct RDMA 來實作顯存之間的資料遷移,并且需要超短的 RTT(往返時延)。

是以,在 AI 場景下,傳統的資料中心叢集設計很難發揮其作用。GPU 叢集需要網絡能夠支援更高的帶寬、更低的延遲和更高效的通信機制,以滿足 AI 計算的需求。

網絡架構如何支援超萬卡的大規模 AI 訓練?| AICon

在傳統的資料中心叢集中,任務模式通常包括計算、存儲以及用戶端 / 伺服器服務。這些服務之間需要建立大量的會話連接配接來交換資料,而這些連接配接的數量通常取決于使用者量和負載等因素。是以,這些連接配接的數量很高,流量趨勢會随着業務負載的變化而變化。例如,在淘寶上,網絡流量的高低峰與交易高峰密切相關。

而在 AI 計算中,特别是在模型訓練過程中,網絡表現出的是周期性的行為。計算、通信和同步循環是連續不斷的過程。例如,一個 400G 的網卡在每一輪計算疊代的通信部分可以在瞬間将網絡帶寬用滿。

網絡的任務是盡可能縮短計算的等待時間,這樣,GPU 就可以更充分地發揮其 Tensor Core 的能力來進行計算任務,而不是浪費在等待資料同步上。是以在 AI 模型訓練任務中,尤其是在大型 AI 模型的訓練中,網絡表現出的特點是高并發和高突發流量。

網絡架構如何支援超萬卡的大規模 AI 訓練?| AICon

在讨論網絡連接配接數量的特點時,我們可以看到通用計算和 AI 訓練叢集之間存在顯著差異。在通用計算中,采用的通常是用戶端 / 伺服器模式,連接配接數量與使用者的請求量和業務模型的設計緊密相關,可能會非常大。例如,一台伺服器上可能有高達 10 萬級别的 HTTP 連接配接。

在 AI 訓練叢集中,一個網卡上的連接配接數量卻非常固定,通常隻有百級别連接配接。從訓練任務開始的那一刻起,每一輪對網絡的操作都是相同的。在每個循環中,活躍的連接配接數量以及所需的連接配接數量都非常少。連接配接數量少在網絡上可能會引起 HASH 問題,這是我在後續讨論 HPN 7.0 設計時會重點提到的一個關鍵問題。HASH 問題是目前網絡領域在 AI 計算中需要解決的核心問題之一。簡單來說,連接配接越多,熵就越大,在選路徑時分散均衡的機率也更大。而當連接配接數量減少時,HASH 問題就會變得更加明顯。

AI 叢集高性能網絡系統關鍵要求

當我們深入探讨 AI 網絡系統時,如果從端到端的角度審視 AI 系統的網絡構成,我們可以發現在 AI 訓練過程中,有三個非常關鍵的元件。

  1. 叢集架構設計:叢集架構雖然看起來隻是一張拓撲圖,但實際上它決定了實體帶寬的使用和路徑的簡化程度。這個架構直接影響到模型訓練過程中的網絡 HASH、時延和帶寬。就像城市規劃中的道路規劃一樣,隻有設計得當,交通(在這裡比喻為資料包)才能高效運作。
  2. 端到端傳輸協定:它決定了資料包在網絡中的傳輸效率。就好像交通網絡的效率,需要每輛車都足夠安全足夠快,同時也要避免交通擁堵的發生。傳輸協定需要考慮傳輸效率、重傳、流控等因素以確定高效傳輸。
  3. 監控運維和資源管理系統:雖然在今天的分享中不會詳細讨論,但這個系統非常關鍵。整個系統依賴于監控運維的能力進行快速的問題發現,性能分析,和問題解決。
網絡架構如何支援超萬卡的大規模 AI 訓練?| AICon

在 AI 計算網絡設計中,如果我們将前述的三個部分進一步拆解,會發現在 AI 訓練過程中,網絡有四個關鍵點。

  • 叢集架構設計:合理的叢集架構設計是重中之重。這個設計決定了帶寬和規模能達到的程度,比如是連接配接千卡、萬卡還是 10 萬卡,帶寬是 3.2T、6.4T 還是更大,網絡層級是一層、兩層還是三層,以及計算和存儲的布局等。這些因素都會影響 AI 訓練中疊代時間或每秒樣本數。
  • 點到點傳輸協定:在叢集設計的基礎上,點到點之間需要使用最快的協定來實作梯度傳輸。這要求協定能夠實作直接記憶體通路(DMA),減少拷貝操作,實作大帶寬和低延遲。目前,無論是 RoCEv2 還是 IB,DMA 技術已經實作了這些能力,協定棧已經寫入硬體,實作了零拷貝操作。
  • incast 問題:在訓練通信過程中,會出多對 1 的資料互動場景,這會導緻尾跳網絡出口成為瓶頸。如果沒有有效的流控方法,這會在網絡出口形成隊列堆積,導緻緩沖區溢出發生丢包,嚴重影響通信效率。流控的目标是保持緩沖區的能力足夠不會溢出,同時確定流量帶寬始終 100% 輸出。
  • 網絡 HASH 問題:由于 AI 計算流量波動大,帶寬高,瞬間可以打滿一個 400G 端口,但流的數量又非常少,這使得網絡路徑上的 HASH 不均勻的機率很大,這導緻中間路徑的不均衡,産生丢包、長尾,影響整體通信效率。

在 AI 訓練中,長尾問題是非常明顯的,它具有木桶效應。如果在一個疊代中有 1000 張卡,其中 999 張已經傳輸完畢,但有 1 張卡的梯度傳輸慢了,那麼整個訓練過程都要等待這張卡。是以,無論是 HASH 還是流控,目标都是補齊木桶的短闆,充分利用帶寬的同時降低長尾,確定整個網絡能夠實作高帶寬、低延遲時間和高使用率的統一狀态。

網絡架構如何支援超萬卡的大規模 AI 訓練?| AICon

阿裡雲 HPN 7.0 架構:AI 計算網絡叢集架構演進

在審視了 GPU 叢集對網絡的關鍵要求之後,讓我們來探讨阿裡雲的 HPN 7.0 架構是如何解決這些問題的,以及它是如何提高模型訓練的效率,達到更極緻的性能。

阿裡雲從去年年初開始設計研發 HPN7.0,在去年 9 月份上線規模化,是專為 AI 設計的高性能計算叢集架構。這個架構的特點是單層千卡、兩層萬卡,存算分離。

網絡架構如何支援超萬卡的大規模 AI 訓練?| AICon
  1. 千卡 Segment 設計:我們實作了一個設計,允許 1000 張 GPU 卡通過單層網絡交換完成互聯。在單層網絡交換中,由于是點到點連接配接,是以不存在 HASH 問題。在這樣一個千卡範圍内,網絡可以發揮出極緻的性能,測試結果表明,這種設計下的計算效率是業界最優的。
  2. 兩層網絡實作萬卡規模:通過兩層網絡結構,我們能夠支援多達十幾個千卡 segment,進而實作萬卡規模的網絡互動。兩層網絡不僅減少了時延,還簡化了網絡連接配接的數量和拓撲。在三層網絡結構中,端到端的網絡路徑數量是乘數關系,而兩層網絡隻有兩跳,簡化了路徑選擇,提高了哈希效果。
  3. 存算分離。計算流量具有明顯的規律性,表現為周期性的波動,我們的目标是縮短每個波峰的持續時間,而存儲流量是間歇性的資料寫入和讀取。為了避免存儲流量對計算參數同步流量的幹擾,我們在設計中将計算和存儲流量配置設定在兩個獨立的網絡中運作。在最近的 GTC 大會上,有關網絡設計是采用一張網還是兩張網的問題進行了深入探讨。北美幾家主要公司的 AI 基礎設施網絡負責人都參與了讨論,并得出了一緻的結論,即分開兩張網是最佳選擇,這與我們的設計原則相符合。

值得一提的是,HPN 7.0 架構,在兩周前被選為國際網絡頂會 SIGCOMM 的論文。SIGCOMM 是網絡領域内最頂級的會議之一,每年僅收錄大約 50 篇論文,這些論文都是由網絡領域的全球頂尖專家的創新和實踐成果。阿裡雲的 HPN 7.0 架構論文被選中,這具有重大意義。在 SIGCOMM 上發表關于網絡架構設計的論文是相當罕見的。上一篇與網絡架構相關的論文是 Google 的 Jupiter 網絡,第一代 Jupiter 網絡在 2015 年釋出,第二代則是在 2022 年發表。而 HPN 7.0 的釋出标志着 AI 領域内第一篇網絡架構的國際頂會論文的誕生,會成為 AI 領域網架構設計的标杆。

網絡架構如何支援超萬卡的大規模 AI 訓練?| AICon

在 HPN7.0 架構下,我們可以通過流量排布,來優化模型訓練過程。從 GPU 的視角來看,在整個網絡映射過程中,我們可以看到在 1 千卡的範圍内,DP 過程可以在千卡範圍内完成,無任何網絡 HASH 導緻的問題。PP 流量較少,可以讓其跨越不同的 segment 進行傳輸。這樣的設計使得帶寬的使用率能夠與模型訓練過程緊密結合,進而實作更優的性能。

網絡架構如何支援超萬卡的大規模 AI 訓練?| AICon

HPN 7.0 在端到端的模型訓練性能上取得了顯著提升,測試資料顯示性能,模型端到端的性能提升超過 10%。除了軟體架構的優化,HPN 7.0 的硬體和光互聯系統也是其成功的關鍵因素。我們采用了基于阿裡雲自研的 51.2T 交換機,和 400G 光互聯。

GPU centric 高性能網絡系統未來展望

展望未來,高性能網絡系統的發展将指向一些明确的方向,這些方向已經随着 AI 基礎設施的變革而逐漸顯現。從最近 GTC 的釋出中,我們可以感覺到這一變革的脈動。變革将涵蓋從資料中心的電力設計、制冷設計,到網絡互聯的 scale out 和 scale up 設計等多個方面。

從實體層面來看,未來的資料中心将面臨更高的功率密度。例如,以前一個機架(Rack)可能隻有 20 千瓦的功率,但未來的機架可能達到 50 千瓦甚至 100 千瓦。這樣的高功率密度将帶來散熱方面的挑戰,是以,液冷技術将成為必須采用的解決方案,包括交換機在内的裝置都将采用液冷技術。

GPU 之間的内部互聯,如 NVLink 也将在機架内部甚至更大範圍内進行擴充,以支援 scale up 的擴充需求。這種 scale up 的擴充需要與網絡的 scale out 擴充緊密結合,以確定整個系統的高效性和可擴充性,這也是業界最熱門的互聯創新話題。

網絡架構如何支援超萬卡的大規模 AI 訓練?| AICon

面向未來,我們面臨的規模挑戰将更大。随着 scale up 網絡的發展,我們可能會看到從目前的 8 卡配置擴充到 72 卡或更多,這樣的擴充會對網絡拓撲帶來變化,進而影響 scale out 群網絡架構的設計。包括通信架構、容災設計,以及電力和實體布局等方面都将發生顯著變化。這些變化指向了一個以 GPU-centric 的資料中心設計理念。

網絡架構如何支援超萬卡的大規模 AI 訓練?| AICon

此外,網絡技術的發展正朝着更高的單晶片交換能力邁進,未來一年内,我們有望看到阿裡雲的 HPN 8.0,它将是基于 100T 晶片的下一代架構。從 SCALE up 與 SCALE out 結合的架構設計、硬體設計,到液冷系統、IDC 設計的結合,端到端的 AI 基礎設施發生變化,以網絡設計為中心的 GPU-centric 基礎設施時代已經到來。

高性能網絡協定也将針對 AI 計算持續演進。為了推動這一程序,業界已經成立了超級以太網聯盟(UEC),近期阿裡巴巴入選該聯盟決策委員會,是決策委員會中唯一的一家中國公司,接下來阿裡雲将在 AI 基礎設施網絡的高性能方向上重點投入,與各主要公司一起,共同緻力于下一代更高性能網絡系統的設計和開發。

原文連結:網絡架構如何支援超萬卡的大規模 AI 訓練?| AICon_晶片與網絡_InfoQ精選文章

繼續閱讀