AMD 21. augustā nosūtīja Linux kodola izstrādātāju sarakstam divas ielāpu sērijas UALink atbalstam. Pirmajā ir 95 ielāpi un aptuveni 7000 koda rindu. Tajā ir gan jaunā kopnes pamatinfrastruktūra, gan tās sasaiste ar amdgpu grafikas draiveri. Abas sērijas sūtīja Alex Deucher, amdgpu uzturētājs.
Galvenais, ko šis kods dod: viens GPU var tieši lasīt un rakstīt otra GPU atmiņā pa UALink kopni. Kopēšanas nav. Atšķirībā no RDMA tā ir tieša ielāde un saglabāšana pa kopni, tāpat kā piekļuve savai vietējai atmiņai.
Kas ir UALink
UALink ir atklāts standarts GPU un citu AI paātrinātāju savienošanai vienā skaitļošanas kopā datu centrā. UALink 200G 1.0 specifikācija dod 200 GT/s uz vienu līniju, bet pati signalizācija notiek ar 212,5 GT/s, lai segtu virstēriņus. Saiti var būvēt kā x1, x2 vai x4. Četru līniju saite sasniedz 800 GT/s katrā virzienā. Vienā domēnā drīkst būt līdz 1024 paātrinātājiem.
Konsorcijā ir vairāk nekā 85 uzņēmumi. Starp tiem ir AMD, Apple, AWS, Google, Intel, Meta, Microsoft, Cisco un HPE. Specifikācija ir publiski lejupielādējama.
Salīdzinājumam NVIDIA NVLink ir slēgts standarts. GB200 NVL72 savieno 72 Blackwell GPU vienā NVLink domēnā ar 1,8 TB/s uz vienu GPU un 130 TB/s kopā. UALink specifikācijas 1024 paātrinātāji pagaidām ir skaitlis uz papīra. Ielāpu sērija kodolam ir pirmais solis, lai tas kļūtu par kodu, ko var palaist.
NPA adreses un attālinātie TLB shootdown
Kopā savienotie GPU strādā ar kopīgu fizisko adrešu telpu, ko sauc par NPA jeb Network Physical Address. Telpa ir sadalīta starp GPU. Katrs GPU uztur savu lapu tabulu kopu savai NPA daļai līdzīgi kā GPUVM gadījumā.
Lietotnes attālināto atmiņu redz kā necaurspīdīgu deskriptoru. Konkrētās NPA adreses GPU apmainās savā starpā tieši, eksportētājs ar importētāju. Atmiņas koplietošanai vajag skaidru eksporta un importa atļauju abās pusēs.
Sarežģītākā daļa ir tā, ka eksportētā atmiņa nav piesprausta.
Eksportētā atmiņa nav piesprausta. Eksportētājam var vajadzēt to pārvietot vai padarīt importētājiem nepieejamu.
Tā ielāpu sērijas pavadvēstulē raksta Deucher. Praksē no tā izriet divi mehānismi. Eksportētāja pusē TTM izstumšana vai MMU paziņojums izsauc attālinātu TLB shootdown pārējos GPU. Importētāja pusē notiek attālināta klātbūtnes pārbaude ar atkārtotu mēģinājumu, ja lapa tobrīd nav pieejama.
TLB shootdown parastā datorā nozīmē, ka viens procesora kodols izmet adrešu tulkošanas ierakstu no kešatmiņas un liek to pašu izdarīt pārējiem kodoliem. Šeit tas pats notiek pa kopni starp atsevišķām mikroshēmām. Katrs tāds paziņojums ir tīkla ceļojums. Cik dārgs, rādīs mērījumi uz reālas dzelzs.
Šī ir vieta, kur jaunā apakšsistēma atšķiras no visa, kas kodolā jau ir. dma-buf koplietošana starp draiveriem strādā vienas mašīnas ietvaros. Šeit lapu tabulas un izstumšanas paziņojumi šķērso fizisku kopni starp atsevišķām mikroshēmām.
Kāpēc 95 ielāpi ir daudz
7000 rindas uz 95 ielāpiem ir vidēji 74 rindas vienā ielāpā. Tas ir raksturīgi jaunai apakšsistēmai, kur autors darbu sadala sīkos gabalos, lai uzturētāji to vispār spētu pārskatīt. Phoronix pamanīja, ka sērija sarakstā nonāca piektdienas pēcpusdienā.
Otrā sērija ir tikai trīs ielāpi. Tajā ir ioctl saskarne un dokumentācija atmiņas eksportam un importam. Šī daļa ir uapi jeb saskarne ar lietotāja telpu. Pēc iekļaušanas kodolā to vairs nemaina, tāpēc tieši šie trīs ielāpi saņems visstingrāko pārskatīšanu.
Jaunas kodola apakšsistēmas parasti iestrēgst tieši uz uapi. Iekšējo kodu vēlāk var pārrakstīt, ioctl saskarni ne.
Pirmā versija sarakstā nav tas pats, kas iekļaušana kodolā. Kodola apakšsistēma šādā apjomā parasti iziet vairākas atkārtotas versijas. Šī jau ir otrā UALink sērija no AMD.
Kāda dzelzs šo kopni izmantos
Kods nāk vienlaikus ar dzelzi. AMD Helios ir uzņēmuma pirmais pilnais skapja mēroga AI risinājums. Tas savieno līdz 72 Instinct MI455X paātrinātājiem vienā skapī ar kopējo 260 TB/s joslas platumu starp GPU. Sērijveida piegādes sākas 2026. gada otrajā pusē.
Skapja iekšējais savienojums ir UALink pa Ethernet jeb UALoE. Pirmajās sistēmās komutāciju veic Broadcom kopīgi izstrādāta mikroshēma, jo īpaši UALink komutācijai būvētas mikroshēmas no Astera Labs un citiem ražotājiem sērijveidā nebūs līdz 2027. gadam.
Tāpēc 72 GPU vienā skapī ir tas pats skaitlis, ko dod NVL72. Specifikācijas 1024 paātrinātāji prasa gan komutācijas mikroshēmas, gan kodola kodu. Otrais tikko nonāca pārskatīšanā.
Ko tas maina izstrādātājiem
Šobrīd daudzu GPU apmācības kods atmiņu pārvieto ar skaidriem kopēšanas izsaukumiem. Katra pārsūtīšana ir atsevišķa operācija ar savu latentumu un savu buferi. UALink modelis to noņem. Attālinātā atmiņa ir adreses telpā. Slodze ar to strādā tāpat kā ar vietējo atmiņu.
Necaurspīdīgais deskriptors saskarnē ir apzināta izvēle. Lietotne fizisko NPA adresi neredz un tai to nevajag. Kodolam paliek brīvība mainīt adrešu izkārtojumu vēlāk, kad parādīsies citu ražotāju dzelzs.
Cena par to ir jaunas kļūdu klases. Ja eksportētājs atmiņu pārvieto, kamēr importētājs to lasa, atbildi dod attālinātā klātbūtnes pārbaude, nevis kopēšanas izsaukuma atgriezes kods. Esošie atkļūdošanas rīki šādu situāciju vēl nerāda.
Kodolā UALink ienāk kā atsevišķa pamatinfrastruktūra, nevis kā amdgpu iekšēja lieta. Pārējie konsorcija dalībnieki savus draiverus var pievienot tai pašai kopnei. Vai viņi to darīs, būs redzams pēc tā, kas parādīsies sarakstā nākamajos mēnešos.
Specifikāciju konsorcijs publicēja 2025. gada aprīlī. Līdz pirmajai kodola sērijai pagāja 16 mēneši.
Komentāri
Šim rakstam vēl nav komentāru. Esi pirmais, kurš dalās ar savu viedokli.