Afkastamikill grafíkörgjva gagnaflutningur á AWS Sagemaker Hyperpod

Ferðalag að 3200 Gbps

HöfundarPerplexity Research

Nútíma djúpt nám innviðir krefjast oft flutnings á stórum gagnamagni á milli grafíkörgjva milli véla. Hjá Perplexity lentum við í sérstöku tæknilegubundnu verkefni: að flytja á skilvirkan hátt ósamfelld grafíkörgjva minnissvæði á milli véla á mesta mögulega hraða. Markvettvangur okkar, AWS p5 tilvik, býður upp á glæsilega 3200 Gbps netbandbreidd í gegnum 32 netkort. Þessi grein deilir ferðalagi okkar við að byggja upp sérsniðna afkastamikla netlausn sem nær 97,1% af þessari fræðilegu bandbreidd.

Tæknilega áskorunin

Notkunartilvik okkar leiddi í ljós nokkrar helstu tæknilegar kröfur:

  • Hábandbreiddarflutningur á milli fjar-grafíkörgjva á ósamfelldum minnisbútum
  • Geta til að bæta við eða fjarlægja hnúta í Kubernetes útsendingum á gangandi vinnslu án þess að raska áframhaldandi rekstri
  • Stuðningur við jafningjasamskiptamynstur

Þó að NCCL safn NVIDIA sé staðallinn fyrir dreift djúpt nám, var það ekki tilvalið fyrir notkunartilvik okkar:

  • NCCL skar sig úr í samræmdum samskiptum en krefst þess að komið sé á stöðugum "heimi", sem krefst þess að endurræsa allt klasann þegar þátttökuhnútum er breytt.
  • Samstillt samskiptalíkan NCCL eykur flókið fyrir ósamstillta vinnuálag okkar
  • Við vildum beina stjórn á minnisflutningsmynstri okkar til hagræðingar
  • Að byggja upp okkar eigin lausn veitti dýrmæt námstækifæri

Nútíma afkastamikil net

Til að skilja lausn okkar skulum við fyrst kanna hvernig nútíma afkastamikil net eru frábrugðin hefðbundnum netkerfum.

Flest net sem við notum daglega treysta á TCP/IP samskiptareglur, þar sem forrit eiga samskipti við netkortið í gegnum stýrikerfiskjarnann með því að nota innstungur. Hins vegar nota afkastamikil net RDMA (Remote Direct Memory Access) - alveg aðskilinn vélbúnaðar- og hugbúnaðarstakk sem gerir kleift að fá beinan aðgang að minni á milli véla án þess að blanda örgjörvanum í málið.

AWS veitir Elastic Fabric Adapter (EFA), sérsniðið netviðmót sem útfærir sérsniðna samskiptareglu Amazon sem kallast Scalable Reliable Datagram (SRD). Ólíkt hefðbundinni TCP/IP netkerfisnotkun þar sem afrita þarf gögn mörgum sinnum á milli notendavinnusvæðis, kjarnavinnusvæðis og netbiðminnis, leyfir EFA með RDMA beinan gagnaflutning á milli grafíkörgjvaminnis og netkortsins, sem framhjáörgjörvinn fer alveg framhjá.

Heimspeki hönnunar afkastamikilla neta

Að byggja upp afkastamikil netkerfi krefst þess að endurskoða nokkrar grundvallarforsendur:

  1. Biðminnis eignarhald: Ólíkt hefðbundnum innstungum þar sem kjarninn stýrir netbiðminni og krefst afritunar á milli notendavinnusvæðis og kjarnavinnusvæðis, krefst RDMA þess að forrit stjórni sínu eigin biðminni. Þegar forrit byrjar á netnotkun, færir það biðminnis eignarhald yfir á netkortið þar til notkuninni er lokið, sem útilokar þörfina fyrir gagnafritun.
  2. Minnisskráning: Forrit verða að skrá minnissvæði hjá stýrikerfiskjarnanum. Kjarninn setur upp sýndarvistfangakortlagningu sem gerir örgjörva, grafíkörgjvum og netkortum kleift að skilja öll sömu sýndarvistföng. Þessi skráning er einnota aðgerð sem gerir kleift að flytja gögn án afritunar í kjölfarið.
  3. Stjórnsvæði vs Gagnasvæði: Afkastamikil net skipta aðgerðum í tvo flokka:
    1. Aðgerðir stjórnsvæðis (eins og uppsetning tenginga og skráning minnis) fara í gegnum kjarnann til að tryggja öryggi
    2. Aðgerðir gagnasvæðis (raunverulegur gagnaflutningur) fara framhjá kjarnanum til að ná hámarksafköstum
  4. Móttaka fyrir sendingu: Án stjórnbiðminnis kjarnans verða forrit að setja móttökuaðgerðir inn fyrirfram og tilgreina hvar komandi gögn eiga að vera staðsett. Þetta er grundvallarbreyting frá innstungulíkaninu þar sem forrit geta tekið við gögnum hvenær sem er.
  5. Könnunartengd lokun: Í stað þess að bíða eftir tilkynningum kjarnans í gegnum kerfi eins og epoll, kanna forrit beint lokunarraðir vélbúnaðar. Þetta útilokar kostnað vegna kerfiskalla og gerir kleift að bregðast við loknum aðgerðum strax.
  6. Vélbúnaðartopfræðivitund: Skilningur og hagræðing fyrir vélbúnaðartopfræði skiptir sköpum til að ná hámarksafköstum.

Skilningur á vélbúnaðartopfræði

AWS p5 tilvik eru með þróaða innri arkitektúr. Eins og sýnt er hér að neðan inniheldur hvert tilvik tvo örgjörvatengi sem mynda tvo NUMA hnúta, þar sem hver NUMA hnútur tengist fjórum PCIe rofum:

Kerfistopology með tveimur NUMA-hnútum, átta GPU og 32 EFA-tengi.

Undir hverjum PCIe rofa finnum við:

  • Fjögur 100 Gbps EFA netkort
  • Einn NVIDIA H100 grafíkörgjvi
  • Einn NVMe SSD

Gagnaleiðirnar fyrir TCP/IP og RDMA flutning sýna grundvallarmun á nálgunum þeirra:

TCP og GPUDirect RDMA gagnaflutningsleiðir milli GPU, notendaforrita, Linux-kjarna og netviðmóta.

Með TCP/IP (vinstri hlið) verður að afrita gögn mörgum sinnum:

  1. Frá grafíkörgjvaminni yfir í forritsbiðminni í notendavinnusvæði
  2. Úr notendavinnusvæðisbiðminni í kjarnabiðminni
  3. Úr kjarnabiðminni í netkort
  4. Andstæða ferlið á sér stað á móttökuhliðinni

Hver afritunaraðgerð eyðir örgjörvalotum og minnisbandbreidd. Forritið þarf einnig að skipta um samhengi á milli notendavinnusvæðis og kjarnavinnusvæðis fyrir hverja netnotkun.

Aftur á móti veitir RDMA (hægri hlið) sannan gagnaflutning án afritunar:

  1. Netkortið les beint úr grafíkörgjvaminni
  2. Gögn ferðast beint á fjar-netkortið
  3. Fjar-netkort skrifar beint í áfangastað grafíkörgjvaminni
  4. Forritið þarf aðeins að athuga lokunarröð (CQ) í notendavinnusvæði til að vita hvenær flutningnum er lokið

Með RDMA og réttri vélbúnaðarpörun þarf flutningur gagna á milli tveggja grafíkörgjva aðeins að fara í gegnum staðbundna PCIe rofann og netið:

Pöruð staðbundin og fjarlæg GPU tengd í gegnum PCIe Gen5 x16 og fjórar 100 Gbps EFA-tengingar.

Aftur á móti verða TCP/IP flutningar að afrita gögn mörgum sinnum í gegnum aðalminni, sem veldur verulegri stíflu á PCIe rútu:

Þrengsli á kerfisrútu vegna TCP-flutninga milli aðalminnis, CPU, fjögurra PCIe-rofa og fjögurra GPU.

Að byggja með libfabric

Við notuðum libfabric - ramma sem veitir almennt viðmót fyrir efnisþjónustu. Útfærsla okkar notar tvær tegundir af RDMA aðgerðum:

  • Tveggja hliða RDMA (SEND/RECV) fyrir stjórnskilaboð sem bera lýsigögn um minnissvæði (t.d. hliðrun og stærðir).
  • Einhliða RDMA WRITE fyrir raunverulegan gagnaflutning, þar sem hver WRITE aðgerð sér um einn samfelldan minnisbút.

Ferðalag að hámarksafköstum

Þróun okkar fór í gegnum nokkur stig:

  1. Útfærði grunn einstefnuskilaboðaflutning með því að nota SEND/RECV
  2. Útvíkkað ítvíhliða samskipti
  3. Bætti við GPUDirect RDMA WRITE fyrir beinan flutning á milli grafíkörgjva
  4. Stækkað til að sjá um marga samtímis flutninga
  5. Kynnti biðröðun aðgerða til að tryggja áreiðanleika
  6. Náði 97,4% bandbreiddarnýtingu á einu netkorti

Þegar skalað var upp í 32 netkort útfærðum við nokkrar mikilvægar hagræðingar:

  1. Biðröðun aðgerða: Í stað þess að senda aðgerðir beint á netkort, viðhöldum við biðröð á forritsstigi. Þetta veitir styrk gegn netþrengslum og einfaldar forritunarlíkanið.
  2. Netupphitun: Að koma á tengingum fyrirfram bætti ræsivinnslu.
  3. Fjölþráðun: Sérstakir þræðir fyrir netaðgerðir hvers grafíkörgjva.
  4. Festa örgjörvakjarna: Að tengja þræði við tiltekna örgjörvakjarna til að forðast NUMA áhrif og skyndiminna mistök.
  5. Ríkjaskipting: Að draga úr samkeppni á milli þráða.
  6. Bunkun aðgerða: Að senda margar aðgerðir saman.
  7. Löt birting aðgerða: Aðgerðir eru fyrst settar í biðröð í forritinu. Eftir að hafa kannað lokunarröðina reynum við að senda biðaðgerðir á netkortið, sem tryggir skilvirka nýtingu netauðlinda.
  8. NUMA-meðvituð úthlutun auðlinda: Úthluta libfabric auðlindum eins og lokunarröðum á réttum NUMA hnúti til að lágmarka töf á minnisaðgangi.

Með þessum hagræðingum náðum við lokaframmistöðu upp á 3.108 Gbps - 97,1% af fræðilegu hámarksbandbreidd.

Myndbandið hér að neðan sýnir skipanalínuforrit okkar í aðgerð. Það flytur ósamfellda búta af grafíkörgjvaminni yfir á fjarhnút og nær sendingarhraða upp á 3108.283 Gbps - sem sýnir nánast fræðilega bandbreiddarnýtingu netinnviðanna:

Niðurstaða

Að byggja upp afkastamikit netkerfi krefst þess að skilja bæði vélbúnaðararkitektúr og meginreglur kerfishönnunar. Þó að söfn eins og NCCL veiti frábærar lausnir fyrir algeng mynstur, eru stundum sérsniðnar lausnir nauðsynlegar fyrir sérstakar kröfur.

Ferðalag okkar sýnir að það er hægt að ná nánast fræðilegum netafköstum með vandvirkni við kerfisarkitektúr, vélbúnaðartopfræði og ýmsar hagræðingartækni. Lykillinn er ekki aðeins að skilja einstaka íhluti, heldur hvernig þeir hafa samskipti til að mynda heilt kerfi.

Ítarleg tæknileg yfirferð á þessu ferðalagi, þar á meðal útfærsluupplýsingar og kóðadæmi, er fáanleg í okkar opna hugbúnaðarsafni.

Tilvitnun

BibTeX
@online{perplexity2025HighPerformanceGpuMemoryTransferOnAwsSagemakerHyperpod,
  author = {{Perplexity} and Lequn Chen and Phi Hoang},
  title = {{High-performance GPU memory transfer on AWS Sagemaker Hyperpod}},
  date = {2025-02-10},
  url = {https://www.perplexity.ai/hub/blog/high-performance-gpu-memory-transfer-on-aws-sagemaker-hyperpod}
}