Meta高效能叢集網路架構之路

語言: CN / TW / HK

無論是資料通訊技術的演進、網際網路技術的革新、還是視覺呈現的升級,都是得益於更強大的計算、更大容量更安全的儲存以及更高效的網路。 英偉達網路結合客戶需求,提出了基於InfiniBand網路為基礎的叢集架構方案,不僅可以提供更高頻寬的網路服務,同時也降低了網路傳輸負載對計算資源的消耗,降低了延時,又完美地將HPC與資料中心融合,構建了元宇宙發展的基石。

近日,在由51CTO主辦的MetaCon元宇宙技術大會《人機互動與高效能網路》分會場上,英偉達網路高階產品經理陳龍老師聚焦Meta叢集的高效能網路方案做了整體介紹,為元宇宙技術愛好者深度揭祕了什麼是InfiniBand以及InfiniBand加速計算和儲存等精彩內容!

一、InfiniBand網路叢集架構產生的背景

眾所周知,我們現在是處於一個資訊化的時代,一切資訊都是以數字化為基礎的。5G、IoT的普及為我們構建了數以億萬的終端,打開了數字化的終端。每時每刻數以億計的資料來源源不斷地生成,匯入雲端,而大資料、AI、區塊鏈為代表的技術可以在資料中心構建的雲端高效的資料儲存同時,不斷地分析、提煉資料,挖掘潛在的資料,反饋給終端,服務社會。

近年來,隨著web3.0和VR、AR技術的不斷完善,網際網路的邊界不斷被打破,在Meta的帶領下,元宇宙的時代正在悄然來臨。技術革命在豐富我們生活的同時,支援資訊化時代的基石仍然沒有改變,計算、儲存和網路仍是其技術發展的主旋律。

無論是從2G到5G的資料通訊技術的演進,還是web1.0、web2.0、web3.0網際網路技術的不斷革新,還有視覺呈現從圖片到影片到VR、AR的過渡,支援其發展的無非是以下三點。

第 一,要更強大的計算:1.更多的核心做平行計算;2.異構計算,突破X86 CPU架構的限制。RISC-V、ARM、GPU、FPGA等計算單元的出現,滿足專業計算的需求。

第二,容量更大、更安全的儲存。容量從TB到EB級的儲存,儲存架構也更加豐富,集中,分散式儲存、並行儲存滿足大容量、高效能資料儲存的需求。

第三,作為資料、計算和儲存的橋樑,網路在計算儲存演進的同時,自身的發展也極其迅速,從100G、200G、400G不斷髮展,同時也從原有的TCP、UDP的網路連線向RDMA擴充套件,不斷地提升網路傳輸的效能。

另一方面,作為資料服務的提供商,為了應對雲化部署的大潮,紛紛提出了雲原生的概念,從應用的角度重新設計架構,讓服務可以變得更加高效。與此同時,設計中心也在面臨著另外一項變革,雲化不僅在傳統的資料中心的業務內發生改變,也對HPC類的需求發生實質性的影響,越來越多的HPC的應用類似像模擬建模、圖形渲染、AI訓練、數字孿生都部署在雲端,滿足各行各業發展的需求。

在此背景之下,英偉達網路結合客戶需求提出基於InfiniBand網路為基礎的叢集架構方案,高效能地來完成客戶需求。相對於傳統的網路方案,InfiniBand不僅提出了更高頻寬的網路服務,也降低了網路傳輸負載對計算資源的消耗,降低了延時,也完美地將HPC與資料中心融合在一起,構建了元宇宙發展的基石。

二、Meta叢集到底是什麼?

元宇宙旗艦公司Meta和圖形影象AI領域公司英偉達,共同高調發布了基於DGX SuperPOD架構的Meta專用叢集架構,用於實現Meta搶佔元宇宙時代技術制高點的主要武器,負責AI演算法、資料計算場景的應用。這次公佈已經上線的一期叢集規模是搭載了6080塊的A100的760臺DGX伺服器,所有GPU採用了200Gbps的InfiniBand HDR網絡卡,實現了高效的資料傳輸,整體叢集效能達到1.89億TF32精度的計算能力。

如此之高的計算,使得Meta成為AI領域內業界效能最高的叢集,而如此規模之大的叢集僅僅是Meta構建元宇宙時代霸主雄心的開始,後期的二期擴建將達到16000塊GPU,整體叢集的能力將高達5億,儲存的資料頻寬將達到16TB。

再來看一下Meta公佈的叢集架構圖。這麼龐大的叢集,將採用20臺800口的InfiniBand櫃式交換機作為網路的骨幹層,下面連線100個Pod,每個Pod內部署8臺40口InfiniBand HDR的交換機,實現全網路無阻塞的CLOS架構,從而達到相比之前Facebook AI叢集20倍效能計算的提升、9倍NCCL平行計算的能力、3倍AI模型建模的引數訓練。除此之外,叢集還部署了10PB的NFS的集中資料儲存,46PB的塊儲存,提供記憶體資料恢復,175PB的塊儲存,而這一切都是以InfiniBand的網路實現資料傳輸的快速傳輸解決方案。

是什麼原因讓InfiniBand成為Meta叢集的首要方案呢?從InfiniBand的網路發展歷程來看,網絡卡會跟以太卡有所不同,其實我們現在熟知的乙太網絡的網絡卡的很多設計都是從InfiniBand這裡借鑑過來的。從圖上可以看出,早在20年前InfiniBand就發展出了萬兆卡,2008年已經演進到了40Gbps,隨後平均每三年左右就會發展出新的產品。今年已經量產了400G的NDL網絡卡,所以這InfiniBand成為GPU叢集的首選方案,代際演進也將會變成兩年一代,2023年英偉達會發布800G的XDR網絡卡,2025年將釋出1.6TB的GDL網絡卡,為消除資料傳輸之間的鴻溝奠定了堅實的基礎。

三、InfiniBand 網路架構的奧祕

從InfiniBand解決方案的全景圖中,我們會看到有網絡卡、交換機、線纜、網路端到端的硬體裝置,還有DPU、閘道器裝置,從而不僅構建了完備的資料中心的網路裝置,而且還打通了與廣域網同城應用的節點,實現了硬體完備的網路傳輸解決方案,有兩點值得一提:

一是盒式交換機,我們提供的是1U 40口的200G交換機,相比同級別競爭對手提升了20%的交換能力。而且針對像Meta這樣的大型客戶,單獨提供了業界唯一20U超大型的櫃式交換機,實現高達800個埠的超大規模的交換。

二是InfiniBand提供了業界新概念的DPU網絡卡,實現在業務負載上的解除安裝和隔離,做到了端到端的網路管理與維護,最大化相容老舊裝置,可以讓裝置無縫連線到高效能的InfiniBand的網路。而這些硬體的基礎之上,我們還開創性的構建了網路計算這一新興概念,實現在交換機上做計算,同時結合SHIELD、SHARP、GPU RDMADirect等功能之後,使得我們的網路更加的智慧和高效。

四、InfiniBand 是如何實現加速計算的?

講到計算,不太瞭解RDMA的應用的人們可能會疑惑,一個負責傳輸的網路是如何實現對計算的加速呢?問題就在於真實的資料傳輸不僅僅是網路裝置的事情,以我們熟知的TCP報文轉發為例,大量的資料、協議報文處理都需要CPU的深度介入,類似像報文的封裝、轉發、上下文切換,都需要大量的CPU的開銷才能實現。在這樣的機制下,10G頻寬以下的資料流量不大的情況下,CPU的資源佔用不太明顯。但是在流量上升到100G以上的時候,我們就會發現整個CPU的開銷就會顯著增加。在某些場景下,CPU的消耗會達到20多個核,來實現100G的資料傳輸。因此,在普遍伺服器進入到100G傳輸的背景下,消耗掉傳輸的CPU的資源的代價就是在幫助計算加速。

RDMA就是這樣一種技術,在通訊兩端的伺服器內實現資料的直接傳輸,整個資料的操作CPU是完全不會介入,不僅降低了CPU的開銷,而且也使得CPU不會成為資料傳輸的瓶頸,使得我們的資料傳輸可以向200G、400G乃至1TB的資料的演進。

從圖上我們可以看出,對於一個普通的伺服器當沒有使用RDMA技術的時候,由於CPU要負責大量的協議的開銷處理,使得有47%的資源工作在Kernel態下,而只有大概50%的資源用於程式的計算,限制了整個伺服器的應用擴充套件。當如果我們使用RDMA技術之後,使得大量的消耗CPU資源的資料面完全被解除安裝在網絡卡上,我們就可以能夠控制在Kernel的資源在CPU的12%,將使用者態的CPU資源實現翻倍。這樣不僅將整個傳輸的效能提高,同時騰出來的CPU的資源又可以能夠部署更多的計算的負載,實現了整個頻寬的提升的同時,又增加了業務的部署,提高了整個伺服器的利用效率。

另外,如何對GPU實現加速呢?

現在隨著AI技術的快速普及,GPU的應用也變得越來越重要,而且在GPU上由於有成千上萬的核要做計算,對資料傳輸的需求就會更大。在CPU伺服器正在普遍向100G過渡的時候,GPU的伺服器200G的網路已經成為標配,並且我們正在向400G乃至800G的網路過渡。因此GPU對網路傳輸的需求會更為迫切。

解決方案除了需要像RDMA這樣的技術之外,還需要進一步擴充套件在網路資料面上的制約,讓GPU全速執行。在標準的GPU伺服器的架構上,我們知道GPU是以PCIe的方式和CPU進行互聯的,在這種架構下就決定了GPU在伺服器資料傳輸時,所有的資料都要經過CPU。

從上圖能夠了解到,如果是這樣的這種傳輸方式,跨伺服器之間的GPU的資料傳輸需要實現五步的資料拷貝。首先,伺服器內部的GPU的視訊記憶體要把自己的資料通過PCIe匯流排傳輸到本地的CPU的記憶體上,然後再由本地的CPU記憶體實現資料拷貝,拷貝到專門的RDMA傳輸的管道的記憶體上。然後再通過RDMA的技術,使得這個資料從本臺伺服器的記憶體傳輸到另外一臺伺服器的記憶體,之後再由另一臺伺服器的記憶體實現拷貝,拷貝到和本地GPU視訊記憶體互動的記憶體上。最後再由這部分的資料拷貝到GPU的視訊記憶體上。五步的資料拷貝,我們會看到這個操作會變得非常的複雜,而且中間的CPU記憶體等等都會成為資料轉發的瓶頸。

要解決這個問題,需要GPU Direct RDMA的技術,該技術可以實現讓GPU和網絡卡直接bypass掉CPU,實現網絡卡和GPU之間的資料直連。這樣只需要一步的資料拷貝,就可以讓處於傳送端GPU的資料從它的視訊記憶體中直接一步跳到目的端的GPU的視訊記憶體內,實現資料的快速拷貝。簡化了流程,降低了時延,實現對GPU應用的加速的效果。

使用了GPU Direct RDMA技術之後,其對AI叢集可以實現90%的時延的節省,4K以上報文大小的message傳輸的I/O頻寬實現了十倍的效能的提升。同時在這樣網路效能大幅提升的前提下,對AI叢集的平行計算的任務實現了一倍以上的效能改進的效果,大幅提高了AI叢集的效能,改善了投入產出比。也正是這個原因,導致了Meta在元宇宙時代堅定地要使用InfiniBand的網路作為業界最大規模AI叢集的網路方案,從而證實了InfiniBand的網路加速GPU計算的效果。

以上我們從網絡卡的角度上闡述了InfiniBand如何機遇性的加速CPU和GPU計算,當然,那作為網路中最為關鍵的交換機,InfiniBand是如何加速網路計算的?這裡需要提到InfiniBand的應用SHARP了。

我們知道AI訓練過程中有著大量的AllReduce的操作,直白地講,就是負責分散式計算的GPU要同時更新自己的資料到不同的計算GPU上,這樣的話在這種框架下就決定了資料要反覆地進行網路,保持資料在各個GPU上的同步。並且AllReduce的計算型別無非是求和異或求最值等簡單但是計算頻繁的操作。我們知道了這樣的計算模式之後,就可以設想把交換機變成一個計算節點,將所有的GPU的資料統一彙集到交換機上進行計算,並且統一分發到各個GPU上。這樣由於交換機的轉發頻寬遠大於伺服器,如此的架構不僅沒有資料傳輸的瓶頸,而且在資料網路中的流轉只需要一次就可以完成所有的計算過程,大大簡化了計算過程,降低了時延,消除了瓶頸。

從上面的圖例可以看出,在幾十臺DGX的伺服器叢集規模上使用了網路計算功能之後,整體叢集完成訓練的任務的效能提升了18%,這就意味著當使用了InfiniBand網路的叢集的時候,交換機不僅完成了高效能的資料傳輸,同時還完成了近兩成的計算任務,為客戶提高了效能的同時,節省了大量的伺服器投入成本。

五、InfiniBand 是如何實現加速儲存的?

眾所周知,計算和儲存是任何叢集中最重要的兩個組成部分。雖然在一個叢集的物理形態下,儲存伺服器的數量明顯少於計算伺服器,但從本質上看,從事於儲存的伺服器其實只是負責資料儲存的一小部分。而在廣義上的儲存,其實遍佈了叢集中的每一個角落。

在這裡,我們按照以下四個維度對這幾種常見的儲存器件進行歸類和排布。

1.資料儲存的頻寬

2.資料訪問的時延

3.儲存器件的容量

4.單位容量下儲存的成本

不難看出IRAM記憶體SSD資源池、硬碟資源池和磁帶資源池,剛好能夠按照對角線進行排布。這就意味著在這樣的組成的叢集記憶體儲的價效比是最高,配置最為合理的儲存方案。

但是如果機械硬碟、固態硬碟以單個器件存在,那儲存方案就不能實現對角線的排布。原因其實很簡單,以機械硬碟為例,受限於儲存頻寬的限制,單個硬碟不能夠提供更高的I/O、更大的容量,所以分散式儲存興起的時候,通過池化方案,完美地解決了這個問題,使得硬碟落盤的頻寬大幅提升,同時容量也變得更大。而今天固態硬碟的興起,雖然頻寬有了一兩個數量級的提升,但是相對於記憶體來說,仍然不夠快,同時儲存的容量也不夠大。所以通過網路方案池化,將成為固態硬碟必然的一個趨勢,而此時對網路承擔數百G的流量壓力。

因此,對於儲存,InfiniBand的加速本質上就是通過儲存器件的並行之後的池化,實現了資料效能的提升,而實現加速效果的。

通過InfiniBand的網路重新解構叢集,將計算單元、儲存單元立化成池,用InfiniBand作為整個叢集的背板匯流排,高效地將其互聯起來,為軟體定義叢集奠定了硬體的基礎。這樣,高效能叢集就變成了一臺超高效能的伺服器,可以根據各種任務的負載特性的不同,靈活配置計算與儲存資源,最大限度地滿足效率的同時,還能有更高的效能表現。並且在未來叢集擴容時,可以根據真實的情況需要,定向擴容所需的資源,提高叢集的彈性。而這一切,都需要建立在高可靠、高頻寬、低延時的網路上。

要想了解更多元宇宙網路及運算相關內容資訊,可檢視MetaCon元宇宙技術大會官網,地址:https://metacon.51cto.com/