談?wù)凬VLink那些事
來(lái)源:知乎,作者夏晶晶
長(zhǎng)Nvlink的誕生
Nvlink誕生于超算 :) 是的,超算。在AI出盡風(fēng)頭之前,IT領(lǐng)域真正的技術(shù)探索其實(shí)都是依賴于超算驅(qū)動(dòng)的,這是一個(gè)類似于攀登珠穆朗瑪峰并沿途下蛋的持續(xù)性技術(shù)改良的模式 :) 和當(dāng)下AI驅(qū)動(dòng)技術(shù)動(dòng)輒就顛覆的模式相差蠻大,說(shuō)不上誰(shuí)優(yōu)誰(shuí)劣,最終都是優(yōu)勝劣汰吧。Nvlink的初始技術(shù)相當(dāng)大部分來(lái)源于IBM,是的,IBM幾乎是一切技術(shù)的源頭??紤]到IBM那些年在美國(guó)的超算市場(chǎng)逐漸下滑,曾經(jīng)的Blue Gene黯然失色,而Nvidia又恰好想在技術(shù)上更進(jìn)一步,他們的結(jié)合以IBM的高傲大概率是Nvidia主動(dòng)貼上去的,但也算得上郎有情妾有意,不過(guò)分手的時(shí)候也大概率Nvidia賺得最大。IBM和Nvidia曾經(jīng)是有過(guò)一段如膠似漆的日子。最簡(jiǎn)單的,你看業(yè)界的文檔標(biāo)注IO帶寬的時(shí)候,只有兩家是乘以二把TX和RX算到一起的,例如正常我們談200G網(wǎng)口的時(shí)候,這網(wǎng)口就是8組25Gbps的Serdes,但I(xiàn)BM和Nvidia是唯二把這個(gè)IO標(biāo)成400G的 :) 后來(lái)被NVIDIA收養(yǎng)的Mallenox應(yīng)該很不習(xí)慣。Nvidia GPGPU的片上總線NoC看上去也有很多IBM的影子,我經(jīng)常把IBM的NOC論文中的行為套到Nvidia上,幾乎都對(duì)。應(yīng)該還有很多,我們能夠找到關(guān)于這段感情遺留的痕跡。嗯,回到Nvlink,它提出的主旨很簡(jiǎn)單,就是突破PCIe的屏障,達(dá)成GPU-GPU及CPU-GPU的高效數(shù)據(jù)交互,當(dāng)年正是intel把持pcie最惡劣的情況,PCIe device之間的數(shù)據(jù)直通需要經(jīng)過(guò)CPU才行(基于所謂訪問(wèn)安全的約束)。所以,那是2016年的秋天,橙黃橘綠,IBM的Power8和Nvidia的P100完成了基于Nvlink的靈與肉的結(jié)合,2+4,沒(méi)有PCIe,產(chǎn)品是HPC。Nvlink的演進(jìn)
- - Pascal的Nvlink1.0的IO速率是20Gbps,8Lane per Port,每個(gè)Port 320Gbps(雙向),這其實(shí)是一代不完全成熟的產(chǎn)品,因?yàn)檫@個(gè)Port的速率很獨(dú)特,GPGPU內(nèi)部微架構(gòu)團(tuán)隊(duì)可能也還沒(méi)有完全接納。
- - Volta的Nvlink2.0的IO速率是25Gbps,8Lane per Port,每個(gè)Port 400Gbps(雙向),從此時(shí)開始,GPGPU對(duì)這個(gè)數(shù)字就鎖定了。
- - Ampere的Nvlink3.0的IO速率是50Gbps,4Lane per Port,每個(gè)Port 400Gbps(雙向)。
- - Hopper的Nvlink4.0的IO速率是100Gbps,2Lane per Port,每個(gè)Port 400Gbps(雙向)。
- - Blackwill的Nvlink5.0,沒(méi)發(fā)布,但以此類推,大致就是IO速率200Gbps,1Lane per Port,每個(gè)Port 400Gbps。
DGX和HGX
大狗熊和黑狗熊,很多人傻傻分不清。
Nvidia最初推出的是DGX,2016年發(fā)布的第一代DGX-1,這玩意兒其實(shí)是一個(gè)單機(jī),嚴(yán)格來(lái)講,小型機(jī)。雖然當(dāng)年數(shù)據(jù)中心建設(shè)雖然如火如荼,但Nvidia還是希望能以一個(gè)硬件system的模式,把一個(gè)Box賣給客戶,并獲得足夠高的利潤(rùn)。君不見,這玩意兒渾身內(nèi)外都涂滿中東土豪的金色,差點(diǎn)就想告訴你你買了一塊大金磚。DGX-1差不多是15萬(wàn)美元左右,到DGX-2則到了40萬(wàn)美元,相比買單卡的溢價(jià)非常高,買到即虧到。DGX并不適合世界上最大的IT采購(gòu)商:Cloud,缺乏彈性,我猜它賣得并不那么好,當(dāng)然作為旗艦產(chǎn)品撐場(chǎng)子是絕對(duì)合格。簡(jiǎn)單的說(shuō),DGX V100的CPU連塊網(wǎng)口都沒(méi)配置,更不用提符合Cloud Service的DPU。其實(shí)Nvidia也是到了Ampere的時(shí)代,才理解了數(shù)據(jù)中心的OVS :) 其標(biāo)識(shí)在于CPU開始配置獨(dú)立網(wǎng)卡CX6并支持VPI。大狗熊和黑狗熊長(zhǎng)得是很像 :) 但細(xì)節(jié)展開差別蠻大的。今天講Nvlink,那以V100 DGX vs HGX為參考,DGX的跨板Nvlink是通過(guò)背板互聯(lián)的,而HGX的跨板Nvlink是通過(guò)線纜互聯(lián)的。就這么個(gè)點(diǎn),至少就決定了DGX只能整機(jī)在Nvidia購(gòu)買,而HGX是可以賣獨(dú)立器件再OEM給浪潮、Dell制造組裝的(后者是大型互聯(lián)網(wǎng)客戶的典型采購(gòu)模式)。其實(shí)呢,互聯(lián)網(wǎng)的同學(xué)們也是騙自己,還在假裝自己是買到了最便宜的白盒Device,然后做了高難度的DIY呢 :)NvSwitch的演進(jìn)
Nvlink至今到Hopper發(fā)展了四代,而Nvswitch至今有三代 :)也就是說(shuō)第一代Pascal時(shí)期其實(shí)是沒(méi)有Switch的,當(dāng)年的一機(jī)八卡,是一種類似Cube的直連系統(tǒng)。多卡系統(tǒng)做Reduce怎么都是跑不掉的,oh,holy shit,當(dāng)年分析Cube直連系統(tǒng),算Ring Reduce的路徑覆蓋最大化可真玩死哥了。我感覺(jué)應(yīng)該很多人和我一樣,紛紛給Nvidia留言了“fxxk”、“Damn”等信息,握爪。Nvidia受不了了,既然這么多程序員的數(shù)學(xué)都是體育老師教的,那還是暴力全交換吧。所以在Volta to Ampere之間的2018年,Nvidia推出了基于NvSwitch的DGX-2(HGX和DGX差別在于硬件設(shè)計(jì),邏輯上兩者是一樣的)。- - Pascal只有DGX-1
- - Volta有DGX-1和DGX-2
- - Ampere及Hopper只有DGX-2
- - 什么時(shí)候會(huì)有DGX-3呢?
Nvidia固然從IBM得到了很多,但是最終它并沒(méi)有辜負(fù)這段感情。
Nvlink-Network的誕生
Nvlink-Network和Nvlink是兩個(gè)東西,是兩個(gè)東西,是兩個(gè)東西。為什么好好的有Nvlink了,還搞Nvlink-Network ?這個(gè)問(wèn)題的源頭來(lái)自HGX的形態(tài),為什么DGX/HGX-2 V100有8P和16P兩種機(jī)器銷售?但DGX/HGX-2 A100卻只有8P唯一形態(tài) ?下圖是Nvidia官方的Nvswitch互聯(lián)圖。下圖是A100的HGX單板,黃教主端在手上,注意看最右側(cè),六顆NvSwitch芯片的右端,是跨板的Nvlink端口,通過(guò)這一組端口你可以將兩張8P的A100單板組合成一個(gè)16P的HGX系統(tǒng)。OTT負(fù)責(zé)基礎(chǔ)設(shè)施的老板們啊,中國(guó)那花10億美元購(gòu)買A100的那個(gè)公司啊,打開你的機(jī)箱看一看,你定制的HGX A100單板,Nwswitch芯片的外側(cè)端口,是不是懸空的?為什么?難度微軟給OpenAI提供的是一機(jī)八卡的HGX做訓(xùn)練,所以中國(guó)做AI的所有人,所有人都認(rèn)為只能做一機(jī)八卡了?哦,你畫了幾十萬(wàn)美元買的A100八卡板,他的NvSwitch3.0芯片,都在哭o(╥﹏╥)o啊,18個(gè)Port,其中兩個(gè)Port永遠(yuǎn)地留給了那個(gè)男人,但是還有8個(gè)Port是懸空的啊,懸空的啊。嗯,中國(guó)購(gòu)買的所有NvSwitch3.0芯片,都只使能了8/18的Port。。。。。。。老板,快開除那些不上進(jìn)的家伙。這個(gè)世界上根本就沒(méi)有16P的A100,對(duì)吧?不對(duì)啊,有一家有,如下,Google的A2-MegaGPU-16g實(shí)例,這是我在世上唯一找到官方的A100 16P系統(tǒng)。Google Machine Type a2-megagpu-16ghttps://gcloud-compute.com/a2-megagpu-16g.html
微軟和AWS都沒(méi)有看到A100的16P實(shí)例,先不忙裁人,這事必有蹊蹺 :)我不是Nvidia的架構(gòu)師,不知道詳情是什么。我只能猜測(cè)一個(gè)答案。Nvlink這個(gè)協(xié)議其實(shí)不適合跨Board,對(duì)Cable不適。大概率,Nvlink是做Nvidia做計(jì)算的同學(xué)主導(dǎo)的,類似Intel的UPI,做計(jì)算的人做IO,往往都圖個(gè)簡(jiǎn)單粗暴,沒(méi)有做強(qiáng)大的糾錯(cuò)碼,也沒(méi)有出錯(cuò)重傳的設(shè)計(jì),遇到丟包直接全機(jī)藍(lán)屏。勇敢地說(shuō),我是計(jì)算的,我做互聯(lián)也是這德行 :)Nvlink1的速率是20G,Nvlink2的速率是25G,Nvlink3的速率是50G,Nvlink4的速率是100G,真的都是整數(shù)哦,你看,只有做計(jì)算的人才干的出來(lái),網(wǎng)絡(luò)的人不會(huì)這么莽的。做網(wǎng)絡(luò)的同學(xué)會(huì)用26.5625G、53.125G、106.25G,這種完全無(wú)厘頭的頻點(diǎn),這也是大多數(shù)Cable和Optical Fiber的頻點(diǎn)。此外,16P的A100系統(tǒng),兩個(gè)單板之間需要互聯(lián)64x6 = 384 Lane需要互聯(lián),無(wú)論是cable還是Connector,大致上都有非常巨大的工程問(wèn)題。為什么Google搞定了?為什么技術(shù)不能復(fù)制到全世界?不知道。但我猜Mallenox的同學(xué)被Nvidia包養(yǎng)之后,來(lái)了IO的同學(xué),一看,這隊(duì)友是在送人頭 ?扶了一把。所以,就有了Nvlink-Network。Nvlink-NetWork大致上是按照網(wǎng)絡(luò)的方法做了協(xié)議改造,對(duì),你打開Hopper驅(qū)動(dòng),歷歷在目,100G頻點(diǎn)之外,多了一個(gè)106.25G,IB的Sharp也被融合到Nvlink-Network放到了Nvswitch內(nèi)部(驅(qū)動(dòng)都沒(méi)變)。收購(gòu)Mallenox是Nvidia最成功的聯(lián)合了吧。雖然從近期GH200的故事來(lái)看,Nvlink-Network的領(lǐng)域在逐步擴(kuò)大,已經(jīng)到了256,下一跳,肉眼可見的范圍內(nèi),Nvlink-Network會(huì)吃掉IB。以色列人可能也無(wú)所謂吧,畢竟股票賺了那么多。。。。。。。
最后露一個(gè)值個(gè)幾萬(wàn)塊的Nvlink-Network的秘密 :)Hopper的Nvlink帶寬是900GB,要在這么巨大的帶寬上同時(shí)滿帶寬支持Nvlink-Network需要的特性,包括重傳、糾錯(cuò)、編碼等,GPU寶貴的Silicon面積會(huì)被耗掉非常多,至少1000個(gè)CUDA Core起步吧 :)我給的答案是:只有GPGPU+Nvswitch才能組合出完整的Nvlink-Network,懂的自然懂。
Nvlink-C2C的誕生
先說(shuō)結(jié)論:Nvlink-C2C是個(gè)錯(cuò)誤的技術(shù)路徑。我仿佛記得Nvlink-C2C的主架構(gòu)師Wei wei是我大學(xué)同學(xué) ?有這么個(gè)模糊印象。如果單純從技術(shù)的角度,Nvlink-C2C真的是一個(gè)恰到好處的設(shè)計(jì),挺佩服的。增之一分則太長(zhǎng),減之一分則太短,信號(hào)速率低了,PCB會(huì)變貴,信號(hào)速率高了,功耗會(huì)變高。但是Nvlink-C2C從系統(tǒng)來(lái)講,并不是個(gè)好選擇。總遇到有些人,把NVIDIA當(dāng)作宗教信仰一樣崇拜,把黃教主說(shuō)的就當(dāng)做圣言。嗨。- - 為什么要綁定Grace+Hopper的1:1配比?那下一代Grace+Blackwell也是1:1 ?
- - 為什么每個(gè)GPU只能配搭500GB DDR容量?GPU這么貴,就不能一顆GPU搭兩顆CPU帶1TB DDR嗎?
- - 為什么要配搭高價(jià)銷售?愛馬仕賣中國(guó)人就一定要配貨銷售嗎?
- - 為什么不就用Nvlink?Nvlink C2C是900GB帶寬,也就x36Lane的Nvlink4罷了。
- - 資源池化、池化、池化知道不?
-End-
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。