Ugošćivanje Qwena na Blackwellu

Kako poslužujemo Qwen3 235B na NVIDIA GB200 NVL72 čvorovima, smanjujući troškove inferencije uz očuvanje točnosti modela.

AutoriPerplexity Research

NVIDIA GB200 NVL72 čvorovi s NVIDIA Blackwell GPU-ovima međusobno povezani putem 72-smjernog NVLink-a iznimno su prikladni za primjenu velikih modela mješavine stručnjaka (MoE). U ovom blog postu opisujemo postavku inferencije koja poslužuje naknadno obučene Qwen3 235B modele koji podržavaju dio Perplexityjevog prometa. Pokazujemo kako smo prilagodili naš vlastiti mehanizam inferencije kako bismo iskoristili napredne tenzorske jezgre i brzu međusobnu vezu NVIDIA Blackwell GPU-ova. S tim hardverom obrađujemo više prometa uz niže troškove bez žrtvovanja točnosti temeljnih modela.

Primjena na GB200 NVL72

GB200 NVL72 čvorovi sastoje se od 18 čvorova s 2 ARM bazirana NVIDIA Grace CPU-a i 4 Blackwell bazirana GPU-a, od kojih je svaki opremljen sa 180 GB HBM-a. 72 GPU-a su međusobno povezana putem NVLink-a i 18 NVLink Switch ASIC-a, isporučujući propusnost od 1800 GB/s između bilo koja dva para i dijeleći dovoljno memorije za smještaj modela s bilijunima parametara. Dodatno, ConnectX-7 InfiniBand adapteri isporučuju dodatnu propusnost od 400 Gb/s unutar čvorova stalka i preko susjednih stalaka.

Kako bismo upravljali prometom, odlučili smo naknadno obučiti i posluživati Qwen modele. U ovom blog postu fokusiramo se na Qwen3 235B, ali mnoge od raspravljanih tehnika posluživanja i karakteristika performansi slične su onima novijih modela Qwen3.5 397B i 122B na koje prelazimo. U smislu paralelizma, linearna pažnja slična je potpunoj samopažnji, a postojeća implementacija MoE sloja može se lako prilagoditi kako bi prihvatila nove termine vrata. Kako bismo održali dosljednu stopu dekodiranja uz istovremenu maksimalnu propusnost, odabrali smo razdvajanje predpunjenja od dekodiranja, primjenjujući različite strategije paralelizma za dvije vrste čvorova. Komunikacija između predpunjača i dekodera odvija se preko InfiniBand-a, dok je propusnost NVLink-a rezervirana za komunikaciju unutar predpunjača i dekodera. Karakteristike performansi Blackwell uređaja pri izvođenju množenja matrica i komunikacije između uređaja, istražene u ovom blog postu, određuju korištene strategije šardiranja. U usporedbi s NVIDIA Hopper GPU-ovima, vidimo poboljšanja jezgru po jezgru zbog većeg broja streaming multiprocesora, povećane propusnosti memorije i manjih kašnjenja od uređaja do uređaja.

Rastavljeno prefila i dekodiranje, s InfiniBandom između prefila i dekodera te NVLinkom unutar svake implementacije.

Naš TransferEngine, koji implementira razdvojeno predpunjenje, rukovao je proizvoljnim i potencijalno nepodudarnim šardiranjem između predpunjača i dekodera. KV predmemorije raspoređene su u memoriji HND redoslijedom, s glavama u vodećoj dimenziji i tokenima koji se drže susjednima, kako bi se omogućilo da se šardirana KV predmemorija na predpunjaču dodatno podijeli ili spoji u letu tijekom prijenosa na čvor dekodera.

Predpunjači

Čvorovi predpunjača primaju ulazne tokove zahtjeva, popunjavaju KV predmemorije i prenose ih dekoderima kako bi nastavili generiranje teksta. Predpunjenje je računalno intenzivno, budući da se tisuće tokena koji pripadaju sekvenci obrađuju u isto vrijeme.

Posljedično, otkrili smo da je primjena s tenzorskim paralelizmom prikladna, s modelom šardiranim na 4 GPU-a unutar jednog GB200 čvora te projekcijama i stručnjacima šardiranima (TP=4, EP=4). Budući da su i pažnja i MLP-ovi ograničeni računalnim resursima, oboje imaju koristi od paralelizma, raspoređujući stručnjake i glave pažnje preko odvojenih rangova. Daljnji paralelizam donio bi opadajuće prinose, budući da poboljšanje propusnosti od ugošćivanja manjeg broja stručnjaka na svakom rangu (16 naspram 32) ne bi nadoknadilo dodatni trošak 8-smjernog all-reduce-a i opterećenje dijeljenja koda na strani hosta na dva čvora, što zahtijeva komunikaciju preko Etherneta.

Qwen3 235B ima samo 4 ključno-vrijednosne glave, što zahtijeva da se k i v projekcije repliciraju preko parova rangova ako se koristi 8 uređaja. Možda smo mogli razmotriti agresivnije šardiranje kako bismo smanjili količinu prostora potrebnog za pohranu težina na svakom rangu, oslobađajući prostor za više tokena u KV predmemoriji. Međutim, otkrili smo da šira primjena nije bila vrijedna truda.

Uz pretpostavku ulazne duljine od oko 6000 tokena, svaki od 128 stručnjaka ima oko 6000 * 8 / 128 = 375 tokena usmjerenih na njega, čime se osigurava gust problem za MoE GEMM. Budući da ovo već zasićuje računalnu propusnost uređaja, paralelizam podataka nije potreban za predpunjenje.

Unatoč kvadratno rastućem trošku pažnje, predpunjači isporučuju dosljednu propusnost, omogućujući grubu procjenu broja ulaznih tokena koje čvor može obraditi u jednoj sekundi. Oslanjajući se na metrike koje prate ukupan broj ulaznih tokena iz zahtjeva, čvorovi predpunjača mogu se skalirati kako bi se osiguralo da je ukupna propusnost predpunjenja odgovarajuće dimenzionirana. Kako bi se izbjeglo čekanje u redu, broj replika predpunjača usklađen je s ukupnim brojem primljenih ulaznih tokena.

Dekoderi

Čvorovi dekodera primaju KV predmemorije od predpunjača i generiraju tokove jedan po jedan. Dekodiranje je općenito ograničeno memorijom: s malo ulaznih tokena, množenje matrica u potpunosti je ograničeno troškom učitavanja težina iz HBM-a u tenzorske jezgre. Osim primjene drugačije strategije šardiranja, nekoliko je jezgri potrebno prilagoditi kako bi se bolje paralelizirala izračunavanja i pristup memoriji.

Za razliku od predpunjenja, šardiranje pažnje više nije korisno: dijeljenje glava pažnje na više uređaja značilo bi manje prilika za paralelizam unutar jednog uređaja. Posljedično, koriste se samo paralelizam podataka i paralelizam stručnjaka: stručnjaci su šardirani na više uređaja, ali svaki uređaj upravlja vlastitim KV predmemorijama i zahtjevima. Bez tenzorskog paralelizma, veličina KV predmemorije po tokenu na uređaju je veća. Međutim, prostor se oslobađa u memoriji smještanjem manjeg broja stručnjaka na jedan čvor. Za razliku od Hoppera, gdje smo ograničili tenzorski paralelizam unutar jedne NVLink domene u čvoru s 8 GPU-ova, na Blackwellu smo otkrili da je širenje na više čvorova unutar domene, koristeći do 16 uređaja, korisno.

Kako bi se maksimalno povećala propusnost, dekoderi obrađuju veći broj zahtjeva istovremeno. Iako dodatni zahtjevi stvaraju minimalno opterećenje u MoE slojevima i drugim projekcijama, oni nerazmjerno povećavaju trošak pažnje. Kako bi se održala razumna minimalna brzina dekodiranja, broj čvorova dekodera se skalira kako bi se veličine serije po dekoderu održale ispod određenog praga.

Slično prethodnim Hopper primjenama, koristimo spekulativno dekodiranje s MTP slojevima treniranim u vlastitoj režiji kako bismo povećali brzine dekodiranja. Srećom, temeljni hardver i programski okviri dovoljno su slični da u potpunosti dijele implementaciju između dviju arhitektura.

Komunikacija unutar čvora i između čvorova

Glavna razlika između GB200 NVL72 i prethodnih Hopper čvorova je velika NVLink domena, koja omogućuje komunikaciju od uređaja do uređaja izvan prethodnog ograničenja od 8 uređaja. Iako su Blackwell uređaji primijenjeni u čvorovima s 8 GPU-ova, postoji velika vrijednost u skaliranju preko više čvorova putem NVLink-a u usporedbi s sporijom InfiniBand mrežom.

Na čvorovima predpunjača oslanjamo se na all-reduce komunikaciju unutar slojeva pažnje i na redukciju paralelnu sa stručnjacima koja jako podsjeća na all-reduce. Preko 4 GPU-a koristimo i NVLink i NVIDIA SHARP (Scalable Hierarchical Aggregation and Reduction Protocol): uz propusnost od uređaja do uređaja, također iskorištavamo redukcije u NVLink preklopnicima za dodatno smanjenje kašnjenja i implementaciju brzog emitiranja. Na čvorovima dekodera koristi se prilagođena all-to-all dispečerska i kombinirana implementacija preko NVLink-a. Jezgre su implementirane u vlastitoj režiji korištenjem CuTeDSL i cuMem mapiranja ili multicast mapiranja.

All-Reduce

Predpunjači izvode all-reduce operaciju u izlaznoj projekciji sloja pažnje, zbrajajući doprinose glava šardiranih preko sudjelujućih rangova. Tenzorski paralelizam je učinkovit samo kada je trošak all-reduce režijskog opterećenja nadoknađen smanjenim kašnjenjem manjih problema množenja matrica. Ova pretpostavka obično vrijedi za predpunjenje.

Na sustavima klase podatkovnih centara NVIDIA HGX H200 i GB200 NVL72, GPU-ovi su obično povezani putem NVLink preklopnika. Osim usmjeravanja, preklopnici mogu izvoditi operacije redukcije preko povezanih uređaja putem SHARP-a. Nakon stvaranja mapiranja memorije i njihove registracije u multicast grupu pomoću CUDA API-ja, jezgre mogu koristiti multicast.ld_reduce i multicast.st za agregiranje i emitiranje vrijednosti kroz preklopnike. Kako bismo stvorili temelj i višekratno iskoristive komponente koje se mogu spojiti u druge jezgre, interno održavamo CuTeDSL all-reduce jezgru koristeći ove primitive.

U sustavu s N GPU-ova koji reduciraju B bajtova, trivijalna implementacija imala bi uređaj koji učitava vrijednosti sa svih ostalih uređaja, za ukupno N * (N - 1) * B bajtova čitanja prometa. Učinkovitija implementacija podijelila bi podatke koje treba reducirati među uređajima, pri čemu bi svaki reducirao dio ulaza, a zatim ga emitirao ostatku. To rezultira s (N - 1) * (B / N) bajtova pročitanih u uređaj i emitiranih ostatku, za ukupno (N - 1) * B * 2 čitanja i pisanja, čime se smanjuje promet preko preklopnika.

NVSwitch promet all-reducea s akumulacijom na GPU-u i redukcijom uz pomoć preklopnika.

Sa SHARP-om, redukcija i emitiranje mogu se izvesti učinkovitije: umjesto čitanja (N - 1) * (B / N) bajtova u uređaj za lokalnu akumulaciju, samo se B / N premješta iz preklopnika, budući da on sam izvodi redukciju koristeći podatke s uređaja. Za emitiranje postoji slično poboljšanje, jer je broj transakcija između GPU-a i preklopnika preko NVLink kanala znatno smanjen. Bez SHARP-a, uređaj za akumulaciju izvršio bi (N - 1) * (B / N) transakcija preko NVLink-a s preklopnikom, pri čemu preklopnik čita istu količinu podataka s uređaja, za ukupno 2 * (N - 1) * (B / N) transakcija. Sa SHARP-om, B / N transakcija se izvodi između GPU-a i preklopnika, te dodatnih (N - 1) * (B / N) s uređajima, za ukupno B transakcija.

Zbog svoje jednostavnosti, SHARP je vrijedan alat jer pruža jednostavnu hardversku implementaciju za algoritam. Iako su prijenosi smanjeni teorijskim N / (2 * (N - 1)) udjelom (što iznosi 33% s 4 uređaja), u praksi primjećujemo poboljšanje od 10% u kašnjenjima predpunjenja i dekodiranja na H200 i GB200 NVL72 sustavima.

Kašnjenje otpreme preko NVLinka i NVLS-a na H200 i GB200 pri TP=4 s 16K tokena.

MoE otprema - Kombiniranje

Za MoE modele, jezgre otpreme i kombiniranja premještaju i grupiraju tokove za naknadne MoE GEMM probleme između uređaja, izvodeći ponderiranu akumulaciju nakon toga u kombiniranju. Prilagodili smo naše postojeće jezgre otpreme i kombiniranja Blackwellu, prenoseći ih na CuTeDSL, prilagođavajući alokacije blokova i agresivno ih specijalizirajući između predpunjenja i dekodiranja.

Paralelni stručnjak

Paralelna stručna (EP) jezgra koristi se u predpunjačima. Budući da su njezini ulazi replicirani na svim rangovima, jezgra otpreme treba jednostavno odabrati tokove usmjerene na stručnjake na trenutnom rangu. Ona agregira informacije o usmjeravanju i priprema tokove u međuspremnike koji se koriste kao ulazi za MoE GEMM. Jezgra kombiniranja najprije izvodi lokalnu akumulaciju između doprinosa tokena usmjerenih na stručnjake na trenutnom rangu, a zatim izvodi all-reduce na svim rangovima.

Za dekodiranje, cijela jezgra je spojena u jednu. Jezgra predpunjenja podijeljena je u više jezgri, budući da usmjeravanje i all-reduce zahtijevaju manje blokova nego korak lokalnog kombiniranja. S CuTeDSL-om mogli bismo izgraditi generičku biblioteku za SHARP i NVLink all-reduce i sinkronizaciju od uređaja do uređaja, ugrađujući je i u all-reduce i u paralelne stručne jezgre.

Kašnjenje otpreme i kombiniranja prefila za ekspertno paralelno izvođenje na H200 i GB200 kroz konfiguracije ekspertne paralelizacije.

Što se tiče performansi, primjećujemo da je Blackwell znatno brži od Hoppera, zbog poboljšanih brzina prijenosa, veće propusnosti memorije i bolje računalne propusnosti. Šardirane na 8 uređaja i više čvorova na GB200 sustavima (EP=8), jezgre postaju brže jer se lokalna akumulacija izvodi na mnogo manjem broju tokena na svakom uređaju, a sa SHARP-om trošak redukcije preko više rangova skalira se bolje. Međutim, u praksi ograničavamo paralelizam na 4 uređaja, budući da ta ubrzanja nisu univerzalna za sve jezgre.

Paralelni podaci i paralelni stručnjak

Paralelna podatkovna i paralelna stručna (DP-EP) jezgra koristi se u dekoderima s paralelizmom podataka. Ona emitira različite tokove sa svih rangova stručnjacima, prenoseći rezultate na izvorne rangove i akumulirajući ih. Budući da implementira rijedak all-to-all problem, oslanja se isključivo na NVLink.

Na Hopperu je ova jezgra ograničena na 8 uređaja unutar NVLink domene jednog čvora. Međutim, na GB200 sustavima možemo je skalirati preko cijelog stalka. Većina koda se ponovno koristi. Jedina razlika je korištenje fabric ručki za razmjenu informacija o uređajima preko IMEX-a za početnu postavku.

Kašnjenje otpreme i kombiniranja na GB200 kroz konfiguracije podatkovne paralelizacije i ekspertne paralelizacije.

Budući da su veličine prijenosa nastale tijekom dekodiranja male, one su daleko od zasićenja NVLink propusnosti i umjesto toga su ograničene kašnjenjem. Kašnjenja su u desetinama mikrosekundi i ostaju relativno stabilna kako se broj uređaja povećava, što nam omogućuje širenje primjene na veći broj uređaja bez nastanka značajnog dodatnog kašnjenja.

MoE GEMM

MoE modeli imaju koristi od paralelizma stručnjaka, budući da se trošak množenja svih tokena sa svim stručnjacima može lako paralelizirati na više uređaja. S tenzorskim paralelizmom na predpunjačima, kod gustih problema korist je prilično izravna, budući da svaki rang sada mora izvršiti manje izračuna. U slučaju dekodiranja, paralelizam podataka pruža dodatnu korist povrh paralelizma stručnjaka, budući da veći broj paralelnih zahtjeva usmjerava više tokena na svakog stručnjaka, čineći probleme gustima.

U našoj implementaciji trenutno se oslanjamo na CUTLASS CUDA/C++ jezgre za množenje matrica. Testirali smo ih na rijetkim ulazima dekodiranja s različitim shemama kvantizacije i razinama paralelizma kako bismo odredili optimalnu strategiju šardiranja za dekodere. U donjim testovima performansi, svi stručnjaci su aktivirani s jednim tokenom.

Kašnjenje Grouped MoE GEMM-a kroz konfiguracije ekspertne paralelizacije i sheme kvantizacije na H200 i GB200.

Otkrili smo da skaliranje 128 stručnjaka na više od 16 rangova daje opadajuće prinose s CUTLASS-om, budući da trošak množenja 2 stručnjaka nije znatno niži od množenja 4. Postoji jasno poboljšanje na Blackwellu u odnosu na Hopper, čak i na suboptimalnoj strategiji skaliranja blokova. Budući da je povećanje kašnjenja od oko 5 us između EP=8 i EP=16 otpreme/kombiniranja nadmašeno smanjenjem većim od 10 us u trošku GEMM-a, na GB200 sustavima šardiranje dekodera preko 16 rangova je opravdano, što potvrđuju i end-to-end testovi performansi.

Kvantizacija

Blackwell uvodi hardversku podršku za nove 8-bitne i 4-bitne sheme kvantizacije. Za razliku od Hoppera, koji se oslanjao na faktore skaliranja po tenzoru ili po bloku, Blackwell zahtijeva mikro-skaliranje kako bi se postigla najbolja propusnost predpunjenja i dekodiranja. Iako je shema skaliranja blokova koja se koristi za modele kao što su DeepSeek ili Kimi dostupna, mikro-skaliranje je učinkovitije.

Primijenili smo Qwen3 235B sa shemom MXFP8 kvantizacije, statički pretvarajući težine nakon naknadnog finog podešavanja modela. Utjecaj na točnost bio je sličan utjecaju skaliranja blokova sa stohastičkom kvantizacijom, ali isporučene performanse bile su znatno bolje, kao što ilustriraju MoE GEMM mikro-testovi performansi. Također smo razmotrili MXFP4 i NVFP4 sheme kvantizacije, iako je utjecaj na točnost bez obuke svjesne kvantizacije bio prevelik za početni prijelaz s Hoppera na Blackwell. Planiramo detaljnije istražiti ove formate u budućem radu.

End-to-end performanse

Testirali smo performanse dekodera Blackwell Qwen3 235B primjena i usporedili ih s našim prethodnim Hopper primjenama. U ovoj postavci razmatrali smo skaliranje blokova preko obje primjene kako bismo se fokusirali na utjecaj paralelizma. TP=4 predpunjači bili su odvojeni za obje arhitekture kako bi se izolirale performanse dekodiranja. Slika ispod ilustrira propusnost dekodiranja pretpostavljajući realnu stopu prihvaćanja skice koju isporučuju naši MTP slojevi.

Brzina dekodiranja i propusnost po GPU-u modela Qwen3 235B FP8 kroz konfiguracije ekspertne paralelizacije na H200 i GB200, uz pretpostavku duljine prihvaćanja nacrta 0,8.

Na Hopperu šardiranje primjene na više od 8 GPU-ova nije izvedivo, budući da su kašnjenja preko InfiniBand-a, posebno na EFA adapterima, znatno sporija. Međutim, na Blackwellu ostvarujemo znatno veću propusnost zahvaljujući većim NVLink domenama.

Postigli smo početnu Blackwell implementaciju generalizacijom postojećih Hopper jezgri i potiskivanjem performansi jezgri temeljenih na NVLink-u. Dalje ćemo smanjivati trošak posluživanja Qwena poboljšanjem kvantizacije i finim podešavanjem performansi dekodiranja i propusnosti predpunjenja drugih jezgri u cjevovodu.

Reference

Objava na blogu o Transfer Engineu

Objava na blogu o CuTeDSL-u

Objava na blogu o Prefill-Disagg-u

Objava na blogu o spekulativnom dekodiranju

CUTLASS

NVLink

Citiranje

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}
}