Qweni hostimine Blackwellil
Kuidas me teenindame Qwen3 235B mudeleid NVIDIA GB200 NVL72 rack-tüüpi süsteemides, vähendades järelduskulusid ja säilitades mudeli täpsuse.
NVIDIA GB200 NVL72 rack-tüüpi süsteemid koos NVIDIA Blackwelli graafikaprotsessoritega, mis on omavahel ühendatud 72-suunalise NVLinkiga, sobivad suurepäraselt suurte ekspertide segu (MoE) mudelite juurutamiseks. Selles blogipõhises kirjelduses anname ülevaate järelduse (inference) häälestusest, mis teenindab järeltöödeldud Qwen3 235B mudeleid, toetades osa Perplexity liiklusest. Näitame, kuidas kohandasime oma sisemist järeldusmootorit, et kasutada ära NVIDIA Blackwelli graafikaprotsessorite täiustatud tensor tuumi ja kiireid ühendusi. Selle riistvaraga haldame rohkem liiklust väiksemate kuludega, ilma et aluseks olevate mudelite täpsus kannataks.
Juurutamine GB200 NVL72 abil
GB200 NVL72 rack-tüüpi süsteemid koosnevad 18 sõlmest, milles on 2 ARM-põhist NVIDIA Grace protsessorit ja 4 Blackwell-põhist graafikaprotsessorit, millest igaüks on varustatud 180 GB HBM-mäluga. Need 72 graafikaprotsessorit on ühendatud NVLinki ja 18 NVLink Switch ASIC-i kaudu, pakkudes mis tahes kahe seadme vahel 1800 GB/s ribalaiust ja jagades piisavalt mälu triljoni parameetriga mudelite majutamiseks. Lisaks tagavad ConnectX-7 InfiniBandi adapterid täiendava 400 GB/s ribalaiuse nii racki sõlmede sees kui ka naabersõlmede vahel.
Liikluse haldamiseks otsustasime Qweni mudelid järeltöödelda ja kasutusele võtta. Selles blogipostituses keskendume mudelile Qwen3 235B, kuid paljud arutatud teenindustehnikad ja jõudlusomadused on sarnased uuemate Qwen3.5 397B ja 122B mudelitega, millele me üle lähememe. Paralleelsuse osas on lineaarne tähelepanu (linear attention) sarnane täieliku enesetähelepanuga (full self attention) ja olemasolevat MoE kihi teostust saab hõlpsasti kohandada uute värava (gate) termide mahutamiseks. Järjepideva dekodeerimise kiiruse säilitamiseks ja läbilaskevõime maksimeerimiseks oleme otsustanud eraldada eeltäitmise (prefill) dekodeerimisest, rakendades kahe eri tüüpi sõlme jaoks erinevaid paralleelsusstrateegiaid. Eeltäitja ja dekoodri vahelist suhtlust hallatakse InfiniBandi kaudu, samas kui NVLinki ribalaius on reserveeritud suhtluseks eeltäitjate ja dekoodrite sees. Blackwelli seadmete jõudlusomadused maatrikskorrutamise ja seadmetevahelise suhtluse ajal, mida selles blogipostituses uuritakse, määravad kasutatavad tükeldus- ehk šardimisstrateegiad (sharding strategies). Võrreldes NVIDIA Hopperi graafikaprotsessoritega näeme tuum-tuumalt (kernel-by-kernel) täiustusi, mis on tingitud voogedastuslike multiprotsessorite suuremast arvust, suuremast mäluribalaiusest ja madalamast vastastikusest latentsusest.
Meie TransferEngine, mis rakendab eraldatud eeltäitmist, haldas suvalist ja potentsiaalselt sobimatut tükeldust eeltäitjate ja dekoodrite vahel. KV-vahemud (KV caches) paigutatakse mälus HND-järjestuses, kusjuures päised on juhtivas dimensioonis ja tokenid hoitakse külgnevalt, võimaldades eeltäitja tükeldatud KV-vahemut ülekande käigus dekoodrisõlmele täiendavalt jagada või ühendada.
Eeltäitjad
Eeltäitja sõlmed võtavad vastu päringu sisendtokenid, täidavad KV-vahemud ja edastavad need dekoodritele tekstigenereerimise jätkamiseks. Eeltäitmine on arvutusmahukas, kuna ühele järjestusele kuuluvaid tuhandeid tokeneid töödeldakse samal ajal.
Seetõttu leidsime, et tensori paralleelsusega juurutus on sobiv, kusjuures mudel on tükeldatud 4 graafikaprotsessori vahel ühes GB200 sõlmes ning projektsioonid ja eksperdid on tükeldatud (TP=4, EP=4). Kuna nii tähelepanu kui ka MLP-d on arvutuspiiranguga (compute-bound), saavad mõlemad paralleelsusest kasu, jaotades eksperdid ja tähelepanupead eraldi järkudesse. Edasine paralleelsus oleks toonud kaasa kahanetava tulu, kuna vähemate ekspertide hostimisest igas järgus (16 vs 32) saadav läbilaskevõime paranemine poleks kompenseerinud 8-suunalise all-reduce-operatsiooni lisakulu ja hostipoolse koodi kahe sõlme vahel jagamise üldkulusid, mis nõuaks suhtlust Etherneti kaudu.
Qwen3 235B-l on ainult 4 võtme-väärtuse pead, mis nõuab k ja v projektsioonide kopeerimist järkude paaride vahel, kui kasutatakse 8 seadet. Oleksime võinud kaaluda agressiivsemat tükeldust, et vähendada iga järgu kaalude salvestamiseks vajaliku mälu hulka, vabastades ruumi KV-vahemu rohkemate tokenite jaoks. Siiski leidsime, et laiem juurutus ei olnud seda väärt.
Eeldades sisendi pikkuseks umbes 6000 tokenit, on igal 128 eksperdist suunatud ligikaudu 6000 * 8 / 128 = 375 tokenit, mis tagab MoE GEMM-i jaoks tiheda probleemi. Kuna see küllastab juba seadme arvutusliku läbilaskevõime, ei ole eeltäitmiseks andmeparalleelsust vaja.
Hoolimata tähelepanu ruutkeskmiselt kasvavast kulust, pakuvad eeltäitjad ühtlast läbilaskevõimet, mis võimaldab ligikaudselt hinnata sisendtokenite arvu, mida sõlm suudab sekundis töödelda. Tuginedes mõõdikutele, mis jälgivad päringute sisendtokenite koguarvu, saab eeltäitja sõlmede arvu suurendada, et tagada eeltäitmise üldise läbilaskevõime vastavus nõuetele. Järjekordade vältimiseks sobitatakse eeltäitja koopiate arv vastuvõetud sisendtokenite koguarvuga.
Dekoodrid
Dekoodrisõlmed võtavad eeltäitjatelt vastu KV-vahemud ja genereerivad tokenid ükshaaval. Dekodeerimine on üldiselt mälupiiranguga (memory bound): väheste sisendtokenite korral on maatrikskorrutamine täielikult seotud kaalude laadimisega HBM-ist tensor tuumadesse. Lisaks erineva tükeldusstrategia rakendamisele tuleb arvutuste ja mälupöörduste paremaks paralleelpesemiseks kohandada mitut kernelit.
Erinevalt eeltäitmisest ei ole tähelepanu tükeldamine enam kasulik: tähelepanupeade jagamine mitme seadme vahel tähendaks, et ühe seadme siseseid paralleelsusvõimalusi on vähem. Seetõttu kasutatakse ainult andmeparalleelsust ja ekspertide paralleelsust: eksperte tükeldatakse mitme seadme vahel, kuid iga seade haldab oma KV-vahemikke ja päringuid. Ilma tensori paralleelsuseta on ühe seadme tokenipõhine KV-vahemu suurus suurem. Kuid mälus vabastatakse ruum, paigutades ühele sõlmele vähem eksperte. Erinevalt Hopperist, kus me piirasime tensori paralleelsust ühes NVLinki domeenis 8-GPU sõlmes, leidsime Blackwellil, et mitme sõlme laiendamine domeeni sees, kasutades kuni 16 seadet, on kasulik.
Läbilaskevõime maksimeerimiseks töötlevad dekoodrid suuremat hulka päringuid samaaegselt. Kuigi täiendavad päringud põhjustavad MoE kihtides ja muudes projektsioonides minimaalse üldkulu, suurendavad nad ebaproportsionaalselt tähelepanu kulu. Mõistliku minimaalse dekodeerimiskiiruse säilitamiseks skaleeritakse dekoodrisõlmede arvu, et hoida dekoodripõhised partiide suurused teatud künnise all.
Sarnaselt eelmistele Hopperi juurutustele kasutame dekodeerimiskiiruse suurendamiseks spekulatiivset dekodeerimist (speculative decoding) MTP kihtidega, mis on välja töötatud ettevõttesiseselt. Õnneks on aluseks olev riistvara ja programmeerimisraamistikud piisavalt sarnased, et rakendust kahe arhitektuuri vahel täielikult jagada.
Sõlmesisene ja sõlmedevaheline suhtlus
Peamine erinevus GB200 NVL72 ja varasemate Hopperi sõlmede vahel on suur NVLinki domeen, mis võimaldab seadmetevahelist suhtlust üle varasema 8 seadme piirangu. Kuigi Blackwelli seadmeid on juurutatud 8-GPU sõlmedes, on NVLinki kaudu mitme sõlme skaleerimisel võrreldes aeglasema InfiniBandi võrguga suur väärtus.
Eeltäitja sõlmedel tugineme tähelepanukihtide sisesele all-reduce-suhtlusele ja eksperdile paralleelsele vähendamisele, mis sarnaneb suuresti all-reduce'ile. 4 graafikaprotsessori vahel kasutame nii NVLinki kui ka NVIDIA SHARP-i (Scalable Hierarchical Aggregation and Reduction Protocol): lisaks seadmetevahelisele ribalaiusele kasutame latentsuste edasiseks vähendamiseks ja kiirete ringhäälingute (broadcast) rakendamiseks ka NVLink Switchide reduktsioone. Dekoodrisõlmedel kasutatakse kohandatud all-to-all lähetamise ja kombineerimise rakendust NVLinki kaudu. Kernelid on välja töötatud ettevõttesiseselt, kasutades CuTeDSL-i ja cuMemi vastendusi või multicast-vastendusi.
All-Reduce
Eeltäitjad teostavad all-reduce-operatsiooni tähelepanukihi väljundprojektsioonis, liites kokku osalevate järkude vahel tükeldatud peade panused. Tensori paralleelsus on tõhus ainult siis, kui all-reduce'i üldkulu kompenseeritakse väiksemate maatrikskorrutamise probleemide vähenenud latentsusega. See eeldus kehtib tavaliselt eeltäitmise puhul.
Andmekeskuse klassi NVIDIA HGX H200 ja GB200 NVL72 süsteemides on graafikaprotsessorid tavaliselt ühendatud NVLink Switchide kaudu. Lisaks marsruutimisele saavad lülitid SHARP-i kaudu sooritada ühendatud seadmete vahel reduktsioonioperatsioone. Pärast mälumahutuste loomist ja nende registreerimist multicast-rühma CUDA API-de abil saavad kernelid kasutada multicast.ld_reduce ja multicast.st väärtuste agregeerimiseks ja edastamiseks lülitite kaudu. Aluse ja korduvkasutatavate komponentide loomiseks, mida saab teiste kernelitega sulatada, hoiame sisemiselt alal CuTeDSL all-reduce kernelit, mis kasutab neid primitiive.
Süsteemis, kus on N graafikaprotsessorit, mis vähendavad B baiti, laadiks lihtne rakendus väärtusi kõigilt teistelt osalistelt, kokku N * (N - 1) * B baiti lugemisliiklust. Tõhusam rakendus jagaks vähendatavad andmed osaliste vahel, kus igaüks vähendab sisendi osa ja edastab selle seejärel ülejäänutele. Selle tulemuseks on (N - 1) * (B / N) baiti, mis loetakse osalisse ja edastatakse ülejäänutele, kokku (N - 1) * B * 2 lugemist ja kirjutamist, mis vähendab liiklust lülitite kaudu.
SHARP-i abil saab reduktsiooni ja edastamist teostada tõhusamalt: selle asemel, et lugeda seadmesse kohalikuks akumulatsiooniks (N - 1) * (B / N) baiti, liigutatakse lülitist ainult B / N, kuna see teostab reduktsiooni ise, kasutades osaliste andmeid. Edastamisel on sarnane paranemine, kuna GPU ja lüliti vaheliste tehingute arv NVLinki kanalite kaudu on oluliselt vähenenud. Ilma SHARP-ita sooritaks akumuleeriv seade lülitiga (N - 1) * (B / N) tehingut NVLinki kaudu, kus lüliti loeb osalistelt sama palju andmeid, kokku 2 * (N - 1) * (B / N) tehingut. SHARP-iga teostatakse GPU ja lüliti vahel B / N tehingut ning osalistega veel (N - 1) * (B / N), kokku B tehingut.
Oma lihtsuse tõttu on SHARP väärtuslik tööriist, kuna see pakub algoritmile lihtsat riistvaralist teostust. Kuigi ülekandeid vähendatakse teoreetilise N / (2 * (N - 1)) osa võrra (mis 4 osalisega annab 33%), täheldame praktikas 10% parandust nii eeltäitmise kui ka dekodeerimise latentsustes nii H200 kui ka GB200 NVL72 süsteemides.
MoE lähetamine ja kombineerimine
MoE mudelite puhul liigutavad ning rühmitavad lähetamise ja kombineerimise kernelid tokeneid järgnevate MoE GEMM-i probleemide jaoks osaliste vahel, teostades kombineerimisel pärast seda kaalutud akumulatsiooni. Oleme kohandanud oma olemasolevad lähetamise ja kombineerimise kernelid Blackwelli jaoks, portides need CuTeDSL-i, kohandades plokkide eraldisi ja spetsialiseerides neid agressiivselt eeltäitmise ja dekodeerimise vahel.
Ekspertide paralleelsus
Ekspertide paralleelsuse (EP) kernelit kasutatakse eeltäitjates. Kuna selle sisendid on kõigis järkudes kopeeritud, peab lähetuskernel lihtsalt valima praeguses järgus ekspertidele suunatud tokenid. See agregeerib marsruutimisteavet ja valmistab tokenid ette puhvritesse, mida kasutatakse MoE GEMM-i sisenditena. Kombineerimiskernel teostab kõigepealt kohaliku akumulatsiooni praeguses järgus ekspertidele suunatud tokenite panuste vahel, seejärel teostab see all-reduce'i kõigi järkude vahel.
Dekodeerimisel on kogu kernel sulatatud üheks. Eeltäitmise kernel on jagatud mitmeks kerneliks, kuna marsruutimine ja all-reduce nõuavad vähem plokke kui kohalik kombineerimisetapp. CuTeDSL-i abil saime luua üldise teegi nii SHARP-i kui ka NVLinki all-reduce ja seadmetevahelise sünkroonimise jaoks, komponeerides selle nii all-reduce kui ka ekspertide paralleelsetesse kernelitesse.
Jõudluse vaates märkame, et Blackwell on Hopperist oluliselt kiirem tänu parematele ülekandekiirustele, suuremale mäluribalaiusele ja paremale arvutuslikule läbilaskevõimele. Tükeldatuna 8 seadme ja mitme sõlme vahel GB200-des (EP=8), muutuvad kernelid kiiremaks, kuna kohalik akumulatsioon käib igal seadmel palju vähemate tokenitega ning SHARP-i abil skaleerub reduktsiooni kulu mitme järgu vahel paremini. Praktikas piirame siiski paralleelsuse 4 seadmega, kuna need kiiruse kasvud ei ole kõigis kernelites universaalsed.
Andmeparalleelsus ja ekspertide paralleelsus
Andmeparalleelsuse ja ekspertide paralleelsuse (DP-EP) kernelit kasutatakse andmeparalleelsetes dekoodrites. See edastab erinevaid tokeneid kõigist järkudest ekspertidele, kandes tulemused üle algsetesse järkudesse ja akumuleerides neid. Kuna see rakendab hõredat all-to-all probleemi, tugineb see ainult NVLinkile.
Hopperil on see kernel piiratud 8 seadmega ühe sõlme NVLinki domeenis. Kuid GB200 süsteemides saame seda skaleerida üle terve racki. Suurem osa koodist on taaskasutatud. Ainus erinevus on fabric-käepidemete kasutamine IMEX-i kaudu seadmete teabe vahetamiseks algse seadistuse ajal.
Kuna dekodeerimise ajal tehtavad ülekandesuurused on väikesed, on need NVLinki ribalaiuse küllastamisest kaugel ja hoopis latentsuspiiranguga. Latentsused on kümnetes mikrosekundites ja püsivad seadmete arvu suurenedes suhteliselt stabiilsena, võimaldades meil levitada juurutust suuremale seadmete arvule ilma märkimisväärse täiendava latentsuseta.
MoE GEMM
MoE mudelid saavad ekspertide paralleelsusest kasu, kuna kõigi tokenite korrutamise kulu kõigi ekspertidega saab mitme seadme vahel hõlpsasti paralleelsetada. Eeltäitjate tensori paralleelsuse korral on kasu tihedate probleemide puhul üsna otsekohene, kuna iga järk peab nüüd tegema vähem arvutusi. Dekodeerimise korral pakub andmeparalleelsus ekspertide paralleelsuse kõrval täiendavat kasu, kuna suurem paralleelsete päringute arv suunab igale eksperdile rohkem tokeneid, muutes probleemid tihedamaks.
Oma rakenduses tugineme praegu maatrikskorrutamisel CUTLASS CUDA/C++ kernelitele. Me võrdlustestime neid hõredatel dekodeerimissisenditel erinevate kvantimisskeemide ja paralleelsuse tasemetega, et otsustada dekoodrite jaoks optimaalne tükeldusstrategia. Allolevates võrdlustestides on kõik eksperdud ühe tokeniga aktiveeritud.
Leidsime, et 128 eksperdi skaleerimine rohkem kui 16 järgu vahel toob CUTLASS-iga kaasa kahanetava tulu, kuna 2 eksperdi korrutamise kulu ei ole oluliselt madalam kui 4 oma. Blackwellil on Hopperi ees selge paranemine, isegi suboptimaalse ploki skaleerimise strateegia korral. Kuna lähetamise/kombineerimise EP=8 ja EP=16 vahelist umbes 5 us suurust latentsuse kasvu kaalub üles GEMM-i kulu enam kui 10 us suurune langus, on GB200 süsteemides dekoodrite tükeldamine 16 järgu vahel õigustatud, mida kinnitavad ka otsast-otsani (end-to-end) võrdlustestid.
Kvantimine
Blackwell toob sisse riistvaralisetoe uutele 8-bitistele ja 4-bitistele kvantimisskeemidele. Erinevalt Hopperist, mis toetus tensoripõhistele või plokipõhistele skaleerimisteguritele, nõuab Blackwell parima eeltäite ja dekodeerimise läbilaskevõime saavutamiseks mikroskaleerimist. Kuigi selliste mudelite nagu DeepSeek või Kimi jaoks kasutatav plokipõhine skaleerimisskeem on saadaval, on mikroskaleerimine tõhusam.
Oleme juurutanud Qwen3 235B MXFP8 kvantimisskeemiga, konverteerides kaalud staatiliselt pärast mudeli peenhäälestust. Täpsuse mõju oli sarnane stohhastilise kvantimisega plokipõhise skaleerimise mõjule, kuid saavutatud jõudlus oli palju parem, nagu MoE GEMM mikro-võrdlustestid näitavad. Oleme kaalunud ka MXFP4 ja NVFP4 kvantimisskeeme, kuigi täpsuse mõju ilma kvantimisteadliku treenimiseta (Quantization-Aware Training) oli esialgseks üleminekuks Hopperilt Blackwellile liiga märkimisväärne. Plaanime neid vorminguid tulevikus põhjalikumalt uurida.
Otsast-otsani jõudlus
Võrdlustestisime Blackwelli Qwen3 235B juurutuste dekoodreid ja võrdlesime neid meie eelmiste Hopperi juurutustega. Selles häälestuses kaalusime plokkide skaleerimist mõlemas juurutuses, et keskenduda paralleelsuse mõjule. TP=4 eeltäitjad eraldati mõlema arhitektuuri jaoks eraldi, et isoleerida dekodeerimise jõudlus. Allolev joonis illustreerib dekodeerimise läbilaskevõimet eeldusel, et meie MTP-kihid pakuvad realistlikku kavandi heakskiidu määra.
Hopperil ei ole juurutuse tükeldamine rohkemale kui 8 GPU-le teostatav, kuna latentsused InfiniBandi kaudu, eriti EFA adapteritel, on oluliselt aeglasemad. Blackwellil saavutame aga tänu suurematele NVLinki domeenidele oluliselt suurema läbilaskevõime.
Saavutasime esialgse Blackwelli rakenduse, üldistades olemasolevaid Hopperi kerneleid ja surudes NVLink-põhised kernelid parema jõudluseni. Vähendame edaspidi Qweni teenindamise kulusid, parandades kvantimist ning häälestades dekodeerimise jõudlust ja teiste torujuhtme kernelite eeltäite läbilaskevõimet.
Viited
Speculative Decoding blogipostitus
Viide
@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}
}