Hosting Qwen na Blackwell
Ako obsluhujeme model Qwen3 235B na stojanoch NVIDIA GB200 NVL72, čím znižujeme náklady na inferenciu a zachovávame presnosť modelu.
Stojany NVIDIA GB200 NVL72 s grafickými procesormi NVIDIA Blackwell, ktoré sú prepojené prostredníctvom 72-cesty NVLink, sa jedinečne hodia na nasadzovanie veľkých modelov s expertmi (MoE). V tomto blogovom príspevku popisujeme nastavenie inferencie, ktoré obsluhuje dodatočne trénované modely Qwen3 235B zabezpečujúce časť prevádzky služby Perplexity. Ukazujeme, ako sme prispôsobili náš interný inferenčný nástroj tak, aby využíval pokročilé tenzorové jadrá a vysokorýchlostné prepojenie grafických procesorov NVIDIA Blackwell. S týmto hardvérom spracúvame väčšiu prevádzku pri nižších nákladoch bez obetovania presnosti podkladových modelov.
Nasadzovanie na GB200 NVL72
Stojany GB200 NVL72 sa skladajú z 18 uzlov s 2 procesormi NVIDIA Grace založenými na architektúre ARM a 4 grafickými procesormi založenými na architektúre Blackwell, pričom každý je vybavený 180 GB pamäte HBM. Týchto 72 grafických procesorov je prepojených prostredníctvom rozhrania NVLink a 18 prepínačov NVLink Switch ASIC, čo poskytuje šírku pásma 1800 GB/s medzi ľubovoľnými dvoma uzlami a zdieľa dostatočnú pamäť na hostovanie modelov s biliónmi parametrov. Adaptéry ConnectX-7 InfiniBand navyše poskytujú dodatočnú šírku pásma 400 Gb/s v rámci uzlov stojana aj naprieč susednými stojanmi.
Aby sme zvládli prevádzku, rozhodli sme sa dodatočne trénovať a obsluhovať modely Qwen. V tomto blogovom príspevku sa zameriavame na model Qwen3 235B, ale mnohé z diskutovaných techník obsluhy a výkonnostných charakteristík sú podobné tým, ktoré majú novšie modely Qwen3.5 397B a 122B, na ktoré prechádzame. Z hľadiska paralelizmu je lineárna pozornosť podobná plnej vlastnej pozornosti a existujúcu implementáciu vrstvy MoE možno ľahko prispôsobiť tak, aby zahŕňala nové výstupné výrazy. Aby sme udržali konzistentnú rýchlosť dekódovania a zároveň maximalizovali priepustnosť, rozhodli sme sa oddeliť fázu predbežného plnenia (prefill) od dekódovania a pre tieto dva druhy uzlov nasadiť rôzne stratégie paralelizmu. Komunikácia medzi fázou predbežného plnenia a dekodérom prebieha cez InfiniBand, zatiaľ čo šírka pásma rozhrania NVLink je vyhradená na komunikáciu v rámci fáz predbežného plnenia a dekodérov. Výkonnostné charakteristiky zariadení Blackwell pri vykonávaní maticového násobenia a komunikácie medzi zariadeniami, ktoré sú preskúmané v tomto blogovom príspevku, určujú použité stratégie shardingovania. V porovnaní s grafickými procesormi NVIDIA Hopper vidíme vylepšenia jadro za jadrom vďaka vyššiemu počtu streamovacích multiprocesorov, zväčšenej šírke pásma pamäte a nižším latenciám medzi zariadeniami peer-to-peer.
Náš systém TransferEngine, ktorý implementuje oddelené predbežné plnenie, zvládal ľubovoľný a prípadne nezhodný sharding naprieč fázami predbežného plnenia a dekodérmi. Vyrovnávacie pamäte KV sú v pamäti usporiadané v poradí HND, pričom hlavičky sú v hlavnej dimenzii a tokeny zostávajú súvislé, čo umožňuje, aby sa rozdelená vyrovnávacia pamäť KV v uzle predbežného plnenia ďalej delila alebo spájala počas prenosu do uzla dekodéra.
Uzly predbežného plnenia
Uzly predbežného plnenia prijímajú vstupné tokeny požiadavky, zapĺňajú vyrovnávacie pamäte KV a prenášajú ich do dekodérov na pokračovanie generovania textu. Predbežné plnenie je výpočtovo náročné, pretože tisíce tokenov patriacich do jednej sekvencie sa spracúvajú súčasne.
Následne sme zistili, že vhodné je nasadenie s tenzorovým paralelizmom, pričom model je rozdelený do shardov na 4 grafických procesoroch v rámci jedného uzla GB200 a projekcie a experti sú shardingovaní (TP=4, EP=4). Keďže pozornosť aj vrstvy MLP sú viazané na výpočtový výkon, obe ťažia z paralelizmu, pričom distribuujú expertov a hlavičky pozornosti do samostatných hodností. Ďalší paralelizmus by priniesol klesajúce výnosy, pretože zlepšenie priepustnosti z hostovania menšieho počtu expertov na každej pozícii (16 namiesto 32) by nevykompenzovalo dodatočné náklady na 8-cestnú operáciu all-reduce a réžiu rozdelenia kódu na strane hostiteľa na dva uzly, čo by vyžadovalo komunikáciu cez Ethernet.
Model Qwen3 235B má iba 4 hlavičky kľúč-hodnota, čo si vyžaduje, aby projekcie k a v boli replikované naprieč dvojicami hodností, ak sa používa 8 zariadení. Mohli sme zvážiť agresívnejší sharding na zníženie množstva pamäte potrebnej na uloženie váh na každej hodnosti, čím by sa uvoľnil priestor pre viac tokenov vo vyrovnávacej pamäti KV. Zistili sme však, že širšie nasadenie nestálo za to.
Za predpokladu vstupnej dĺžky približne 6000 tokenov je na každého zo 128 expertov smerovaných približne 6000 * 8 / 128 = 375 tokenov, čím sa zabezpečí hustý problém pre MoE GEMM. Keďže to už saturova výpočtovú priepustnosť zariadenia, paralelizmus údajov nie je pre predbežné plnenie potrebný.
Napriek kvadraticky rastúcim nákladom na pozornosť poskytujú uzly predbežného plnenia konzistentnú priepustnosť, čo umožňuje hrubý odhad počtu vstupných tokenov, ktoré môže uzol spracovať za sekundu. Spoliehajúc sa na metriky sledujúce celkový počet vstupných tokenov z požiadaviek, je možné škálovať počet uzlov predbežného plnenia nahor, aby sa zabezpečilo zodpovedajúce dimenzovanie celkovej priepustnosti predbežného plnenia. Aby sa predišlo radeniu, počet replík predbežného plnenia sa prispôsobuje celkovému počtu prijatých vstupných tokenov.
Dekodéry
Uzly dekodéra prijímajú vyrovnávacie pamäte KV z uzlov predbežného plnenia a generujú tokeny jeden po druhom. Dekódovanie je vo všeobecnosti obmedzené pamäťou: pri malom počte vstupných tokenov je maticové násobenie úplne obmedzené nákladmi na načítanie váh z HBM do tenzorových jadier. Okrem použitia inej stratégie shardovania je potrebné doladiť niekoľko jadier, aby sa lepšie paralelizovali výpočty a prístupy do pamäte.
Na rozdiel od predbežného plnenia už sharding pozornosti nie je prospešný: rozdelenie hlavičiek pozornosti medzi viaceré zariadenia by znamenalo menej príležitostí na paralelizmus v rámci jedného zariadenia. V dôsledku toho sa používa iba paralelizmus údajov a expertov: experti sú rozdelení do shardov medzi viaceré zariadenia, ale každé zariadenie spravuje svoje vlastné vyrovnávacie pamäte KV a požiadavky. Bez tenzorového paralelizmu je veľkosť vyrovnávacej pamäte KV na token v zariadení väčšia. Miesto v pamäti sa však uvoľní umiestnením menšieho počtu expertov do jedného uzla. Na rozdiel od architekúry Hopper, kde sme obmedzili tenzorový paralelizmus v rámci jednej domény NVLink v uzle s 8 grafickými procesormi, na Blackwell sme zistili, že rozširovanie naprieč viacerými uzlami v rámci domény s použitím až 16 zariadení je prospešné.
S cieľom maximalizovať priepustnosť spracúvajú dekodéry väčší počet požiadaviek súčasne. Hoci dodatočné požiadavky spôsobujú minimálnu réžiu vo vrstvách MoE a iných projekciách, neúmerne zvyšujú náklady na pozornosť. Na udržanie rozumnej minimálnej rýchlosti dekódovania sa počet uzlov dekodéra škáluje tak, aby sa veľkosti dávok na dekodér udržali pod určitou hranicou.
Podobne ako pri predchádzajúcich nasadeniach Hopper, aj tu používame špekulatívne dekódovanie s interne natrénovanými vrstvami MTP na zvýšenie rýchlosti dekódovania. Našťastie sú podkladový hardvér a programovacie frameworky dostatočne podobné na to, aby sa implementácia dala úplne zdieľať medzi týmito dvoma architektúrami.
Komunikácia v rámci uzla a medzi uzlami
Hlavným rozdielom medzi GB200 NVL72 a predchádzajúcimi uzlami Hopper je veľká doména NVLink, ktorá umožňuje komunikáciu peer-to-peer nad rámec predchádzajúceho limitu 8 zariadení. Hoci zariadenia Blackwell boli nasadené v uzlach s 8 grafickými procesormi, škálovanie naprieč viacerými uzlami cez NVLink má v porovnaní s pomalšou sieťou InfiniBand veľkú pridanú hodnotu.
Na uzloch predbežného plnenia sa spoliehame na komunikáciu all-reduce v rámci vrstiev pozornosti a na expertnú paralelnú redukciu, ktorá sa veľmi podobá na all-reduce. Naprieč 4 grafickými procesormi využívame NVLink aj NVIDIA SHARP (Scalable Hierarchical Aggregation and Reduction Protocol): okrem šírky pásma peer-to-peer využívame aj redukcie v prepínačoch NVLink Switch na ďalšie zníženie latencií a implementáciu rýchleho vysielania (broadcast). Na uzloch dekodéra sa používa vlastná implementácia odosielania a kombinovania all-to-all cez NVLink. Jadrá boli implementované interne pomocou CuTeDSL a mapovaní cuMem alebo mapovaní multicast.
All-Reduce
Systémy predbežného plnenia vykonávajú operáciu all-reduce vo výstupnej projekcii vrstvy pozornosti, čím sčítavajú príspevky hlavičiek rozdelených medzi zúčastnenými hodnosťami. Tenzorový paralelizmus je účinný iba vtedy, keď sú náklady na réžiu all-reduce vykompenzované zníženou latenciou menších problémov maticového násobenia. Tento predpoklad zvyčajne platí pre predbežné plnenie.
V datacentrových systémoch NVIDIA HGX H200 a GB200 NVL72 sú grafické procesory zvyčajne prepojené prostredníctvom prepínačov NVLink Switches. Okrem smerovania môžu prepínače vykonávať redukčné operácie naprieč pripojenými zariadeniami prostredníctvom SHARP. Po vytvorení mapovaní pamäte a ich registrácii do skupiny multicast pomocou rozhraní API CUDA môžu jadrá používať multicast.ld_reduce a multicast.st na agregáciu a vysielanie hodnôt cez prepínače. S cieľom vytvoriť základ a opakovane použiteľné komponenty, ktoré možno zlúčiť do iných jadier, interne udržiavame jadro CuTeDSL all-reduce využívajúce tieto primitíva.
V systéme s N grafickými procesormi redukujúcimi B bajtov by triviálna implementácia spočívala v tom, že jeden uzol peer načíta hodnoty zo všetkých ostatných uzlov peer, čo predstavuje celkovo N * (N - 1) * B bajtov prečítanej prevádzky. Efektívnejšia implementácia by rozdelila údaje určené na redukciu medzi uzly peer, pričom každý by redukoval časť vstupu a potom ju vyslal ostatným. To má za následok (N - 1) * (B / N) prečítaných bajtov do jedného uzla peer a ich vysielanie ostatným, čo predstavuje celkovo (N - 1) * B * 2 čítaní a zápisov, čím sa znižuje prevádzka cez prepínače.
So systémom SHARP možno redukciu a vysielanie vykonať efektívnejšie: namiesto načítania (N - 1) * (B / N) bajtov do zariadenia na lokálnu akumuláciu sa z prepínača presunie iba B / N, pretože prepínač vykonáva samotnú redukciu s použitím údajov od ostatných uzlov peer. Pri vysielaní existuje podobné zlepšenie, pretože počet transakcií medzi grafickým procesorom a prepínačom cez kanály NVLink je výrazne znížený. Bez SHARP by akumulačné zariadenie vykonalo (N - 1) * (B / N) transakcií cez NVLink s prepínačom, pričom prepínač by čítal rovnaké množstvo údajov od uzlov peer, čo predstavuje celkovo 2 * (N - 1) * (B / N) transakcií. So systémom SHARP sa vykoná B / N transakcií medzi grafickým procesorom a prepínačom a ďalších (N - 1) * (B / N) s uzlami peer, čo predstavuje celkovo B transakcií.
Vďaka svojej jednoduchosti je SHARP cenným nástrojom, pretože poskytuje priamu hardvérovú implementáciu pre algoritmus. Hoci sú prenosy znížené o teoretický zlomok N / (2 * (N - 1)) (čo pri 4 uzloch peer predstavuje 33 %), v praxi pozorujeme 10-percentné zlepšenie latencií predbežného plnenia aj dekódovania na systémoch H200 aj GB200 NVL72.
MoE Dispatch - Combine
V prípade modelov MoE jadrá pre odosielanie (dispatch) a kombinovanie (combine) presúvajú a zoskupujú tokeny pre následné úlohy MoE GEMM medzi uzlami peer, pričom v rámci kombinovania následne vykonávajú váženú akumuláciu. Prispôsobili sme naše existujúce jadrá Dispatch a Combine pre architektúru Blackwell ich portovaním do CuTeDSL, vyladením alokácií blokov a agresívnou špecializáciou medzi predbežným plnením a dekódovaním.
Paralelný expert
Expertné paralelné (EP) jadro sa používa v uzloch predbežného plnenia. Keďže jeho vstupy sú replikované naprieč všetkými hodnosťami, dispečerské jadro musí jednoducho vybrať tokeny smerované k expertom na aktuálnej hodnosti. Agreguje informácie o smerovaní a pripravuje tokeny do vyrovnávacích pamätí používaných ako vstupy pre MoE GEMM. Kombinačné jadro najskôr vykoná lokálnu akumuláciu medzi príspevkami tokenov smerovaných k expertom na aktuálnej hodnosti a potom vykoná operáciu all-reduce naprieč všetkými hodnosťami.
Pre dekódovanie je celé jadro zlíčene do jedného. Jadro predbežného plnenia je rozdelené na viacero jadier, pretože smerovanie a all-reduce vyžadujú menej blokov ako krok lokálneho kombinovania. S CuTeDSL sme mohli vytvoriť generickú knižnicu pre SHARP aj NVLink all-reduce a synchronizáciu peer-to-peer a začleniť ju do jadier all-reduce aj expert-parallel.
Z hľadiska výkonu pozorujeme, že Blackwell je podstatne rýchlejší ako Hopper, vďaka vylepšeným rýchlostiam prenosu, vyššej šírke pásma pamäte a lepšej výpočtovej priepustnosti. Pri rozdelení do shardov na 8 zariadeniach a viacerých uzloch v systémoch GB200 (EP=8) sa jadrá stávajú rýchlejšími, pretože lokálna akumulácia beží na oveľa menšom počte tokenov na každom zariadení a so systémom SHARP sa náklady na redukciu na viacerých hodnostiach škálujú lepšie. V praxi však obmedzujeme paralelizmus na 4 zariadenia, pretože toto zrýchlenie nie je univerzálne pre všetky jadrá.
Paralelné dáta a paralelní experti
Dátové a expertné paralelné (DP-EP) jadro sa používa v dekodéroch s paralelizmom údajov. Vysiela rôzne tokeny zo všetkých hodností expertom, pričom prenáša výsledky do pôvodných hodností a kumuluje ich. Keďže implementuje riedky problém all-to-all, spolieha sa výlučne na NVLink.
Na architektúre Hopper je toto jadro obmedzené na 8 zariadení v rámci domény NVLink jedného uzla. Na systémoch GB200 ho však môžeme škálovať na celý stojan. Väčšina kódu sa opätovne používa. Jediným rozdielom je použitie manipulačných prvkov fabric na výmenu informácií peer prostredníctvom IMEX pri počiatočnom nastavení.
Keďže veľkosti prenosov vznikajúce počas dekódovania sú malé, ani zdaleka nesaturujú šírku pásma NVLink a sú namiesto toho obmedzené latenciou. Latencie sú v desiatkach mikrosekúnd and zostávajú relatívne stabilné s narastajúcim počtom uzlov peer, čo nám umožňuje rozšíriť nasadenie na väčší počet zariadení bez vzniku významnej dodatočnej latencie.
MoE GEMM
Modely MoE ťažia z paralelzimu expertov, pretože náklady na násobenie všetkých tokenov so všetkými expertmi možno ľahko paralelizovať naprieč viacerými zariadeniami. S tenzorovým paralelizmom v uzloch predbežného plnenia je prínos pri hustých problémoch celkom priamočiary, keďže každá hodnosť teraz musí vykonávať menej výpočtov. V prípade dekódovania poskytuje paralelizmus údajov dodatočnú výhodu popri expertom paralelazme, pretože väčší počet paralelnejších požiadaviek smeruje viac tokenov ku každému expertovi, čím sa problémy zahusťujú.
V našej implementácii sa súčasne spoliehame na jadrá CUTLASS CUDA/C++ pre maticové násobenie. Robili sme benchmarky na riedkych vstupoch dekódovania s rôznymi schémami kvantovania a úrovňami paralelizmu, aby sme určením optimálnej stratégie shardovania pre dekodéry. V nižšie uvedených benchmarkoch sú všetci experti aktivovaní jediným tokenom.
Zistili sme, že škálovanie 128 expertov na viac ako 16 hodností prináša s nástrojom CUTLASS klesajúce výnosy, pretože náklady na násobenie 2 expertov nie sú podstatne nižšie ako pri 4. Na Blackwell je zjavné zlepšenie oproti Hopper, a to aj pri suboptimálnej stratégii škálovania blokov. Keďže nárast latencie o približne 5 μs medzi EP=8 a EP=16 pre dispečing/kombinovanie je vyvážený poklesom o viac ako 10 μs v nákladoch na GEMM, v systémoch GB200 je sharding dekodérov na 16 hodností oprávnený, čo potvrdzujú aj end-to-end benchmarky.
Kvantovanie
Blackwell zavádza hardvérovú podporu pre nové 8-bitové a 4-bitové schémy kvantovania. Na rozdiel od architektúry Hopper, ktorá sa spoliehala na faktory škálovania pre jednotlivé tenzory alebo bloky, Blackwell vyžaduje mikroskopické škálovanie na dosiahnutie najlepšej priepustnosti predbežného plnenia a dekódovania. Hoci schéma škálovania blokov používaná pre modely ako DeepSeek alebo Kimi je k dispozícii, mikroskopické škálovanie je efektívnejšie.
Nasadili sme model Qwen3 235B so schémou kvantovania MXFP8, pričom sme váhy konvertovali staticky po doladení modelu. Vplyv na presnosť bol podobný vplyvu škálovania blokov so stochastickým kvantovaním, ale poskytovaný výkon sa výrazne zlepšil, čo ilustrujú mikrobenchmarky MoE GEMM. Zvážili sme tiež schémy kvantovania MXFP4 a NVFP4, hoci vplyv na presnosť bez trénovania s povedomím o kvantovaní (Quantization-Aware Training) bol pre počiatočný prechod z Hopper na Blackwell príliš významný. Tieto formáty plánujeme dôkladnejšie preskúmať v budúcich prácach.
End-to-end výkon
Urobili sme benchmarky dekodérov pre nasadenia Blackwell Qwen3 235B a porovnali sme ich s našimi predchádzajúcimi nasadeniami Hopper. V tomto nastavení sme zvážili škálovanie blokov v oboch nasadeniach, aby sme sa zamerali na vplyv paralelizmu. Uzly predbežného plnenia TP=4 boli pre obidve architektúry oddelené, aby sa izoloval výkon dekódovania. Nasledujúci obrázok ilustruje priepustnosť dekódovania za predpokladu realistickej miery akceptácie návrhu poskytovanej našimi vrstvami MTP.
Na architektúre Hopper nie je sharding nasadenia na viac ako 8 grafických procesorov životaschopný, pretože latencie v rámci InfiniBand, najmä na adaptéroch EFA, sú podstatne pomalšie. Na Blackwell však dosahujeme podstatne vyššiu priepustnosť vďaka väčším doménam NVLink.
Počiatočnú implementáciu pre Blackwell sme dosiahli zgeneralizovaním existujúcich jadier Hopper a presadením výkonu jadier založených na NVLink. Ďalej budeme znižovať náklady na obsluhu modelu Qwen zlepšením kvantovania a doladením výkonu dekódovania a priepustnosti predbežného plnenia pre ostatné jadrá v pipeline.
Referencie
Blogový príspevok o Transfer Engine
Blogový príspevok o rozdelení predbežného plnenia
Blogový príspevok o špekulatívnom dekódovaní
Citácia
@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}
}