對于InfiniBand,很多搞數通的同學肯定不會陌生。
進入21世紀以來,隨著云計算、大數據的不斷普及,數據中心獲得了高速發展。而InfiniBand,就是數據中心里的一項關鍵技術,地位極為重要。
尤其是今年以來,以ChatGPT為代表的AI大模型強勢崛起,更是讓InfiniBand的關注熱度大漲。因為,GPT們所使用的網絡,就是英偉達公司基于InfiniBand構建的。
那么,InfiniBand到底是什么技術?它為什么會倍受追捧?人們經常討論的“InfiniBand與以太網”之爭,又是怎么回事?
今天這篇文章,我們來逐一解答。
01. InfiniBand的發展歷程
InfiniBand(簡稱IB),是一種能力很強的通信技術協議。它的英文直譯過來,就是“無限帶寬”。
Infiniband的誕生故事,還要從計算機的架構講起。
大家都知道,現代意義上的數字計算機,從誕生之日起,一直都是采用的馮·諾依曼架構。在這個架構中,有CPU(運算器、控制器)、存儲器(內存、硬盤),還有I/O(輸入/輸出)設備。
上世紀90年代早期,為了支持越來越多的外部設備,英特爾公司率先在標準PC架構中引入PCI(Peripheral Component Interconnect,外設部件互連標準)總線設計。
PCI總線,其實就是一條通道。
不久后,互聯網進入高速發展階段。線上業務和用戶規模的不斷增加,給IT系統的承載能力帶來了很大挑戰。
當時,在摩爾定律的加持下,CPU、內存、硬盤等部件都在快速升級。而PCI總線,升級速度緩慢,大大限制了I/O性能,成為整個系統的瓶頸。
為了解決這個問題,英特爾、微軟、SUN公司主導開發了“Next Generation I/O(NGIO)”技術標準。而IBM、康柏以及惠普公司,則主導開發的“Future I/O(FIO)”。IBM這三家公司,還合力搞出了PCI-X標準(1998年)。
1999年,FIO Developers Forum和NGIO Forum進行了合并,創立了InfiniBand貿易協會(InfiniBand Trade Association,IBTA)。
很快,2000年,InfiniBand架構規范的1.0版本正式發布了。
簡單來說,InfiniBand的誕生目的,就是為了取代PCI總線。它引入了RDMA協議,具有更低的延遲,更大的帶寬,更高的可靠性,可以實現更強大的I/O性能。(技術細節,后文會詳細介紹。)
說到InfiniBand,有一家公司我們是必須提到的,那就是大名鼎鼎的Mellanox。
1999年5月,幾名從英特爾公司和伽利略技術公司離職的員工,在以色列創立了一家芯片公司,將其命名為Mellanox。
Mellanox公司成立后,就加入了NGIO。后來,NGIO和FIO合并,Mellanox隨之加入了InfiniBand陣營。2001年,他們推出了自己的首款InfiniBand產品。
2002年,InfiniBand陣營突遭巨變。
這一年,英特爾公司“臨陣脫逃”,決定轉向開發PCI Express(也就是PCIe,2004年推出)。而另一家巨頭微軟,也退出了InfiniBand的開發。
盡管SUN和日立等公司仍選擇堅持,但InfiniBand的發展已然蒙上了陰影。
2003年開始,InfiniBand轉向了一個新的應用領域,那就是計算機集群互聯。
這一年,美國弗吉尼亞理工學院創建了一個基于InfiniBand技術的集群,在當時的TOP500(全球超級計算機500強)測試中排名第三。
2004年,另一個重要的InfiniBand非盈利組織誕生——OFA(Open Fabrics Alliance,開放Fabrics聯盟)。
OFA和IBTA是配合關系。IBTA主要負責開發、維護和增強Infiniband協議標準;OFA負責開發和維護Infiniband協議和上層應用API。
2005年,InfiniBand又找到了一個新場景——存儲設備的連接。
老一輩網工一定記得,當年InfiniBand和FC(Fibre Channel,光纖通道)是非常時髦的SAN(Storage Area Network,存儲區域網絡)技術。小棗君初次接觸InfiniBand,就是在這個時候。
再后來,InfiniBand技術逐漸深入人心,開始有了越來越多的用戶,市場占比也不斷提升。
到了2009年,在TOP500榜單中,已經有181個采用了InfiniBand技術。(當然,千兆以太網當時仍然是主流,占了259個。)
在InfiniBand逐漸崛起的過程中,Mellanox也在不斷壯大,逐漸成為了InfiniBand市場的領導者。
2010年,Mellanox和Voltaire公司合并,InfiniBand主要供應商只剩下Mellanox和QLogic。不久后,2012年,英特爾公司出資收購了QLogic的InfiniBand技術,返回到InfiniBand的競爭賽道。
2012年之后,隨著高性能計算(HPC)需求的不斷增長,InfiniBand技術繼續高歌猛進,市場份額不斷提升。
2015年,InfiniBand技術在TOP500榜單中的占比首次超過了50%,達到51.4%(257套)。
這標志著InfiniBand技術首次實現了對以太網(Ethernet)技術的逆襲。InfiniBand 成為超級計算機最首選的內部連接技術。
2013年,Mellanox相繼收購了硅光子技術公司Kotura和并行光互連芯片廠商IPtronics,進一步完善了自身產業布局。2015年,Mellanox在全球InfiniBand市場上的占有率達到80%。他們的業務范圍,已經從芯片逐步延伸到網卡、交換機/網關、遠程通信系統和線纜及模塊全領域,成為世界級網絡提供商。
面對InfiniBand的趕超,以太網也沒有坐以待斃。
2010年4月,IBTA發布了RoCE(RDMA over Converged Ethernet,基于融合以太網的遠程直接內存訪問),將InfiniBand中的RDMA技術“移植”到了以太網。2014年,他們又提出更加成熟的RoCE v2。
有了RoCE v2,以太網大幅縮小了和InfiniBand之間的技術性能差距,結合本身固有的成本和兼容性優勢,又開始反殺回來。
大家通過下面這張圖,可以看出從2007年到2021年的TOP500榜單技術占比。
如圖所示,2015年開始,25G及更高速率的以太網(圖中深綠色的線)崛起,迅速成為行業新寵,一度壓制住了InfiniBand。
2019年,英偉達(Nvidia)公司豪擲69億美元,擊敗對手英特爾和微軟(分別出價60億和55億美元),成功收購了Mellanox。
對于收購原因,英偉達CEO黃仁勛是這么解釋的:
“這是兩家全球領先高性能計算公司的結合,我們專注于加速計算(accelerated computing),而Mellanox專注于互聯和存儲。”
現在看來,老黃的決策是非常有遠見的。
正如大家所見,AIGC大模型崛起,整個社會對高性能計算和智能計算的需求井噴。
想要支撐如此龐大的算力需求,必須依賴于高性能計算集群。而InfiniBand,在性能上是高性能計算集群的最佳選擇。
將自家的GPU算力優勢與Mellanox的網絡優勢相結合,就等于打造了一個強大的“算力引擎”。在算力基礎設施上,英偉達毫無疑問占據了領先優勢。
如今,在高性能網絡的競爭上,就是InfiniBand和高速以太網的纏斗。雙方勢均力敵。不差錢的廠商,更多會選擇InfiniBand。而追求性價比的,則會更傾向高速以太網。
剩下還有一些技術,例如IBM的BlueGene、Cray,還有Intel的OmniPath,基本屬于第二陣營了。
02. InfiniBand的技術原理
介紹完InfiniBand的發展歷程,接下來,我們再看看它的工作原理。為什么它會比傳統以太網更強。它的低時延和高性能,究竟是如何實現的。
起家本領——RDMA
前文提到,InfiniBand最突出的一個優勢,就是率先引入RDMA(Remote Direct Memory Access,遠程直接數據存取)協議。
在傳統TCP/IP中,來自網卡的數據,先拷貝到核心內存,然后再拷貝到應用存儲空間,或從應用空間將數據拷貝到核心內存,再經由網卡發送到Internet。
這種I/O操作方式,需要經過核心內存的轉換。它增加了數據流傳輸路徑的長度,增加了CPU的負擔,也增加了傳輸延遲。
傳統模式 VS RDMA模式
RDMA相當于是一個“消滅中間商”的技術。
RDMA的內核旁路機制,允許應用與網卡之間的直接數據讀寫,將服務器內的數據傳輸時延降低到接近1us。
同時,RDMA的內存零拷貝機制,允許接收端直接從發送端的內存讀取數據,繞開了核心內存的參與,極大地減少了CPU的負擔,提升CPU的效率。
如前文所說,InfiniBand之所以能迅速崛起,RDMA居功至偉。
InfiniBand的網絡架構
InfiniBand的網絡拓撲結構示意,如下圖所示:
InfiniBand是一種基于通道的結構,組成單元主要分為四類:
· HCA(Host Channel Adapter,主機通道適配器)· TCA(Target Channel Adapter,目標通道適配器)· InfiniBand link(連接通道,可以是電纜或光纖,也可以是板上鏈路)· InfiniBand交換機和路由器(組網用的)
通道適配器就是搭建InfiniBand通道用的。所有傳輸均以通道適配器開始或結束,以確保安全或在給定的QoS(服務質量)級別下工作。
使用InfiniBand的系統可以由多個子網(Subnet)組成,每個子網最大可由6萬多個節點組成。子網內部,InfiniBand交換機進行二層處理。子網之間,使用路由器或網橋進行連接。
InfiniBand組網示例
InfiniBand的二層處理過程非常簡單,每個InfiniBand子網都會設一個子網管理器,生成16位的LID(本地標識符)。InfiniBand交換機包含多個InfiniBand端口,并根據第二層本地路由標頭中包含的LID,將數據包從其中一個端口轉發到另一個端口。除管理數據包外,交換機不會消耗或生成數據包。
簡單的處理過程,加上自有的Cut-Through技術,InfiniBand將轉發時延大幅降低至100ns以下,明顯快于傳統以太網交換機。
在InfiniBand 網絡中,數據同樣以數據包(最大4KB)的形式傳輸,采用的是串行方式。
InfiniBand的協議棧
InfiniBand協議同樣采用了分層結構。各層相互獨立,下層為上層提供服務。如下圖所示:
其中,物理層定義了在線路上如何將比特信號組成符號,然后再組成幀、數據符號以及包之間的數據填充等,詳細說明了構建有效包的信令協議等。
鏈路層定義了數據包的格式以及數據包操作的協議,如流控、 路由選擇、編碼、解碼等。
網絡層通過在數據包上添加一個40字節的全局的路由報頭(Global Route Header, GRH)來進行路由的選擇,對數據進行轉發。
在轉發的過程中,路由器僅僅進行可變的CRC校驗,這樣就保證了端到端的數據傳輸的完整性。
Infiniband報文封裝格式
傳輸層再將數據包傳送到某個指定的隊列偶(Queue Pair, QP)中,并指示QP如何處理該數據包。
可以看出,InfiniBand擁有自己定義的1-4層格式,是一個完整的網絡協議。端到端流量控制,是InfiniBand網絡數據包發送和接收的基礎,可以實現無損網絡。
說到QP(隊列偶),我們需要多提幾句。它是RDMA技術中通信的基本單元。
隊列偶就是一對隊列,SQ(Send Queue,發送工作隊列)和RQ(Receive Queue,接收工作隊列)。用戶調用API發送接收數據的時候,實際上是將數據放入QP當中,然后以輪詢的方式,將QP中的請求一條條的處理。
InfiniBand的鏈路速率
InfiniBand鏈路可以用銅纜或光纜,針對不同的連接場景,需使用專用的InfiniBand線纜。
InfiniBand在物理層定義了多種鏈路速度,例如1X,4X,12X。每個單獨的鏈路是四線串行差分連接(每個方向兩根線)。
以早期的SDR(單數據速率)規范為例,1X鏈路的原始信號帶寬為2.5Gbps,4X鏈路是10Gbps,12X鏈路是30Gbps。
1X鏈路的實際數據帶寬為2.0Gbps(因為采用8b/10b編碼)。由于鏈路是雙向的,因此相對于總線的總帶寬是4Gbps。
隨著時間的推移,InfiniBand的網絡帶寬不斷升級,從早期的SDR、DDR、QDR、FDR、EDR、HDR,一路升級到NDR、XDR、GDR。如下圖所示:
英偉達最新的Quantum-2平臺好像采用的是NDR 400G
具體速率和編碼方式
InfiniBand的商用產品
最后,我們再來看看市面上的InfiniBand商用產品。
英偉達收購Mellanox之后,于2021年推出了自己的第七代NVIDIA InfiniBand架構——NVIDIA Quantum-2。
NVIDIA Quantum-2平臺包括:NVIDIA Quantum-2 系列交換機、NVIDIA ConnectX-7 InfiniBand 適配器、BlueField-3 InfiniBand DPU,以及相關的軟件。
NVIDIA Quantum-2 系列交換機采用緊湊型1U設計,包括風冷和液冷版本。交換機的芯片制程工藝為7nm,單芯片擁有570億個晶體管(比A100 GPU還多)。采用64個400Gbps端口或128個200Gbps端口的靈活搭配,提供總計51.2Tbps的雙向吞吐量。
NVIDIA ConnectX-7 InfiniBand 適配器,支持PCIe Gen4和Gen5,具有多種外形規格,可提供400Gbps的單或雙網絡端口。
03. 結語
根據行業機構的預測,到2029年,InfiniBand的市場規模將達到983.7億美元,相比2021年的66.6億美元,增長14.7倍。預測期內(2021-2029)的復合年增長率,為 40%。
在高性能計算和人工智能計算的強力推動下,InfiniBand的發展前景令人期待。
究竟它和以太網誰能笑到最后,就讓時間來告訴我們答案吧!
編輯:黃飛
評論
查看更多