前段時間介紹超節點的時候,有很多讀者追問NVLINK的細節。
今天乾脆單獨開一篇,講講NVLink。
上世紀80-90年代,電腦技術高速發展,逐漸形成了英特爾和微軟為代表的“Wintel”軟硬體體系。
在硬體上,基本上都是圍繞英特爾的x86 CPU進行建構。為了能讓電腦內部能夠更好地傳輸資料,英特爾牽頭設計了PCIe匯流排。
懂電腦的同學,應該對PCIe非常熟悉。我們的顯示卡,還有早期的網路卡和音效卡等,都是插在電腦主機板PCIe插槽上工作的。
後來,隨著時間的推移,電腦CPU、記憶體、顯示卡的性能越來越強大,相互之間傳輸的資料量也越來越多,PCIe的能力開始出現瓶頸(儘管這個技術也在迭代),傳輸速率和時延逐漸無法滿足需求。
表現最突出的,是顯示卡(GPU)的通訊需求。
本世紀初,遊戲產業發展迅速,顯示卡的升級迭代也很快。當時,為了讓遊戲體驗更加流暢,甚至出現了同時安裝2塊顯示卡的情況。
AMD(2006年收購了ATI)那邊,把這種多顯示卡技術叫做Crossfire(交火)。
而輝達這邊,則叫做SLI(Scalable Link Interface,可升級連接介面,也叫“速力”,2007年推出)。
除了個人消費領域之外,科研領域對顯示卡性能的需求也不斷增加。
科學家們使用顯示卡,不是為了玩遊戲,而是為了3D建模,以及執行一些超算任務。
輝達在不斷提升顯示卡性能的同時,發現PCIe協議嚴重限制了顯示卡的對外資料傳輸。於是,他們開始考慮自創一套體系,用於取代PCIe協議。
2014年,輝達基於SLI技術,推出了用於GPU高速互連的新協議——NVLink(Nvidia Link)。
輝達NVLink技術的早期合作對象,是IBM。
為什麼不是英特爾或AMD呢?因為PCIe是英特爾牽頭搞的,不太想搞NVLink。AMD算是輝達競爭對手,也不合適。
當時,IBM是超算領域的巨頭,而且在技術參數上和輝達非常匹配,所以雙方進行了合作。
輝達在發佈NVLink時指出:
GPU視訊記憶體的速度快但容量小,CPU記憶體的速度慢但容量大。因為記憶體系統的差異,加速的計算應用一般先把資料從網路或磁碟移至CPU記憶體,然後再複製到GPU視訊記憶體,資料才可以被GPU處理。
在NVLink技術出現之前,GPU需要通過PCIe介面連接至CPU,但PCIe介面太落後,限制了GPU存取CPU系統記憶體的能力,對比CPU記憶體系統要慢4-5倍。
有了NVLink之後,NVLink介面可以和一般CPU記憶體系統的頻寬相匹配,讓GPU以全頻寬的速度存取CPU記憶體,解決了CPU和GPU之間的互聯頻寬問題,從而大幅提升系統性能。
IBM POWER CPU的頻寬高於x86 CPU,PCIe瓶頸效應更為明顯,所以,他們才非常積極想要和輝達合作。
在GTC2014上,輝達CEO黃仁勳對NVLink讚不絕口。他表示:“NVLink讓 GPU與CPU之間共享資料的速度快了5-12倍。這不僅是全球首例高速GPU互聯技術,也為百億億次級計算鋪平了道路。”
2014年年底,美國能源部宣佈將由IBM和輝達共同建造兩台新的旗艦超級電腦,分別是橡樹嶺國家實驗室的Summit系統和勞倫斯利弗莫爾國家實驗室的Sierra系統,引發行業的高度關注。
而NVLink,就是其中的關鍵技術,用於IBM POWER9 CPU與輝達GPGPU(基於Volta架構)的連接。根據官方資料,建成的超級電腦算力高達100Pflops。
除了超算之外,在智算領域,NVLink也迎來了機遇。
2012年,AI大佬傑弗裡·辛頓帶著兩個徒弟搞出了深度摺積神經網路AlexNet,贏得ImageNet圖像識別大賽,徹底點爆了用GPU進行AI計算這個路線,從而打開了新世界的大門。
在超算和智算雙重浪潮的助推下,輝達的GPU、NVLink、CUDA等技術,開始走向了全面爆發。
NVLink能夠實現更高的速率、更低的時延,各方面性能都明顯強於PCle。
接下來,我們看看它到底是個什麼樣的連接方式。
輝達GTC2014發佈的是NVLink的首個版本——NVLink 1.0。在2016年(GTC2016)發佈的P100晶片上,就搭載了NVLink 1.0技術。
NVLink是一種基於高速差分訊號線的序列通訊技術。
每塊P100 GPU整合了4條NVLink 1.0鏈路。每條NVLink 1.0鏈路由8對差分線(8個通道)組成。
每對差分線(每個通道)的雙向頻寬是5GB/s。所以,每條NVLink 1.0鏈路的雙向頻寬是40GB/s。
因此,每塊P100 GPU的總雙向頻寬可達160GB/s,是PCIe3 x16(總頻寬大約32GB/s)的五倍。
NVLink還支援記憶體一致性和直接記憶體訪問(DMA),進一步提高了資料傳輸效率和計算性能。
迄今為止,輝達陸續推出了NVLink 1.0~5.0,參數我就不一一介紹了,可以看下面的表格:
再來看看拓撲結構。
最簡單的兩張卡直接互連,就是槓鈴拓撲(barbell topology)。雙PCIe GPU之間,可以通過NVLink Bridge裝置實現。
四張GPU卡的話,可以使用十字交叉方形拓撲(crisscrossed square topology)。這是一種Full Mesh的網狀交叉互聯結構。
8張GPU卡,就稍微有點複雜了。
在HGX-1系統中實現了一種 “hybrid cube mesh” 8 GPU互聯結構。如下圖所示:
每一塊GPU都巧妙利用了其6條NVLink,與其他4塊GPU相連。8塊GPU以有限的NVLink數量,實現了整體系統的最佳性能。
這個圖看上去有點奇怪。實際上,如果把它以立體的方式呈現,就很清晰了:
就是串聯的架構。
當時輝達發佈的超級電腦DGX-1,就是採用了上面這個架構。
2016年,輝達CEO黃仁勳給剛剛成立的OpenAI公司贈送了世界上第一台DGX-1超級電腦,價值129000美元。
這台DGX-1擁有2顆Xeon處理器和8顆Tesla P100 GPU,整機擁有170TFLOPs的半精度(FP16)峰值性能,還配備了512GB系統記憶體和128GB GPU記憶體。
這台機器給OpenAI的早期起步提供了極大幫助,大幅縮短了他們的大模型訓練周期。
Hybrid Cube Mesh架構實現了單機內的8卡互連,但也存在一些不足:它屬於一種序列連接,8塊GPU之間並非兩兩互聯,每一塊GPU只與其他4塊GPU相連,且存在頻寬不對等的情況。
於是,2018年,為了實現8顆GPU之間的all-to-all互連,輝達發佈了NVSwitch 1.0。
NVSwitch,說白了就是“交換晶片”。它擁有18個連接埠,每個連接埠的頻寬是50GB/s,雙向總頻寬900GB/s。用6個NVSWitch,可以實現8顆V100的all-to-all連接。
引入NVSwitch的DGX-2,相比此前的DGX-1,提升了2.4倍的性能。
到NVLink 4.0的時候,DGX的內部拓撲結構增加了NVSwitch對所有GPU的全向直連,DGX內部的互聯結構得到簡化。
2022年,輝達將原本位於電腦內部的NVSwitch晶片獨立出來,變成了NVLink交換機。這意味著,一個計算節點已經不再僅限於1台伺服器,而是可以由多台伺服器和網路裝置共同組成。
目前,NVLink Switch已經發展到4.0版本。
2022年,NVLink 4.0發佈時,輝達把既有的NVLink定義為NVLink-network,然後又專門推出了NVLink-C2C(Chip to Chip,晶片到晶片之間的連接)。
NVLink-C2C是板級互連技術。它能夠在單個封裝中,將兩個處理器連接在一起,變成一塊超級晶片(Superchip)。
例如,輝達的GH200,就是基於NVLink-C2C,將Grace CPU和Hopper GPU連接成Grace Hopper超級晶片。
目前最新的NVLink代際,是NVLink 5.0,由輝達在2024年與Blackwell架構一同推出。單GPU可支援多達18個NVLink連結接,總頻寬達到1800GB/s,是NVLink 4.0的2倍,是PCIe 5頻寬的14倍以上。
具體參數前面表格有,小棗君就不多說了。
接下來,我們重點看看基於NVLink 5.0打造的DGX GB200 NVL72超節點。這個超節點的架構非常有代表性。
DGX GB200 NVL72,包含了18個GB200 Compute Tray(計算托架),以及9個NVLink-network Switch Tray(網路交換托架)。如下圖所示:
每個Compute Tray包括2顆GB200超級晶片。每顆GB200超級晶片包括1個Grace CPU、2個B200 GPU,基於NVLink-C2C技術。
所以,整個機架就包括了36個Grace CPU(18×2),72個B200 GPU(18×2×2)。
8個DGX GB200 NVL72,又可以組成一個576個GPU的SuperPod超節點,總頻寬超過1PB/s,高速記憶體高達240TB。
NVL72機架的9個Switch Tray(網路交換托架),就是9台NVLink Switch交換機。
每台NVLink Switch交換機包括2顆NVLink Switch4晶片,交換頻寬為28.8Tb/s × 2。
NVL72採用高速銅連接架構設計。
在機架的背框中,有4組NVLink卡盒(NVLink Cartridge),也就是安費諾Paladin HD 224G連接器(每個連接器有72個差分對),負責計算托架、網路托架之間的資料傳輸。
在這些連接器中,容納了5000多根節能同軸銅纜(NVLink Cables,帶有內建訊號放大器),可以提供130TB/s的全對全總頻寬和260TB/s的集合通訊(AllReduce)頻寬。
功耗方面,B200單顆晶片的功耗1000W,1顆Grace CPU和2顆B200組成的超級晶片GB200,功耗達到了2700W。整個DGX GB200 NVL72機架,功耗大約是120kW(重量大約是1.3噸)。
為了確保穩定的供電,NVL72採用了新的增強型大容量母線排設計。升級後的母線排寬度與現有Open Rack Version 3(ORV3)標準相同,但深度更大,顯著提高了其電流承載能力。新設計支援高達1400安培的電流流動,是現行標準的2倍。
NVL72是液冷機架式系統,採用了增強型免工具安裝(盲配)液冷分配管(歧管)設計,以及新型可自動對準的免工具安裝(浮動盲配)托盤連接。不僅可以提供120kW冷卻能力,還極大地簡化了安裝和維運。
對外連接方面,NVL72配置了CX7或CX8網路卡,通過400G或800G的IB網路與外部進行Scale Out互聯,對應每台compute tray(計算托架)擁有2個OSFP 800G或1.6T連接埠。
值得一提的是,NVL72還包括BlueField-3資料處理單元(DPU),可以實現雲網路加速、可組合儲存、零信任安全和GPU計算彈性。
總而言之,GB200 NVL72確實是一個性能猛獸,也是打造萬卡、十萬卡GPU叢集的利器。
憑藉自身強大的算力,NVL72在推出市場後,很快引發了搶購熱潮。微軟、Meta等科技巨頭,都進行了瘋狂採購。
據悉,GB200 NVL72伺服器的平均單價約為300萬美元(約合2139萬元人民幣),較NVL36機櫃的平均售價高出66%。輝達又又又賺得盆滿缽滿了。
好啦,以上就是關於輝達NVLink的介紹。
目前,AI算力建設浪潮仍在持續。
除了輝達之外,包括AMD、華為、騰訊、阿里等在內的很多公司都在研究和推進自己的節點內部互連(Scale Up)技術標準,也在打造更大規模的GPU叢集。 (鮮棗課堂)