NVLink

**NVLink** on NVIDIA poolt välja töötatud suure jõudlusega ühendustehnoloogia, mille eesmärk on kiirendada andmevahetust eri arvutikomponentide – eeskätt graafikaprotsessorite (GPU-de) ja keskprotsessorite (CPU-de) – vahel. Tegemist on alternatiiviga traditsioonilistele ühendusstandarditele, nagu PCI Express, pakkudes suuremat ribalaiust ja madalamat latentsust süsteemides, kus andmete kiire liikumine on kriitilise tähtsusega.

NVLink on üles ehitatud modulaarse ja skaleeritava arhitektuurina, mis võimaldab luua tihedalt integreeritud süsteeme, kus mitu protsessorit saavad omavahel otse suhelda. Selline lähenemine muudab selle eriti sobivaks tehisintellekti, teadusarvutuste ja pilvepõhiste töökoormuste jaoks, kus andmevahetuse maht ja kiirus mõjutavad otseselt rakenduste tõhusust.

Lisaks GPU ja CPU vahelisele ühendusele võimaldab NVLink ka otseühendusi GPU-de vahel („peer-to-peer“ suhtlus), mis omakorda parandab kogu süsteemi jõudlust ja skaleeritavust. NVLinki kasutatakse paljudes NVIDIA tipptasemel platvormides ning see on kujunenud oluliseks komponendiks kaasaegsete andmekeskuste ja superarvutite arhitektuuris.

## Taust
Aastaid on PCI Express (PCIe) olnud laialdaselt kasutatav standard ühenduste loomiseks erinevate arvutikomponentide vahel. Kuid tänapäevased töökoormused, mis hõlmavad massiivseid andmekoguseid ja järjest keerukamaid arvutusprotsesse, on viinud olukorrani, kus PCIe läbilaskevõime ja latentsus ei vasta enam uue põlvkonna nõudmistele. 

Selle probleemkoha ületamiseks töötas NVIDIA välja NVLinki – ühendustehnoloogia, mille eesmärk on pakkuda oluliselt suuremat andmeedastuskiirust ning võimaldada paindlikumat ja tõhusamat suhtlust mitme komponendi, sealhulgas graafika- ja keskprotsessorite vahel. NVLinki loomisel peeti silmas just skaleeritavust ja tulevikukindlust, et toetada suuri, andmemahukaid rakendusi.

NVLink jõudis laiemasse tähelepanu keskpunkti 2018. aastal, kui see mängis võtmerolli kahe maailma kõige võimsama superarvuti – Summit ja Sierra – arhitektuuris. Mõlemad süsteemid kasutasid NVLinki CPU-de ja GPU-de vahelise andmeside loomiseks, mis aitas neil saavutada seninägematut jõudlust teaduslikes arvutustes ja tehisintellekti töökoormustes.

## Eesmärk
NVLinki tehnoloogia on loodud selleks, et võimaldada oluliselt suuremat andmevahetuskiirust CPU-de ja GPU-de vahel võrreldes traditsiooniliste ühendusstandarditega. See saavutatakse mitme paralleelse ühenduse abil, mida saab kasutada ühe seadme kohta. Selline lähenemine tagab suurema ribalaiuse ja võimaldab andmete liikumist palju kiiremini ning tõhusamalt.

Üheks NVLinki oluliseks eeliseks on ka nn „peer-to-peer“ suhtlusvõimekus, mis tähendab, et erinevad GPU-d saavad omavahel otse andmeid vahetada, ilma et need peaksid läbima keskset lülitit või protsessorit. See vähendab latentsust ja koormust kogu süsteemile, võimaldades suuremat läbilaskevõimet ja paremat skaleeritavust.

Sellised omadused on muutumas üha olulisemaks, kuna paljud sektorid – alates finantsasutustest ja autotööstusest kuni tootmisettevõtete ja haiglateni – võtavad kasutusele tehisintellektil põhinevaid superarvuteid. Need süsteemid peavad suutma töödelda, analüüsida ja mõista üha kasvavaid andmehulkasid, et teha kiireid ja täpseid otsuseid reaalajas.

## NVLinki areng
Juba algusest on iga uue versiooni välja laskmisega tehtud olulisi muudatusi arengus.

### NVLink 1.0 (Pascal arhitektuur)
NVLink 1.0 toodi välja aastal 2014 ja see rakendati esmakordselt P100 graafikaprotsessoris. Selle tehnoloogia puhul ühendatakse kaks GPU-d (ehk graafikaprotsessorit) nelja NVLinki kaudu. Iga link sisaldab kaheksat kanalit, millest igaüks suudab andmeid edastada kiirusel 20 GB/s. See tähendab, et kahe GPU vahel on võimalik saavutada kahesuunaline ribalaius kuni 160 GB/s, mis on ligikaudu viis korda suurem kui PCIe 3.0 x16 puhul. 

Üks NVLink koosneb 16 diferentsiaaljuhtmepaari ulatuses, mis toetavad kaheksat kanalit mõlemas suunas. Diferentsiaalpaaride otsad on tähistatud kui PHYS, mille sees paiknevad SerDes-komponendid. 

NVLink 1.0 võimaldab nelja GPU ühendamist tasapinnalise võrgutopoloogiana, kus igal GPU-l on otsene punkt-punkti ühendus teistega. Kui kasutada kaheksat GPU-d, saab moodustada kuupvõrgutopoloogia, mis on näiteks DGX-1 serveri aluseks. Oluline on märkida, et sellises konfiguratsioonis ei moodustu täielikult ühendatud võrk – mitte kõik GPU-d pole otseselt seotud kõigi teistega.

### NVLink 2.0 (Volta)
2017. aastal esitles NVIDIA oma teise põlvkonna NVLinki tehnoloogiat. See võimaldab ühendada kaks V100 GPU kiipi kuue NVLinki ühenduse abil, kus iga NVLink sisaldab kaheksat kanalit. Kanalite kiirust suurendati 25 GB/s-ni, mille tulemusena saavutati kahesuunaline ribalaius 300 GB/s, mis on peaaegu kahekorda võrreldes NVLink 1.0-ga.

Lisaks NVIDIA töötas välja ka NVSwitchi, mis toimib kõrge jõudlusega lülitina GPU-de vahel. See võimaldab mitmel NVLink ühendusel töötada koos, et luua süsteemi sees suur ühendatud võrgustik. NVSwitch võimaldab täis ribalaiust kogu süsteemi ulatuses ja ei blokeeri GPU-de vahelist liiklust.

### NVLink 3.0 (Ampere)
2020. aastal tutvustas NVIDIA kolmanda põlvkonna NVLinki tehnoloogiat, mis tähistas olulist sammu edasi andmevahetuse ribalaiuse ja graafikaprotsessorite (GPU-de) omavahelise ühenduvuse osas. NVLink 3.0 eesmärk oli pakkuda veelgi suuremat jõudlust võrreldes eelmiste põlvkondadega, et vastata kasvavatele nõudmistele andmemahukates arvutustöödes, sealhulgas tehisintellekti (AI), masinõppe ja teaduslike simulatsioonide valdkonnas.

Selle põlvkonna uuendusena sai võimalikuks ühendada kaks A100 tüüpi GPU-d omavahel kuni 12 NVLinki ühenduse abil. See tähendas varasemaga võrreldes mitte ainult suuremat linkide arvu, vaid ka oluliselt suuremat andmeedastusvõimekust. Iga NVLink koosneb neljast eraldiseisvast andmekanalist, mis töötavad üheaegselt. Nende kanalite töökiirus kasvas võrreldes eelnevate põlvkondadega oluliselt – igaüks neist suutis edastada andmeid kiirusel kuni 50 GB/s. Kui kõik kanalid ja lingid kokku liita ning arvestada, et andmevahetus toimub kahesuunaliselt, saavutatakse kahe GPU vahel maksimaalne koguribalaius kuni 600 GB/s. See tähendab, et NVLink 3.0 pakub kaks korda rohkem ribalaiust kui NVLink 2.0, mis kasutas varem aeglasemaid kanaleid ja väiksemat linkide arvu.

Selle tehnoloogia toel oli võimalik luua veelgi keerukamaid ja võimsamaid arvutusklastreid. Kuna linkide arv suurenes, tuli uuendada ka lülitustehnoloogiat. Just selleks otstarbeks toodi välja täiustatud NVSwitch, mille kolmas põlvkond kasutas nüüd 36 porti. Iga port suutis andmeid edastada samal tasemel – 50 GB/s. Selline arhitektuur võimaldas mitmel GPU-l suhelda teineteisega samaaegselt ja suure läbilaskevõimega, ilma et tekiks kitsaskohti andmeside mahtudes.

NVLink 3.0 rakendati näiteks NVIDIA DGX A100 süsteemis, mis kujutab endast väga võimast andmetöötlusmasinat, mõeldud just intensiivsete tehisintellekti töövoogude ja modelleerimiste tarbeks. DGX A100 sisaldab kaheksat A100 GPU-d, mis on omavahel ühendatud nelja NVSwitch-lülitiga. Need neli lülitit moodustavad sisemise võrgu, mille kaudu kõik kaheksa GPU-d saavad üksteisega suhelda, justkui oleksid nad kõik otseselt omavahel ühendatud. Selline arhitektuur võimaldab GPU-del jagada andmeid kiiresti ja ilma olulise viivituseta, mis on kriitilise tähtsusega just nendes rakendustes, kus vajalik on suur paralleelsus ja pidev sünkroniseerimine.

Kõik see – 12 NVLinki kahe GPU vahel, 50 GB/s kanalikiirus, 600 GB/s kahepoolne ribalaius ja 36 pordiga NVSwitchid – võimaldas NVIDIA-l ehitada süsteeme, millel oli enneolematu jõudlus ja paindlikkus. DGX A100 kujunes väga populaarseks valikuks tippkeskuste, ülikoolide, teadusasutuste ja ettevõtete seas, kes tegelesid järgmise põlvkonna AI mudelite arendamisega või muude arvutusmahukate töödega.

### NVLink 4.0 (Hopper)
2022. aastal teatas NVIDIA NVLinki neljanda põlvkonna tehnoloogia kasutuselevõtust. Selle uue põlvkonna NVLink võimaldas veelgi suuremat andmeedastuskiirust ja paremat ühenduvust kahe GPU vahel. Konkreetsemalt sai sellega võimalikuks ühendada kaks H100 tüüpi GPU kiipi kuni 18 eraldiseisva NVLinki ühendusega. Igaüks neist NVLinkidest koosneb kahest kanalist, mis on omavahel paralleelselt ühendatud. Oluline uuendus seisneb selles, et iga kanal toetab nüüd kuni 100 GB/s andmeedastuskiirust, tänu PAM4 ehk Pulse-Amplitude Modulation 4 tehnoloogiale, mis võimaldab suuremat andmetiheduse edastust sama sagedusega. Selle tulemuseks on kahe GPU vahel kokku kahesuunaline andmevahetusvõimekus ehk ribalaius kuni 900 GB/s. See tähendab, et iga GPU saab saata ja vastu võtta andmeid ülikiirelt, tagades väga kõrge jõudluse suurte andmemahtude töötlemisel – näiteks tehisintellekti, teaduslike arvutuste või süvaõppe mudelite treenimise käigus. 

Koos NVLink 4.0-ga toodi turule ka uuendatud versioon NVSwitchist. Uus NVSwitchi põlvkond võimaldab ühendada veelgi rohkem GPU-sid, sest nüüd toetab iga NVSwitch koguni 64 porti. Iga port on võimeline töötama 50 GB/s kiirusel, mis loob võimsa ja skaleeritava võrgu GPU-de vahelises suhtluses.

Seda tehnoloogiat rakendatakse näiteks NVIDIA DGX H100 süsteemis. 

Tuleb tähele panna olulist tehnilist erinevust kahe ühendustüübi vahel. Nimelt on optilised ühendused – need, mis suunavad andmeid NVSwitchist välja – ühepoolse ribalaiusega. See tähendab, et andmeid saab saata ainult ühes suunas korraga. Vastupidi sellele kasutavad GPU-de omavahelised ühendused, kus rakendatakse NVLinki, kahesuunalist andmeedastust, mis võimaldab samaaegselt andmete saatmist ja vastuvõttu. Selline topelt võimekus on eriti oluline AI-kiipide töö jaoks, kuna andmeid tuleb pidevalt kiiresti mõlemas suunas liigutada.

### NVLink 5.0 (Blackwell)
2024. aastal tutvustas NVIDIA oma kiiremaid GPU-de vahelise ühenduse tehnoloogiaid, mille uusim versioon on viienda põlvkonna NVLink. Tegemist on spetsiaalselt loodud ülikiire andmeside lahendusega, mis võimaldab mitmel GPU-l vahetult omavahel suhelda samas süsteemis, oluliselt suurendades andmeedastuskiirust ning vähendades latentsust.

See uus NVLink 5.0 standard on loodud silmas pidades NVIDIA Blackwelli arhitektuuriga mitme GPU süsteeme. Võrreldes eelkäija, neljanda põlvkonna NVLinkiga, mis pakkus kuni 900 GB/s kahepoolset andmeedastuskiirust, on uue versiooni läbilaskevõime kahekordne – koguni 1,8 TB/s. Selline edastusvõime on lausa 14 korda suurem kui samal perioodil kasutusel olnud PCI Express 5.0 standardi maksimaalne läbilaskevõime, mis näitab NVLinki märkimisväärset tehnoloogilist edasiminekut.

Selleks et saavutada tõhus ja tõkestusteta andmevahetus kõigi GPU-de vahel ühes serveririiulis, kasutatakse NVLink Switchi kiipi, mis toimib kui riiulitasemel keskne ühenduspunkt. Blackwelli arhitektuuriga graafikaprotsessorid suudavad tänu 18-le 100 GB/s ühendusele saavutada 1,8 TB/s kogu läbilaskevõime igale GPU-le. Need ühendused moodustavad võrguvõrgustiku ehk „mesh“-topoloogia, mis võimaldab igal protsessoril suhelda kõigiga otse, ilma et andmed peaks läbima mitut vahepunkti.

Tänu sellele tehnoloogiale saab ühendada kuni 576 GPU-d üheks terviklikuks kiirendiks, mis toimib justkui üksainus ülivõimas arvutusüksus. Selline süsteem on märkimisväärselt tõhus eriti tehisintellekti ja masinõppe valdkondades, kus andmete töötlemise maht ja kiirus on määrava tähtsusega.

## Kasutusalad
NVLink-tehnoloogiat rakendatakse paljudes NVIDIA platvormides, sealhulgas tuntud HGX ja DGX süsteemides ning ka kõige uuemas lahenduses – GB300 NVL72. Viimane neist ühendab omavahel koguni 72 graafikaprotsessorit, moodustades neist ühe võimsa kiirenduselemendi.

Peale GPU-põhiste platvormide leiab NVLink kasutust ka järgmise põlvkonna NVIDIA protsessorite puhul, nagu Grace CPU ja Grace Hopper Superchip. Nendes süsteemides võimaldab NVLink kiipide vahel ühise mäluaadressiruumi kasutamist, mis lihtsustab mäluhalduse protsesse ning tõstab oluliselt andmeedastuse efektiivsust protsessori ja graafikakaardi vahel.

Näiteks Grace CPU Superchip ühendab kaks protsessorikiipi NVLinki abil, võimaldades saavutada kokku 144 Arm Neoverse V2 südamikku. Selline arhitektuur on loodud eeskätt pilvekeskkondade, suurettevõtete ja kõrgjõudlusarvutuste (HPC) tarbeks, kus on oluline saavutada kõrge jõudlus energiasäästlikul viisil.

Grace CPU ja Grace Hopper Superchipid sobivad eriti hästi suurte ja keerukate pilvepõhiste töökoormuste jaoks, kus lisaväärtust pakub just nende energiatõhusus koos kõrge töökindlusega.

Üks tähelepanuväärsemaid näiteid NVLinki praktilisest rakendusest on Šveitsi riikliku arvutuskeskuse tulevane superarvuti Alps. See tipptehnoloogiline süsteem hakkab olema üks esimesi, mis põhineb Grace Hopperi platvormil ning on suunatud keeruliste teaduslike probleemide lahendamisele – alates astrofüüsikast kuni kvantkeemia uurimisteni.

NVLinki võib võrrelda omamoodi ühenduspesaga, nagu LEGO klots, mis võimaldab komponentide tõhusat ja modulaarset ühendamist. Näiteks NVIDIA DGX süsteemides on kõik kaheksa GPU-d ühendatud omavahel NVSwitchi kaudu, mis tagab kiire ja otsese andmeside nende vahel. Selline arhitektuur loob tihedalt integreeritud NVLink-võrgu, kus kõik serveri GPU-d töötavad ühise süsteemina, võimaldades optimaalset ressursside jagamist ja koormuse hajutamist.

## Eelised võrreldes PCIe-ga
Kuigi PCIe standard on endiselt laialdaselt kasutuses ja täidab oma rolli paljudes süsteemides, pakub NVLink selle kõrval mitmeid selgeid eeliseid, eriti suurte andmemahtude ja keerukate arvutustööde puhul.

**Suurem andmete läbilaskevõime:** NVLink võimaldab kasutada mitut paralleelset ühendust, mille kaudu saab oluliselt suuremas mahus andmeid liigutada võrreldes traditsioonilise PCIe-ga. See teeb NVLinkist sobivama lahenduse süsteemides, kus andmevahetus graafikaprotsessorite vahel peab olema eriti kiire ja tõhus.

**Väiksem latentsus:** kuna GPU-d suhtlevad NVLinki kaudu otse omavahel, ilma et peaksid läbima keskse PCIe kontrolleri, on andmeedastus märgatavalt kiirem ja viivitused väiksemad. See tagab parema jõudluse reaalajas töötlevates rakendustes.

**Parem skaleeritavus:** NVLinki arhitektuur toetab oluliselt suurema arvu GPU-de ühendamist ühte süsteemi kui PCIe. See muudab NVLinki ideaalseks lahenduseks suurtes superarvutites ja andmekeskustes, kus süsteemi komponentide koordineeritud töö on kriitilise tähtsusega.

**Tõhusam energiakasutus:** Kiirem andmeedastus ja väiksemad ooteajad tähendavad, et süsteemid töötavad efektiivsemalt ja kulutavad vähem energiat samade ülesannete täitmiseks. See on eriti oluline andmekeskuste ja pilvekeskkondade puhul, kus energiatõhusus mõjutab märkimisväärselt tegevuskulusid.

Oluline on ka märkida, et x86-põhistes süsteemides toimub CPU ja GPU vaheline ühendus tavapäraselt ainult PCI Expressi kaudu. Kuid isegi sellistes süsteemides saavad GPU-d omavahel andmeid vahetada NVLinki vahendusel. Samas, IBM-i POWER8 protsessoritega platvormidel on võimalik CPU ja GPU vahel kasutada juba otseselt NVLinki ühendust, mis tagab veelgi suurema jõudluse ja parema integratsiooni komponentide vahel.

## Tulevik
NVIDIA NVLink ja NVSwitch moodustavad tänapäevaste andmekeskuste arhitektuuris olulise selgroo, olles kriitilise tähtsusega komponentidevahelise kiire andmevahetuse tagamisel. See on eriti oluline valdkondades, kus töötlemist vajavad tohutud andmehulgad ja kus süsteemide jõudlus sõltub otseselt nende ühenduste efektiivsusest. Sellisteks valdkondadeks on näiteks:

* keerukate loodus- ja keskkonnanähtuste simulatsioonid,
* masinõppe- ja tehisintellekti mudelite koolitusprotsessid,
* reaalajas toimuv suurandmete analüüs,
* tööstuses kasutatavate digitaalsete kaksikute (digikaksikute) modelleerimine ja jälgimine.

Kuna nii andmemahtude kui ka tehisintellekti mudelite keerukus kasvab kiiresti, muutuvad sellised suure jõudlusega ühendustehnoloogiad nagu NVLink tulevikus järjest olulisemaks. NVIDIA jätkuvad investeeringud sellesse valdkonda näitavad selgelt, et ainult GPU toorest arvutusvõimsusest ei piisa – sama tähtis on see, kui kiiresti ja tõhusalt need protsessorid omavahel andmeid vahetada suudavad. Võimekus kiireks andmesideks on seega lahutamatu osa kõrgjõudluslike süsteemide üldisest efektiivsusest.

## Välislingid

* https://blogs.nvidia.com/blog/what-is-nvidia-nvlink/
* https://www.microway.com/hpc-tech-tips/comparing-nvlink-vs-pci-e-nvidia-tesla-p100-gpus-openpower-servers/
* https://www.naddod.com/blog/unveiling-the-evolution-of-nvlink?srsltid=AfmBOoq0v1IWE1BT-ePLq0KRnaYNDuRqfNs_vkeduIPwiVJ_C6LyJnGz 
* https://hardwarenation.com/resources/blog/nvidia-nvlink-5-0-accelerating-multi-gpu-communication/ 
* https://www.atlantic.net/gpu-server-hosting/nvidia-nvlink-how-it-works-use-cases-and-critical-best-practices/ 
* https://www.fibermall.com/blog/evolution-of-nvlink.htm?srsltid=AfmBOoqg_xhyItA3vwtpJCEMRYkbGHXda9B1Y1RzNSuqdkxqLAzQQk7U#