隨著人工智慧的飛速發展,尤其是大語言模型的崛起,對算力需求的井噴式增長,催生了高性能計算網路技術的快速發展。其中,InfiniBand作為一種高性能、低延遲的通訊技術協議,憑藉其強大的性能和靈活的擴展性,成為支撐GPT等大型語言模型訓練和推理的基石,也成為了輝達等巨頭爭奪的焦點。本文就來聊一聊InfiniBand,目錄如下:
對於搞AI的同學來說,瞭解底層的算力架構是很重要的,尤其是今年大語言模型的崛起,讓GPU無比緊俏,那麼底層的算力最佳化也就變得越來越必要了。今天我們就來聊聊GPT背後所使用的算力網路,也是讓輝達站上萬億市值的基礎——InfiniBand。它到底是一項怎樣的技術?為什麼會倍受現在這些AI公司的追捧?而人們經常討論的“InfiniBand與乙太網路”之爭,又是怎麼回事呢?InfiniBand,簡稱IB,是一種能力很強的通訊技術協議,它的英文直譯過來,就是“無限頻寬”。
Infiniband的誕生源自電腦架構的發展。現代數字電腦採用馮·諾依曼架構,包括CPU、儲存器(如記憶體和硬碟),以及輸入/輸出裝置(I/O)。在20世紀90年代早期,為了支援越來越多的外部裝置,英特爾在標準PC架構中引入了PCI匯流排。這是一條通道,用於連接各種裝置。
隨著網際網路的快速發展,線上業務和使用者數量增加,對IT系統的需求也大幅提升。在摩爾定律的推動下,CPU、記憶體、硬碟等部件升級很快,但PCI匯流排的升級速度卻很慢,成為系統的瓶頸。
為瞭解決這個問題,英特爾、微軟和SUN公司開發了“下一代I/O(NGIO)”技術標準,而IBM、康柏和惠普公司則開發了“未來I/O(FIO)”標準。IBM等公司還在1998年推出了PCI-X標準。1999年,FIO和NGIO的開發者們合併成立了InfiniBand貿易協會(IBTA)。不久後,在2000年,InfiniBand架構的1.0版本正式發佈。
簡而言之,Infiniband的目的是取代PCI匯流排。它引入了RDMA協議,具有更低的延遲、更大的頻寬和更高的可靠性,從而實現更強大的I/O性能。
提到InfiniBand,就不得不提到Mellanox(中文名為邁絡思)。1999年5月,幾名從英特爾和伽利略技術公司離職的員工在以色列創立了Mellanox。Mellanox公司成立後,加入了NGIO,並隨之加入了InfiniBand陣營。2001年,他們推出了首款InfiniBand產品。然而,2002年,英特爾和微軟退出了InfiniBand的開發,這給InfiniBand的發展帶來了陰影。
2003年,InfiniBand開始應用於電腦叢集互聯。美國弗吉尼亞理工學院建立了一個基於InfiniBand技術的叢集,在全球超級電腦500強測試中排名第三。2004年,開放Fabrics聯盟(OFA)成立,負責開發和維護InfiniBand協議和上層應用API,與負責InfiniBand標準的IBTA配合。
2005年,InfiniBand開始用於儲存裝置連接,成為流行的SAN技術。隨著越來越多使用者採用,InfiniBand的市場份額不斷提升。2009年,TOP500榜單中已有181個系統採用了InfiniBand。
Mellanox逐漸成為InfiniBand市場的領導者。2010年,Mellanox與Voltaire合併,主要供應商只剩下Mellanox和QLogic。2012年,英特爾收購了QLogic的InfiniBand技術,重新加入競爭。隨著高性能計算需求的增長,InfiniBand市場份額持續提升。到2015年,TOP500榜單中採用InfiniBand的系統超過了50%,標誌著InfiniBand成為超級電腦的首選內部連接技術。
2013年,Mellanox相繼收購了硅光子技術公司Kotura和平行光互連晶片廠商IPtronics,進一步完善了自身的產業佈局。到2015年,Mellanox在全球InfiniBand市場的佔有率達到了80%。他們的業務範圍從晶片擴展到網路卡、交換機/閘道器、遠端通訊系統和線纜及模組等全領域,成為世界級的網路提供商。
面對InfiniBand的迅猛發展,乙太網路也在積極應對。2010年4月,IBTA發佈了RoCE技術,即基於融合乙太網路的遠端直接記憶體訪問,將InfiniBand中的RDMA技術移植到了乙太網路上。2014年,RoCE v2版本發佈,使乙太網路大幅縮小了與InfiniBand之間的技術性能差距。憑藉成本和相容性優勢,乙太網路重新獲得競爭力。
從2007年到2021年的TOP500技術佔比圖可以看到,自2015年起,25G及更高速率的乙太網路迅速崛起,成為行業新寵,一度壓制了InfiniBand的發展。
2019年,輝達以69億美元成功收購了Mellanox,擊敗了分別出價60億和55億美元的對手英特爾和微軟。輝達CEO黃仁勳解釋了收購的原因:“這是兩家全球領先高性能計算公司的結合,我們專注於加速計算,而Mellanox專注於互聯和儲存。” 這一決策被證明是非常有遠見的。隨著AIGC大模型的崛起,社會對高性能計算和智能計算的需求激增。要滿足如此龐大的算力需求,必須依賴高性能計算叢集,而在這方面,InfiniBand憑藉其卓越的性能成為首選。輝達將其GPU算力優勢與Mellanox的網路優勢結合,打造了一個強大的“算力引擎”,在算力基礎設施上佔據了領先地位。
如今,高性能網路的競爭主要在InfiniBand和高速乙太網路之間展開,雙方勢均力敵。不差錢的廠商更多會選擇InfiniBand,而追求性價比的則傾向於高速乙太網路。其他技術,如IBM的BlueGene、Cray和Intel的OmniPath,基本屬於第二陣營。
介紹完InfiniBand的發展歷程,我們再來看看它的工作原理,為什麼它比傳統乙太網路更強。InfiniBand的一個顯著優勢是率先引入了RDMA(Remote Direct Memory Access,遠端直接記憶體訪問)。
在傳統TCP/IP中,網路卡的資料先複製到核心記憶體,再複製到應用儲存空間,或從應用空間複製到核心記憶體,然後經由網路卡傳送到網際網路。這種I/O操作方式需要經過核心記憶體的轉換,增加了資料流傳輸路徑的長度,增加了CPU的負擔,也增加了傳輸延遲。而RDMA消除了這些中間環節,允許應用與網路卡之間直接進行資料讀寫,將伺服器內的資料傳輸時延降低到接近1微秒。同時,RDMA的記憶體零複製機制允許接收端直接從傳送端的記憶體讀取資料,繞過核心記憶體的參與,極大減少了CPU的負擔,提高了CPU的效率。可以說,RDMA是InfiniBand迅速崛起的重要原因。
從InfiniBand的網路拓撲結構中可以看出,InfiniBand是一種基於通道的結構,組成單元主要分為四類,分別是HCA(Host Channel Adapter,主機通道介面卡),TCA(Target Channel Adapter,目標通道介面卡),InfiniBand link,也稱連接通道,可以是電纜或光纖,也可以是板上鏈路,以及組網用的InfiniBand交換機和路由器。通道介面卡就是搭建InfiniBand通道用的,所有傳輸均以通道介面卡開始或者結束,從而確保安全,或者在給定的QoS等級下工作。使用InfiniBand的系統可以由多個子網組成,每個子網最大可由6萬多個節點組成,子網內部由InfiniBand交換機進行二層處理,而子網之間則使用路由器或網橋進行連接。InfiniBand的二層處理過程也非常簡單,每個InfiniBand子網都會設一個子網管理器,生成16位的本地識別碼LID。InfiniBand交換機包含了多個InfiniBand連接埠,並且根據第二層本地路由標頭中包含的LID,將封包從其中一個連接埠轉發到另一個連接埠。除了管理封包外,交換機不會消耗或生成任何封包。簡單的處理過程,加上自有的Cut-Through技術,InfiniBand將轉發時延大幅降低至100ns以下,明顯快於傳統的乙太網路交換機。
在InfiniBand網路中,資料同樣採用序列方式,以最大4KB的封包形式進行傳輸。InfiniBand協議同樣採用了分層結構,各層相互獨立,下層為上層提供服務。其中,物理層定義了線上路上如何將位元訊號組成符號,然後再組成幀、資料符號以及包之間的資料填充等等,詳細說明了建構有效包的信令協議等。鏈路層定義了封包的格式以及封包操作的協議,比如流控、路由選擇、編碼、解碼等。網路層通過在封包上新增一個40字節的全域的路由報頭GRH,來進行路由的選擇,對資料進行轉發。在轉發的過程中,路由器僅僅進行可變的CRC校驗,這樣就保證了端到端的資料傳輸的完整性。傳輸層再將封包傳送到某個指定的QP,也就是Queen Pair中,並指示QP該如何處理這個封包。可以看出,InfiniBand擁有自己定義的1-4層格式,是一個完整的網路協議。
而端到端的流量控制,是InfiniBand網路封包傳送和接收的基礎,可以實現無損網路。說到QP,我們需要多提幾句。它是RDMA技術中通訊的基本單元。QP,也叫佇列,就是一對佇列,包括傳送工作佇列SQ,Send Queue和接收工作佇列RQ,Receive Queue。使用者呼叫API傳送接收資料的時候,實際上是將資料放入QP當中,然後以輪詢的方式,將QP中的請求一條條的處理。InfiniBand物理鏈路可以用銅纜或光纜,針對不同的連接場景,也可能需要使用專用的InfiniBand線纜。
InfiniBand在物理層定義了多種鏈路速度,例如1X,4X,12X,每個單獨的鏈路是四線序列差分連接。以早期的單資料速率SDR規範為例,1X鏈路的原始訊號頻寬為2.5Gbps,4X鏈路是10Gbps,12X鏈路是30Gbps。因為採用了8b/10b編碼,所以1X鏈路的實際資料頻寬為2.0Gbps。由於鏈路是雙向的,因此相對於匯流排的總頻寬是4Gbps。
隨著時間的推移,InfiniBand的網路頻寬不斷升級,從早期的SDR、DDR、QDR、FDR、EDR、HDR,一路升級到NDR、XDR、GDR。最後,我們再來看看市面上的InfiniBand商用產品。
輝達收購Mellanox之後,於2021年推出了自己的第七代NVIDIA InfiniBand架構——NVIDIA Quantum-2,整個平台包括NVIDIA Quantum-2系列交換機、NVIDIA ConnectX-7 InfiniBand介面卡、BlueField-3 InfiniBand DPU,以及相關的軟體。其中NVIDIA Quantum-2系列交換機採用了緊湊型的1U設計,包括風冷和液冷版本。交換機的晶片製程工藝呢為7納米,單晶片呢擁有570億個電晶體,比A100的GPU呢還多,採用了64個400 Gbps連接埠,或者是128個200 Gbps連接埠的靈活搭配,提供總計51.2T bps的雙向吞吐量。NVIDIA ConnectX-7 InfiniBand介面卡,支援PCIe Gen4和Gen5,具有多種外形規格,可以提供400Gbps的單或雙網路連接埠。
根據行業機構的預測到2029年,InfiniBand的市場規模將達到983.7億美元,相比於2021年的66.6億美元增長14.7倍,在預測期2021-2029內的復合年增長率為40%。好了今天,我們簡單地回顧了一下InfiniBand的發展歷史和基本原理,相信在高性能計算和人工智慧計算的強力推動下,infiniband的發展前景還是令人非常期待的。究竟他和乙太網路誰能笑到最後,還需要時間來告訴我們答案,我們下期再見。 (那個曾經的少年回來了)