Allotjament de Qwen a Blackwell
Com servim Qwen3 235B en armaris NVIDIA GB200 NVL72, reduint el cost d'inferència mentre es preserva la precisió del model.
Els armaris NVIDIA GB200 NVL72 amb GPUs NVIDIA Blackwell interconnexions mitjançant NVLink de 72 vies són idealment adequats per desplegar grans models de barreja d'experts (MoE). En aquesta entrada de blog, descrivim la configuració d'inferència que dona servei als models Qwen3 235B post-entrenats que admeten una part del tràfic de Perplexity. Mostrem com hem adaptat el nostre motor d'inferència propi per aprofitar els nuclis tensorials avançats i la interconnexió d'alta velocitat de les GPUs NVIDIA Blackwell. Amb aquest maquinari, gestionem més tràfic a un cost inferior sense sacrificar la precisió dels models subjacents.
Desplegament a GB200 NVL72
Els armaris GB200 NVL72 estan compostos per 18 nodes amb 2 CPUs NVIDIA Grace basades en ARM i 4 GPUs basades en Blackwell, cadascuna equipada amb 180 GB de HBM. Les 72 GPUs estan interconnectades mitjançant NVLink i 18 ASIC de commutació NVLink, oferint 1800 GB/s d'amplada de banda entre qualsevol parell i compartint prou memòria per allotjar models de bilions de paràmetres. A més, els adaptadors ConnectX-7 InfiniBand ofereixen 400 GB/s addicionals d'amplada de banda tant dins dels nodes d'un armari com entre armaris veïns.
Per gestionar el tràfic, vam optar per post-entrenar i donar servei a models Qwen. En aquesta entrada de blog, ens centrem en Qwen3 235B, però moltes de les tècniques de servei i característiques de rendiment tractades són similars a les dels models més nous Qwen3.5 397B i 122B als quals estem migrant. Pel que fa al paral·lelisme, l'atenció lineal és similar a l'atenció pròpia completa i la implementació existent de la capa MoE es pot adaptar fàcilment per acomodar els nous termes de porta. Per mantenir una taxa de descodificació consistent alhora que es maximitza el rendiment, hem decidit desagregar el preompliment de la descodificació, desplegant diferents estratègies de paral·lelisme per als dos tipus de nodes. La comunicació entre el preomplidor i el descodificador es gestiona a través d'InfiniBand, mentre que l'amplada de banda de NVLink es reserva per a la comunicació dins dels preomplidors i descodidors. Les característiques de rendiment dels dispositius Blackwell en realitzar la multiplicació de matrius i la comunicació entre dispositius, explorades en aquesta entrada de blog, determinen les estratègies de particionament utilitzades. En comparació amb les GPUs NVIDIA Hopper, veiem millors rendiments nucli a nucli a causa del major nombre de multiparàmetres de flux, l'amplada de banda de memòria augmentada i les latències d'igual a igual més baixes.
El nostre TransferEngine, que implementa el preompliment desagregat, va gestionar un particionament arbitrari i possiblement desajustat entre preomplidors i descodidors. Les memòries cau KV s'organitzen a la memòria en ordre HND, amb els caps a la dimensió principal i els testimonis mantinguts contigus, per permetre que una memòria cau KV particionada en un preomplidor es divideixi encara més o es concaterni durant la transferència al node descodificador.
Preomplidors
Els nodes preomplidors reben els testimonis d'entrada d'una sol·licitud, omplint les memòries cau KV i transferint-les als descodidors per continuar la generació de text. El preompliment té una intensitat computacional elevada, ja que milers de testimonis pertanyents a una seqüència es processen al mateix temps.
En conseqüència, vam trobar que un desplegament paral·lel de tensors és adequat, amb el model particionat en 4 GPUs dins d'un únic node GB200 i projeccions i experts particionats (TP=4, EP=4). Atès que tant l'atenció com els MLP estan limitats pel càlcul, tots dos es beneficien del paral·lelisme, distribuint experts i caps d'atenció en rangs separats. Un paral·lelisme addicional hauria donat rendiments decreixents, ja que la millora del rendiment d'allotjar menys experts en cada rang (16 en lloc de 32) no hauria compensat el cost addicional d'una reducció total de 8 vies i la sobrecàrrega de dividir el codi del costat de l'amfitrió entre dos nodes, requerint comunicació a través d'Ethernet.
El Qwen3 235B només té 4 caps clau-valor, cosa que requereix que les projeccions k i v es repliquin entre parells de rangs si s’utilitzen 8 dispositius. Podríem haver considerat una partició més agressiva per reduir la quantitat de memòria necessària per emmagatzemar els pesos a cada rang, alliberant espai per a més tokens a la memòria cau KV. Tanmateix, vam concloure que una implantació més àmplia no valia la pena.
Suposant una longitud d'entrada d'uns 6000 testimonis, cadascun dels 128 experts té al voltant de 6000 * 8 / 128 = 375 testimonis encaminats cap a ell, assegurant un problema dens per a MoE GEMM. Com que això ja satura el rendiment computacional del dispositiu, el paral·lelisme de dades no és necessari per al preompliment.
Tot i el cost d'atenció que creix de manera quadràtica, els preomplidors ofereixen un rendiment consistent, permetent una estimació aproximada del nombre de testimonis d'entrada que un node pot processar en un segon. Basant-se en mètriques que fan un seguiment del nombre total de testimonis d'entrada de les sol·licituds, el nombre de nodes preomplidors es pot escalar per assegurar que el rendiment general de preompliment estigui dimensionat adequadament. Per evitar cues, el nombre de rèpliques de preomplidors s'ajusta al nombre total de testimonis d'entrada rebuts.
Descodidors
Els nodes descodidors reben les memòries cau KV dels preomplidors i generen testimonis un per un. La descodificació generalment està limitada per la memòria: amb pocs testimonis d'entrada, la multiplicació de matrius està completament limitada pel cost de carregar pesos des de la HBM als nuclis tensorials. A més d'emprar una estratègia de particionament diferent, cal ajustar diversos nuclis per paral·lelitzar millor els càlculs i els accessos a la memòria.
A diferència del prefill, la partició de l’atenció ja no és beneficiosa: dividir els caps d’atenció entre diversos dispositius significaria que hi ha menys oportunitats de paral·lelisme dins d’un sol dispositiu. En conseqüència, només s’utilitzen el paral·lelisme de dades i el paral·lelisme d’experts: els experts es reparteixen entre diversos dispositius, però cada dispositiu gestiona les seves pròpies memòries cau KV i peticions. Sense paral·lelisme de tensor, la mida de la memòria cau KV per token en un dispositiu és més gran. Tanmateix, s’allibera espai a la memòria situant menys experts en un sol node. A diferència de Hopper, on limitàvem el paral·lelisme de tensor dins d’un únic domini NVLink en un node de 8 GPU, a Blackwell vam descobrir que ampliar-lo entre diversos nodes dins d’un domini, fent servir fins a 16 dispositius, és beneficiós.
Per maximitzar el rendiment, els descodidors processen un nombre més gran de sol·licituds de manera concurrent. Tot i que les sol·licituds addicionals comporten una sobrecàrrega mínima a les capes MoE i altres projeccions, augmenten de manera desproporcionada el cost de l'atenció. Per mantenir una velocitat de descodificació mínima raonable, el nombre de nodes descodidors s'escala per mantenir les mides dels lots per descodificador per sota d'un determinat llindar.
De manera similar als desplegaments anteriors de Hopper, utilitzem la descodificació especulativa amb capes MTP entrenades internament per augmentar les taxes de descodificació. Afortunadament, el maquinari subjacent i els marcs de programació són prou similars com per compartir completament la implementació entre les dues arquitectures.
Comunicació intranode i internode
La diferència principal entre GB200 NVL72 i els nodes Hopper anteriors és el gran domini NVLink, que permet la comunicació d'igual a igual més enllà del límit anterior de 8 dispositius. Tot i que els dispositius Blackwell s'han desplegat en nodes de 8 GPUs, hi ha molt valor en escalar a través de múltiples nodes mitjançant NVLink en comparació amb la xarxa InfiniBand més lenta.
Als nodes preomplidors, confiem en la comunicació de reducció total dins de les capes d'atenció i en una reducció paral·lela d'experts que s'assembla molt a la reducció total. A través de 4 GPUs, aprofitem tant NVLink com NVIDIA SHARP (Scalable Hierarchical Aggregation and Reduction Protocol): a més de l'amplada de banda d'igual a igual, també aprofitem les reduccions als commutadors NVLink per reduir encara més les latències i implementar difusions ràpides. Als nodes descodidors, s'utilitza una implementació personalitzada d'enviament i combinació de tots a tots a través de NVLink. Els nuclis s'han implementat internament utilitzant CuTeDSL i assignacions cuMem o assignacions de multicast.
Reducció total (All-Reduce)
Els preomplidors realitzen una operació de reducció total en la projecció de sortida de la capa d'atenció, sumant les contribucions dels caps particionats entre els rangs participants. El paral·lelisme de tensors només és eficaç quan el cost de la sobrecàrrega de reducció total es compensa amb la latència reduïda dels problemes de multiplicació de matrius més petits. Aquesta suposició normalment es compleix per al preompliment.
En sistemes NVIDIA HGX H200 i GB200 NVL72 de grau de centre de dades, les GPUs normalment estan connectades mitjançant commutadors NVLink. A més de l'encaminament, els commutadors poden realitzar operacions de reducció entre dispositius connectats mitjançant SHARP. Després de crear assignacions de memòria i registrar-les en un grup de multicast utilitzant les API de CUDA, els nuclis poden utilitzar multicast.ld_reduce i multicast.st per agregar i difondre valors a través dels commutadors. Per crear una base i components reusables que es puguin fusionar en altres nuclis, mantenim internament un nucli de reducció total CuTeDSL utilitzant aquestes primitives.
En un sistema amb N GPUs que redueixen B bytes, una implementació trivial faria que un igual carregués valors de tots els altres iguals, per a un total de N * (N - 1) * B bytes de tràfic de lectura. Una implementació més eficient dividiria les dades a reduir entre iguals, amb cadascun reduint un segment de l'entrada, i després les difondria a la resta. Això resulta en (N - 1) * (B / N) bytes llegits en un igual i difosos a la resta, per a un total de (N - 1) * B * 2 lectures i escriptures, reduint el tràfic a través dels commutadors.
Amb SHARP, la reducció i la difusió es poden dur a terme de manera més eficient: en lloc de llegir (N - 1) * (B / N) bytes en un dispositiu per a l'acumulació local, només es mouen B / N des del commutador, ja que ell mateix realitza la reducció utilitzant dades dels iguals. Per a la difusió, hi ha una millora similar, ja que el nombre de transaccions entre una GPU i el commutador a través de canals NVLink es redueix considerablement. Sense SHARP, el dispositiu acumulador realitzaria (N - 1) * (B / N) transaccions a través de NVLink amb el commutador, amb el commutador llegint la mateixa quantitat de dades dels iguals, per a un total de 2 * (N - 1) * (B / N) transaccions. Amb SHARP, es realitzen B / N transaccions entre la GPU i el commutador, i (N - 1) * (B / N) addicionals amb els iguals, per a un total de B transaccions.
Degut a la seva simplicitat, SHARP és una eina valuosa, ja que proporciona una implementació de maquinari directa per a un algorisme. Tot i que les transferències es redueixen en una fracció teòrica de N / (2 * (N - 1)) (la qual cosa equival al 33% amb 4 iguals), a la pràctica observem una millora del 10% tant en les latències de preompliment com de descodificació en sistemes H200 i GB200 NVL72.
Envien i combinació de MoE (MoE Dispatch - Combine)
Per als models MoE, els nuclis d'enviament i combinació mouen i agrupen testimonis per als problemes subsegüents de MoE GEMM entre iguals, realitzant una acumulació ponderada posteriorment a la combinació. Hem adaptat els nostres nuclis d'enviament i combinació existents a Blackwell, migrant-los a CuTeDSL, ajustant les assignacions de blocs i especialitzant-los de manera agressiva entre el preompliment i la descodificació.
Paral·lel d'experts (Expert Parallel)
El nucli paral·lel d'experts (EP) s'utilitza en els preomplidors. Atès que les seves entrades estan replicades en tots els rangs, el nucli d'enviament simplement necessita seleccionar els testimonis encaminats als experts del rang actual. Agrega informació d'encaminament i prepara els testimonis en memòries intermèdies utilitzades com a entrades per a MoE GEMM. El nucli de combinació primer realitza una acumulació local entre les contribucions dels testimonis encaminats als experts del rang actual, i després realitza una reducció total a través de tots els rangs.
Per a la descodificació, tot el nucli es fusiona en un de sol. El nucli de preompliment es divideix en múltiples nuclis, ja que l'encaminament i la reducció total requereixen menys blocs que el pas de combinació local. Amb CuTeDSL, podríem construir una biblioteca genèrica tant per a SHARP com per a la reducció total de NVLink i la sincronització d'igual a igual, component-la tant en els nuclis de reducció total com en els paral·lels d'experts.
Pel que fa al rendiment, observem que Blackwell és substancialment més ràpid que Hopper, a causa de velocitats de transferència millorades, major amplada de banda de memòria i millor rendiment computacional. Particionat a través de 8 dispositius i múltiples nodes en GB200s (EP=8), els nuclis es tornen més ràpids a mesura que l'acumulació local s'executa en molts menys testimonis a cada dispositiu i, amb SHARP, el cost de reducció a través de més rangs s'escala millor. Tanmateix, a la pràctica, limitem el paral·lelisme a 4 dispositius, ja que aquestes acceleracions no són universals a tots els nuclis.
Paral·lel de dades i paral·lel d'experts
El nucli paral·lel de dades i paral·lel d'experts (DP-EP) s'utilitza en els descodidors paral·lels de dades. Difon diferents testimonis de tots els rangs als experts, transferint els resultats als rangs d'origen i acumulant-los. Com que implementa un problema dispers de tots a tots, depèn únicament de NVLink.
A Hopper, aquest nucli està limitat a 8 dispositius dins del domini NVLink d'un únic node. Tanmateix, als sistemes GB200 podem escalar-lo a través d'un armari sencer. La major part del codi es reutilitza. L'única diferència és l'ús de manetes de fabric per intercanviar informació d'iguals a través d'IMEX per a la configuració inicial.
Com que les mides de transferència experimentades durant la descodificació són petites, estan lluny de saturar l'amplada de banda de NVLink i, en canvi, estan limitades per la latència. Les latències són de desenes de microsegons i es mantenen relativament estables a mesura que augmenta el nombre d'iguals, permetent-nos estendre un desplegament a través d'un nombre més gran de dispositius sense incórrer en una latència addicional significativa.
MoE GEMM
Els models MoE es beneficien del paral·lelisme d'experts, ja que el cost de multiplicar tots els testimonis amb tots els experts es pot paral·lelitzar fàcilment a través de múltiples dispositius. Amb el paral·lelisme de tensors en els preomplidors, en problemes densos el benefici és força directe, ja que cada rang ara ha de realitzar menys càlculs. En el cas de la descodificació, el paral·lelisme de dades proporciona un benefici addicional a més del paral·lelisme d'experts, ja que el major nombre de sol·licituds paral·leles encamina més testimonis a cada expert, densificant els problemes.
En la nostra implementació, actualment confiem en nuclis CUTLASS CUDA/C++ per a la multiplicació de matrius. Els hem provat en entrades de descodificació disperses amb diversos esquemes de quantificació i nivells de paral·lelisme per tal de decidir l'estratègia de particionament òptima per als descodidors. En les proves de rendiment següents, tots els experts s'activen amb un únic testimoni.
Hem trobat que escalar 128 experts a través de més de 16 rangs produeix rendiments decreixents amb CUTLASS, ja que el cost de multiplicar 2 experts no és substancialment inferior al de multiplicar-ne 4. Hi ha una millora clara a Blackwell sobre Hopper, fins i gràcies a l'estratègia d'escalat de blocs subòptima. Com que l'augment de latència d'uns 5 us entre EP=8 i EP=16 d'enviament/combinació és compensat per una disminució de més de 10 us en el cost de GEMM, als sistemes GB200, particionar els descodidors a través de 16 rangs està justificat, tal com confirmen també les proves de rendiment d'extrem a extrem.
Quantificació
Blackwell introdueix suport de maquinari per a nous esquemes de quantificació de 8 bits i 4 bits. A diferència de Hopper, que depenia de factors d'escalat per tensor o per bloc, Blackwell requereix un microescalat per aconseguir el millor rendiment de preompliment i descodificació. Tot i que l'esquema d'escalat de blocs utilitzat per a models com DeepSeek o Kimi està disponible, el microescalat és més eficient.
Hem desplegat Qwen3 235B amb l'esquema de quantificació MXFP8, convertint els pesos estàticament després d'afinar el model. L'impacte en la precisió va ser similar a l'impacte de l'escalat de blocs amb quantificació estocàstica, però el rendiment ofert va ser molt millorat, tal com il·lustren les microproves de rendiment de MoE GEMM. També hem considerat els esquemes de quantificació MXFP4 i NVFP4, tot i que l'impacte en la precisió sense l'entrenament conscient de la quantificació va ser massa significatiu per a la transició inicial de Hopper a Blackwell. Tenim previst explorar aquests formats amb més detall en treballs futurs.
Rendiment d'extrem a extrem
Hem provat els descodidors dels desplegaments de Blackwell Qwen3 235B i els hem comparat amb els nostres desplegaments anteriors de Hopper. En aquesta configuració, hem considerat l'escalat de blocs a través de tots dos desplegaments per centrar-nos en l'impacte del paral·lelisme. Els preomplidors TP=4 es van separar per a ambdues arquitectures per aïllar el rendiment de descodificació. La figura següent il·lustra el rendiment de descodificació suposant una taxa d'acceptació d'esborranys realista oferta per les nostres capes MTP.
A Hopper, particionar el desplegament a través de més de 8 GPUs no és viable, ja que les latències a través d'InfiniBand, particularment en adaptadors EFA, són substancialment més lentes. Tanmateix, a Blackwell, aconseguim un rendiment substancialment superior, gràcies als dominis NVLink més grans.
Hem aconseguit una implementació inicial de Blackwell generalitzant els nuclis existents de Hopper i impulsant el rendiment dels nuclis basats en NVLink. Continuarem reduint el cost de servir Qwen millorant la quantificació i afinant el rendiment de descodificació i el rendiment de preompliment dels altres nuclis del pipeline.
Referències
Entrada de blog del motor de transferència
Entrada de blog de preompliment desagregat
Entrada de blog de descodificació especulativa
Citació
@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}
}