"Qwen" priegloba "Blackwell" sistemoje

Kaip aptarnaujame "Qwen3 235B" ant "NVIDIA GB200 NVL72" stovų, sumažindami išvedimo sąnaudas ir išsaugodami modelio tikslumą.

AutoriaiPerplexity Research

"NVIDIA GB200 NVL72" stiepiniai stovai su "NVIDIA Blackwell" grafiniais procesoriais (GPU), sujungtais per 72 krypčių "NVLink", puikiai tinka dideliems ekspertų mišinio (MoE) modeliams diegti. Šiame tinklaraščio įraše aprašome išvedimo sąranką, kuri aptarnauja po apmokymo pritaikytus "Qwen3 235B" modelius, palaikančius dalį "Perplexity" srauto. Rodyti, kaip pritaikėme savo vidinį išvedimo variklį, kad išnaudotume pažangius "NVIDIA Blackwell" GPU tenzorių branduolius ir didelės spartos jungtis. Naudodami šią aparatinę įrangą, apdorojame daugiau srauto mažesnėmis sąnaudomis, neaukodami pagrindinių modelių tikslumo.

Diegimas "GB200 NVL72" sistemose

"GB200 NVL72" stiepiniai stovai susideda iš 18 mazgų su 2 ARM pagrindu sukurtais "NVIDIA Grace" centriniais procesoriais ir 4 "Blackwell" pagrindu sukurtais GPU, kurių kiekvienas turi 180 GB HBM atminties. Visi 72 GPU yra sujungti per "NVLink" ir 18 "NVLink Switch ASIC", todėl tarp bet kurių dviejų lygiaverčių įrenginių užtikrinamas 1800 GB/s pralaidumas ir bendrai naudojama pakankama atmintis trilijono parametrų modeliams talpinti. Be to, "ConnectX-7 InfiniBand" adapteriai užtikrina papildomą 400 Gb/s pralaidumą tiek stiepinio stovo mazguose, tiek tarp gretimų stiepinio stovo stovų.

Srautui valdyti pasirinkome po apmokymo pritaikyti ir aptarnauti "Qwen" modelius. Šiame tinklaraščio įraše daugiausia dėmesio skiriame "Qwen3 235B", tačiau daugelis aptariamų aptarnavimo būdų ir našumo charakteristikų yra panašios į naujesnius "Qwen3.5 397B" ir "122B" modelius, į kuriuos migruojame. Lygiagretizavimo požiūriu tiesinis dėmesys yra panašus į visišką savidėmesį, o esamo MoE sluoksnio įgyvendinimą galima lengvai pritaikyti naujiems pagrindiniams nariams pritaikyti. Kad išlaikytume pastovų dekodavimo greitį ir maksimaliai padidintume pralaidumą, nusprendėme atskirti išankstinį užpildymą nuo dekodavimo ir abiejų rūšių mazgams pritaikyti skirtingas lygiagretizavimo strategijas. Ryšys tarp užpildytuvo ir dekoderio palaikomas per "InfiniBand", o "NVLink" pralaidumas yra rezervuotas ryšiui tarp užpildytuvų ir dekoderių. Šiame tinklaraščio įraše nagrinėjamos "Blackwell" įrenginių našumo charakteristikos atliekant matricų daugybą ir ryšį tarp įrenginių lemia naudojamas dalijimo strategijas. Palyginti su "NVIDIA Hopper" GPU, pastebime patobulinimus kiekvienam branduoliui dėl didesnio srautinio transliavimo daugiaprocesorių skaičiaus, padidėjusio atminties pralaidumo ir mažesnio delsos laiko tarp lygiaverčių įrenginių.

Atskirtas prefildo ir dekodavimo etapas, su InfiniBand tarp prefildo ir dekoderių bei NVLink kiekviename diegime.

Mūsų TransferEngine, kuriame įdiegtas atskirtas išankstinis užpildymas, susidorojo su savavališku ir galbūt nesuderintu dalijimu tarp užpildytuvų ir dekoderių. KV talpyklos atmintyje išdėstytos HND tvarka: galvutės yra pagrindiniame matavime, o žetonai laikomi gretimmis, todėl išankstinio užpildytuvo padalintą KV talpyklą galima toliau skaidyti arba sujungti perdavimo į dekoderio mazgą metu.

Užpildytuvai

Užpildytuvo mazgai gauna užklausos įvesties žetonus, užpildo KV talpykles ir perkelia jas į dekoderius tekstui generuoti. Išankstinis užpildymas reikalauja daug skaičiavimo išteklių, nes tūkstančiai sekai priklausančių žetonų apdorojami tuo pačiu metu.

Todėl pastebėjome, kad tinkamas tenzorių lygiagretusis diegimas, kai modelis padalintas į 4 GPU viename "GB200" mazge, o projekcijos ir ekspertai padalinti (TP=4, EP=4). Kadangi tiek dėmesys, tiek MLP priklauso nuo skaičiavimo išteklių, abi šios sritys turi naudos iš lygiagretizavimo, paskirstydamos ekspertus ir dėmesio galvutes per atskirus rangus. Tolimesnis lygiagretizavimas duotų vis mažesnį poveikį, nes pralaidumo pagerėjimas priglaudžiant mažiau ekspertų kiekviename range (16 vietoj 32) nekompensuotų papildomų 8 krypčių "all-reduce" operacijos sąnaudų ir prievado pusės kodo padalijimo tarp dviejų mazgų pridėtinės vertės, kuriai reikalingas ryšys per eternetą.

"Qwen3 235B" turi tik 4 rakto ir reikšmės galvutes, todėl naudojant 8 įrenginius k ir v projekcijas reikia atkartoti porose rangų. Galėjome apsvarstyti agresyvesnį dalijimą, kad sumažintume atminties kiekį, reikalingą svoriams saugoti kiekviename range, ir atlaisvintume erdvė didesniam žetonų skaičiui KV talpykloje. Tačiau pastebėjome, kad platesnis diegimas nebuvo vertas pastangų.

Darant prielaidą, kad įvesties ilgis yra apie 6000 žetonų, kiekvienam iš 128 ekspertų tenka apie 6000 * 8 / 128 = 375 žetonų, nukreiptų į jį, taip užtikrinant tankią MoE GEMM problemą. Kadangi tai jau prisotina įrenginio skaičiavimo pralaidumą, išankstiniam užpildymui duomenų lygiagretizavimas nereikalingas.

Nepaisant kvadratiniu dydžiu augančios dėmesio kainos, užpildytuvai užtikrina pastovų pralaidumą, todėl galima apytiksliai apskaičiuoti įvesties žetonų skaičių, kurį mazgas gali apdoroti per sekundę. Remiantis metrika, sekančia bendrą užklausų įvesties žetonų skaičių, užpildytuvo mazgų skaičių galima padidinti, kad būtų užtikrintas tinkamas bendras išankstinio užpildymo pralaidumas. Siekiant išvengti eilių, užpildytuvo kopijų skaičius suderinamas su bendru gautų įvesties žetonų skaičiumi.

Dekoderiai

Dekoderio mazgai gauna KV talpykles iš užpildytuvų ir generuoja žetonus po vieną. Dekodavimas paprastai priklauso nuo atminties: turint nedaug įvesties žetonų, matricų daugybė visiškai priklauso nuo svorių įkėlimo iš HBM į tenzorių branduolius sąnaudų. Be kitokios dalijimo strategijos taikymo, tenka pakoreguoti kelis branduolius, kad būtų geriau lygiagretinami skaičiavimai ir prieigai prie atminties.

Skirtingai nuo išankstinio užpildymo, dėmesio dalijimas nebekelia naudos: dėmesio galvučių padalijimas tarp kelių įrenginių reikštų, kad viename įrenginyje yra mažiau lygiagretizavimo galimybių. Todėl naudojamas tik duomenų lygiagretizavimas ir ekspertų lygiagretizavimas: ekspertai padalijami tarp kelių įrenginių, tačiau kiekvienas įrenginys tvarko savo KV talpykles ir užklausas. Be tenzorių lygiagretizavimo, žetono KV talpyklos dydis įrenginyje yra didesnis. Tačiau atlaisvinama erdvė atmintyje viename mazge patalpinant mažiau ekspertų. Skirtingai nuo "Hopper", kur apribojome tenzorių lygiagretizavimą viename "NVLink" domene 8 GPU mazge, "Blackwell" atveju pastebėjome, kad naudinga plėstis per kelis mazgus domene, naudojant iki 16 įrenginių.

Siekiant maksimaliai padidinti pralaidumą, dekoderiai vienu metu apdoroja didesnį užklausų skaičių. Nors papildomos užklausos sukelia minimalią pridėtinę vertę MoE sluoksniuose ir kitose projekcijose, jos neproporcingai padidina dėmesio kainą. Kad būtų išlaikytas priimtinas minimalus dekodavimo greitis, dekoderio mazgų skaičius keičiamas taip, kad kiekvieno dekoderio paketo dydis neviršytų tam tikros ribos.

Panašiai kaip ir ankstesniuose "Hopper" diegimuose, dekodavimo spartai padidinti naudojame spekuliatyvinį dekodavimą su viduje sukurtais MTP sluoksniais. Laimei, bazinė aparatinė įranga ir programavimo karkasai yra pakankamai panašūs, kad būtų galima visiškai bendrinti įgyvendinimą tarp dviejų architektūrų.

Ryšys mazgo viduje ir tarp mazgų

Pagrindinis skirtumas tarp "GB200 NVL72" ir ankstesnių "Hopper" mazgų yra didelis "NVLink" domenas, kuris įgalina ryšį tarp lygiaverčių įrenginių viršijant ankstesnį 8 įrenginių limitą. Nors "Blackwell" įrenginiai buvo įdiegti 8 GPU mazguose, mastelio keitimas per kelis mazgus per "NVLink", palyginti su lėtesniu "InfiniBand" tinklu, turi didelę vertę.

Užpildytuvo mazguose pasitikime "all-reduce" ryšiu dėmesio sluoksniuose ir ekspertų lygiagretuku sumažinimu, kuris labai primena "all-reduce". Per 4 GPU išnaudojame tiek "NVLink", tiek "NVIDIA SHARP" (skaliojamo hierarchinio agregavimo ir mažinimo protokolo) galimybes: be ryšio tarp lygiaverčių įrenginių pralaidumo, mes taip pat išnaudojame sumažinimus "NVLink" jungikliuose, kad dar labiau sumažintume delsos laiką ir įdiegtumėte greitą transliaciją. Dekoderio mazguose naudojamas pasirinktinis iš „visų į visus“ (all-to-all) paskirstymo ir sujungimo įgyvendinimas per "NVLink". Branduoliai buvo sukurti viduje naudojant "CuTeDSL" ir "cuMem" susiejimus arba daugiakryptės transliacijos (multicast) susiejimus.

„Visi kartu“ (All-Reduce)

Užpildytuvai atlieka "all-reduce" operaciją dėmesio sluoksnio išvesties projekcijoje, susumuodami dalyvaujančiuose rankuose padalintų galvučių indėlius. Tenzorių lygiagretizavimas yra veiksmingas tik tada, kai "all-reduce" pridėtinės vertės sąnaudas kompensuoja mažesnė mažesnių matricų daugybos problemų delsa. Ši prielaida paprastai galioja išankstiniam užpildymui.

Duomenų centro lygio "NVIDIA HGX H200" ir "GB200 NVL72" sistemose GPU paprastai sujungiami per "NVLink" jungiklius. Be maršrutizavimo, jungikliai gali atlikti sumažinimo operacijas tarp prijungtų įrenginių per "SHARP". Sukūrus atminties susiejimus ir užregistravus juos daugiakryptės transliacijos grupėje naudojant "CUDA API", branduoliai gali naudoti multicast.ld_reduce ir multicast.st, kad agreguotų ir transliuotų reikšmes per jungiklius. Siekdami sukurti pagrindą ir pakartotinai naudojamus komponentus, kuriuos būtų galima sulieti į kitus branduolius, viduje palaikome "CuTeDSL all-reduce" branduolį, naudojantį šiuos primityvus.

Sistemoje su N GPU, mažinančiomis B baitų, triviali įgyvendinimo versija reikštų, kad vienas lygiavertis mazgas įsikrautų reikšmes iš visų kitų lygiaverčių mazgų, iš viso susidarant N * (N - 1) * B baitų skaitymo srautui. Efektyvesnis įgyvendinimas paskirstytų mažintinus duomenis tarp lygiaverčių mazgų: kiekvienas mažintų savo įvesties atkarpą, o tada ją transliuotų likusiems. Dėl to į vieną lygiavertį mazgą būtų įskaitoma ir likusiems transliuojama (N - 1) * (B / N) baitų, iš viso (N - 1) * B * 2 skaitymų ir rašymų, taip sumažinant srautą per komutatorius.

NVSwitch visų su visais srautas su GPU pusės kaupimu ir perjungiklio asistuojamu sumažinimu.

Naudojant "SHARP", sumažinimas ir transliacija gali būti atliekami efektyviau: vietoj to, kad į įrenginį būtų nuskaitomi (N - 1) * (B / N) baitai vietiniam kaupimui, iš jungiklio perkeliama tik B / N, nes jis pats atlieka sumažinimą naudodamas duomenis iš lygiaverčių įrenginių. Transliacijai taikomas panašus patobulinimas, nes smarkiai sumažėja operacijų skaičius tarp GPU ir jungiklio per "NVLink" kanalus. Be "SHARP", kaupiantis įrenginys atliktų (N - 1) * (B / N) operacijas per "NVLink" su jungikliu, o jungiklis nuskaitytų tokį patį duomenų kiekį iš lygiaverčių įrenginių, iš viso 2 * (N - 1) * (B / N) operacijų. Naudojant "SHARP", tarp GPU ir jungiklio atliekama B / N operacijų, o su lygiaverčiais įrenginiais – dar (N - 1) * (B / N), iš viso B operacijų.

Dėl savo paprastumo "SHARP" yra vertingas įrankis, nes jis užtikrina tiesioginį aparatinės įrangos įgyvendinimą algoritmui. Nors perkėlimai sumažinami teorine N / (2 * (N - 1)) dalimi (tai sudaro 33 % su 4 lygiaverčiais įrenginiais), praktikoje pastebime 10 % tiek išankstinio užpildymo, tiek dekodavimo delsos laiko pagerėjimą tiek "H200", tiek "GB200 NVL72" sistemose.

NVLink ir NVLS išsiuntimo delsos H200 ir GB200, kai TP=4 ir 16K žetonų.

MoE paskirstymas – sujungimas

MoE modeliams paskirstymo ir sujungimo branduoliai perkelia ir sugrupuoja žetonus vėlesnėms MoE GEMM problemoms tarp lygiaverčių įrenginių, o po to sujungimo etape atlieka svertinį kaupimą. Pritaikėme savo esamus paskirstymo ir sujungimo branduolius "Blackwell" sistemai, perkeldami juos į "CuTeDSL", pakoreguodami bloko paskirstymus ir agresyviai juos specializuodami tarp išankstinio užpildymo ir dekodavimo.

Ekspertų lygiagretus

Ekspertų lygiagretusis (EP) branduolys naudojamas užpildytuvuose. Kadangi jo įvestys yra atkartotos visuose rankuose, paskirstymo branduoliui tereikia pasirinkti žetonus, nukreiptus į ekspertus esamame range. Jis agreguoja maršrutizavimo informaciją ir paruošia žetonus į buferius, naudojamus kaip įvestys MoE GEMM. Sujungimo branduolys pirmiausia atlieka vietinį kaupimą tarp žetonų, nukreiptų į ekspertus esamame range, indėlių, o tada atlieka "all-reduce" visuose rankuose.

Dekodavimui visas branduolys suliejamas į vieną. Užpildymo branduolys padalijamas į kelis branduolius, nes maršrutizavimui ir "all-reduce" reikia mažiau blokų nei vietinio sujungimo žingsniui. Naudodami "CuTeDSL", galėjome sukurti bendrą biblioteką tiek "SHARP", tiek "NVLink all-reduce" ir sinchronizavimui tarp lygiaverčių įrenginių, įtraukdami ją tiek į "all-reduce", tiek į ekspertų lygiagrečius branduolius.

Ekspertų lygiagretaus prefildo išsiuntimo ir sujungimo delsos H200 ir GB200 įvairiose ekspertų lygiagretaus veikimo konfigūracijose.

Kalbant apie našumą, pastebime, kad "Blackwell" yra gerokai spartesnis už "Hopper" dėl geresnio perdavimo greičio, didesnio atminties pralaidumo ir geresnio skaičiavimo pralaidumo. Padalijus per 8 įrenginius ir kelis mazgus "GB200" sistemose (EP=8), branduoliai tampa spartesni, nes vietinis kaupimas veikia su kur kas mažesniu žetonų skaičiumi kiekviename įrenginyje, o naudojant "SHARP", sumažinimo sąnaudos per daugiau rangų keičiasi geriau. Tačiau praktikoje ribojame lygiagretizavimą iki 4 įrenginių, nes šie pagreitėjimai nėra universalūs visiems branduoliams.

Duomenų lygiagretus ir ekspertų lygiagretus

Duomenų lygiagretusis ir ekspertų lygiagretusis (DP-EP) branduolys naudojamas duomenų lygiagrečiuose dekoderiuose. Jis transliuoja skirtingus žetonus iš visų rangų ekspertams, perkeldamas rezultatus į kilmės rangus ir juos kaupdamas. Kadangi jis įgyvendina retąją „visų į visus“ problemą, jis remiasi tik "NVLink".

"Hopper" sistemoje šis branduolys apsiriboja 8 įrenginiais vieno mazgo "NVLink" domeene. Tačiau "GB200" sistemose galime jį išplėsti visame stiepinio stovo stobe. Didžioji dalis kodo yra naudojama pakartotinai. Vienintelis skirtumas yra fabric rankenų naudojimas lygiaverčių įrenginių informacijai keistis per IMEX pradinei sąrankai.

GB200 išsiuntimo ir sujungimo delsos įvairiose duomenų lygiagretaus ir ekspertų lygiagretaus veikimo konfigūracijose.

Kadangi dekodavimo metu atsirandantys perdavimo dydžiai yra nedideli, jie toli gražu neprisotina "NVLink" pralaidumo, o vietoje to juos riboja delsa. Delsa siekia dešimtis mikrosekundžių ir lieka palyginti stabili didėjant lygiaverčių įrenginių skaičiui, todėl galime paskirstyti diegimą didesniam įrenginių skaičiui nepatirdami didelės papildomos delsos.

MoE GEMM

MoE modeliai gauna naudos iš ekspertų lygiagretizavimo, nes visų žetonų daugybos su visais ekspertais sąnaudas galima lengvai lygiagretizuoti per kelis įrenginius. Esant tenzorių lygiagretizavimui užpildytuvuose, tankių problemų atveju nauda yra gana tiesioginė, nes dabar kiekvienas rangas turi atlikti mažiau skaičiavimų. Dekodavimo atveju duomenų lygiagretizavimas suteikia papildomos naudos virš ekspertų lygiagretizavimo, nes didesnis lygiagrečių užklausų skaičius nukreipia daugiau žetonų į kiekvieną ekspertą, padarydamas problemas tankesnėmis.

Savo įgyvendinime šiuo metu remiamės "CUTLASS CUDA/C++" branduoliais matricų daugybai. Atlikome jų palyginamąjį testavimą su retosiomis dekodavimo įvestimis, taikydami įvairias kvantavimo schemas ir lygiagretizavimo lygius, kad nuspręstumėme dėl optimalios dekoderių dalijimo strategijos. Žemiau pateiktuose palyginiminiuose testuose visi ekspertai suaktyvinami su vienu žetonu.

Grupuoto MoE GEMM delsos įvairiose ekspertų lygiagretaus veikimo konfigūracijose ir kvantavimo schemose H200 ir GB200.

Nustatėme, kad 128 ekspertų mastelio keitimas daugiau nei per 16 rangų su "CUTLASS" duoda mažėjančią grąžą, nes 2 ekspertų daugybos kaina nėra pastebimai mažesnė nei 4. "Blackwell" sistemoje matomas akivaizdus pagerėjimas lyginant su "Hopper", net ir taikant neoptimalaus bloko mastelio keitimo strategiją. Kadangi paskirstymo / sujungimo delsos padidėjimą maždaug 5 us tarp EP=8 ir EP=16 nusveria GEMM sąnaudų sumažinimas daugiau nei 10 us, "GB200" sistemose dekoderių dalijimas per 16 rangų yra pagrįstas, ką taip pat patvirtina galutinio veikimo (end-to-end) palyginamieji testai.

Kvantavimas

„Blackwell“ pristato aparatinės įrangos palaikymą naujoms 8 bitų ir 4 bitų kvantavimo schemoms. Skirtingai nuo "Hopper", kuri rėmėsi skalių faktoriais pagal tenzorių arba pagal bloką, "Blackwell" reikalauja mikromastelio keitimo, kad būtų pasiektas geriausias išankstinio užpildymo ir dekodavimo pralaidumas. Nors blokinio mastelio keitimo schema, naudojama tokiems modeliams kaip "DeepSeek" arba "Kimi", yra prieinama, mikromastelio keitimas yra efektyvesnis.

Įdiegėme "Qwen3 235B" su "MXFP8" kvantavimo schema, statiškai konvertuodami svorius po to, kai modelis buvo patobulintas. Poveikis tikslumui buvo panašus į blokinio mastelio keitimo su stochastiniu kvantavimu poveikį, tačiau užtikrintas našumas buvo kur kas geresnis, kaip parodyta MoE GEMM mikrobenchmarkuose. Taip pat apsvarstėme "MXFP4" ir "NVFP4" kvantavimo schemas, nors poveikis tikslumui be kvantavimui jautraus mokymo (Quantization-Aware Training) buvo per didelis pradiniam pereinamajam laikotarpiui iš "Hopper" į "Blackwell". Planuojame šiuos formatus nuodugniau išnagrinėti ateityje.

Galutinis našumas

Atlikome "Blackwell Qwen3 235B" diegimų dekoderių palyginamąjį testavimą ir palyginome juos su ankstesniais "Hopper" diegimais. Šioje sąrankoje apsvarstėme blokinį mastelio keitimą abu diegimus, kad sutelktume dėmesį į lygiagretizavimo poveikį. TP=4 užpildytuvai buvo atskirti abiem architektūroms, kad būtų izoliuotas dekodavimo našumas. Žemiau esančiame paveikslėlyje iliustruojamas dekodavimo pralaidumas, darant prielaidą apie realistišką projekto priėmimo rodiklį, kurį užtikrina mūsų MTP sluoksniai.

Qwen3 235B FP8 dekodavimo sparta ir pralaidumas vienam GPU įvairiose H200 ir GB200 ekspertų lygiagretaus veikimo konfigūracijose, darant prielaidą, kad juodraščio priėmimo ilgis yra 0,8.

"Hopper" sistemoje diegimo padalijimas tarp daugiau nei 8 GPU yra neįmanomas, nes delsa per "InfiniBand", ypač ant "EFA" adapterių, yra gerokai lėtesnė. Tačiau "Blackwell" sistemoje pasiekiame žymiai didesnį pralaidumą dėka didesnių "NVLink" domenų.

Pradinį "Blackwell" įgyvendinimą pasiekėme apibendrindami esamus "Hopper" branduolius ir padidindami "NVLink" pagrindu veikiančių branduolių našumą. Toliau mažinsime "Qwen" aptarnavimo sąnaudas tobulindami kvantavimą ir tikslindami dekodavimo našumą bei kitų konvejerio branduolių išankstinio užpildymo pralaidumą.

Nuorodos

Transfer Engine tinklaraščio įrašas

CuTeDSL tinklaraščio įrašas

Prefill-Disagg tinklaraščio įrašas

Spekuliatyvinio dekodavimo tinklaraščio įrašas

CUTLASS

NVLink

Citata

BibTeX
@online{perplexity2026HostingQwenOnBlackwell,
  author = {{Perplexity} and Nandor Licker and Kevin Hu and Bex Brooker and Erin McKnight},
  title = {{Hosting Qwen on Blackwell}},
  date = {2026-05-12},
  url = {https://www.perplexity.ai/hub/blog/hosting-qwen-on-blackwell}
}