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