
Qwen3-32B op Paiton + AMD MI300X tegenover NVIDIA H200
1. Introductie
“Terwijl we modellen trainen voor lokale klanten en kritieke bedrijfsprocessen automatiseren en stroomlijnen, vonden we ook tijd om ons Paiton-framework met Qwen3-32B tot het uiterste te drijven.”
In de competitieve wereld van LLM's krijgt nieuwe hardware zoals de NVIDIA H200 vaak de meeste aandacht. Onze AMD MI300X-oplossing, geoptimaliseerd met Paiton, biedt echter tegen een aanzienlijk lagere prijs het beste van twee werelden: vergelijkbare of betere prestaties en aantrekkelijke kosten per miljoen tokens.
2. Wat we hebben getest
We testten het pas uitgebrachte Qwen3-32B-model op:
- AMD MI300X met de oudere drivers 6.3.1, dus zelfs niet met de recentere versie 6.4
- NVIDIA H200 met de nieuwste stuurprogramma's/toolchains
- Paiton: ons framework voor concurrency en kernelfusie, geïntegreerd met vLLM 0.8.4
- Benchmarking met
python3 benchmark_serving.py, in verschillende configuraties, met en zonder het argument--sharegpt-output-len=256
Ter referentie testten we ook een niet-geoptimaliseerde Stock MI300X-opstelling. De echte blikvanger is echter Paiton op de MI300X, onze softwarelaag voor een hogere throughput.
Hieronder vindt u een korte samenvatting van onze typische opdrachten:
Zonder --sharegpt-output-len
python3 benchmark_serving.py --backend vllm --model Qwen/Qwen3-32B --dataset-name sharegpt --dataset-path ./ShareGPT_V3_unfiltered_cleaned_split.json --num-prompts 32 --random-range-ratio 1.0 --host 0.0.0.0 --port 8888 --percentile-metrics ttft,tpot,itl,e2e
Met --sharegpt-output-len=256
python3 benchmark_serving.py --backend vllm --model Qwen/Qwen3-32B --dataset-name sharegpt --dataset-path ./ShareGPT_V3_unfiltered_cleaned_split.json --num-prompts 32 --random-range-ratio 1.0 --host 0.0.0.0 --port 8000 --percentile-metrics ttft,tpot,itl,e2el --sharegpt-output-len 256
We hebben batchgroottes 1, 2, 4, 8, 16, 32, 64, 128 getest in elk scenario en omgevingsvariabelen gebruikt:
HIP_VISIBLE_DEVICES=1 vllm serve -tp 1 --swap-space 16 --port 8888 --disable-log-requests Qwen/Qwen3-32B --num-scheduler-steps 10
De met Paiton geoptimaliseerde modelruns gebruiken naast deze flags ook gespecialiseerde concurrencyoptimalisaties en kernels.
3. Belangrijkste cijfers: opnieuw beter dan de H200
Hoewel de H200 volop in de belangstelling staat, evenaart of overtreft Paiton + MI300X de H200 bij meerdere batchgroottes, en dat tegen lagere totale hardwarekosten:
Een systeem met 8 H200 GPU's tegenover een systeem met 8 MI300X GPU's: $40.000 besparing met AMD.
Dat is niet klein. Als u ook het aantal tokens over de volledige levensduur van het systeem meerekent, vallen de kosten per miljoen tokens nog gunstiger uit voor de MI300X.
4. Gedetailleerde prestatietabellen
We laten twee sets gegevens zien:
- Zonder de flag
--sharegpt-output-len - Met
--sharegpt-output-len=256
Voor elke reeks tonen we throughput (requests/s, outputtokens/s en totale tokens/s) en latency (TTFT, TPOT, ITL en E2E).
4.1. Zonder --sharegpt-output-len
We hebben drie configuraties vergeleken:
- H200 (nieuwste stuurprogramma's en Torch-stack)
- Stock MI300X (oudere 6.3.1-drivers)
- Paiton (onze gespecialiseerde gelijktijdigheid + kernelfusie)
4.1.A. Throughput zonder --sharegpt-output-len
| Batch | Configuratie | Requests/s | Out Tok/s | Total Tok/s |
|---|---|---|---|---|
| 1 | H200 | 0,33 | 39,48 | 43,46 |
| 1 | MI300x (Stock) | 0,33 | 39,26 | 43,22 |
| 1 | Paiton | 0,43 | 51,14 | 56,30 |
| 2 | H200 | 0,11 | 48,24 | 50,19 |
| 2 | MI300x (Stock) | 0,10 | 45,89 | 47,75 |
| 2 | Paiton | 0,13 | 59,04 | 61,43 |
| 4 | H200 | 0,21 | 67,46 | 71,11 |
| 4 | MI300x (Stock) | 0,20 | 67,23 | 70,86 |
| 4 | Paiton | 0,26 | 86,65 | 91,34 |
| 8 | H200 | 0,40 | 109,04 | 166,55 |
| 8 | MI300x (Stock) | 0,40 | 108,94 | 166,39 |
| 8 | Paiton | 0,52 | 141,50 | 216,13 |
| 16 | H200 | 0,78 | 178,20 | 333,99 |
| 16 | MI300x (Stock) | 0,78 | 178,48 | 334,51 |
| 16 | Paiton | 1,00 | 229,26 | 429,68 |
| 32 | H200 | 1,47 | 329,48 | 677,57 |
| 32 | MI300x (Stock) | 1,47 | 329,93 | 679,47 |
| 32 | Paiton | 1,87 | 417,91 | 860,65 |
| 64 | H200 | 2,69 | 564,33 | 1226,38 |
| 64 | MI300x (Stock) | 2,53 | 535,74 | 1157,55 |
| 64 | Paiton | 3,30 | 699,03 | 1511,26 |
| 128 | H200 | 4,68 | 1021,46 | 2107,07 |
| 128 | MI300x (Stock) | 4,57 | 995,06 | 2056,82 |
| 128 | Paiton | 5,33 | 1163,39 | 2401,25 |
Waarnemingen (geen sharegpt-output-len):
- Paiton + MI300X leidt bij alle batchgroottes voor de totale throughput, zowel in requests/s als total tokens/s.
- H200 en Stock MI300X liggen tot ongeveer batchgrootte 16 dicht bij elkaar. Daarna lopen de resultaten wat uiteen, terwijl Paiton een duidelijke sprong voorwaarts maakt.
- Zelfs bij de grootste batchgrootte (128) ligt Paiton 15-20% voor op H200 in totaal aantal tokens/s.
4.1.B. Latency zonder --sharegpt-output-len
Hieronder tonen we de gemiddelden voor TTFT (Time-to-First-Token), TPOT (Time per Output Token), ITL (Inter-Token Latency) en E2E (End-to-End). Voor de leesbaarheid laten we de mediaan en p99 weg.
| Batch | Configuratie | Gemiddelde TTFT (ms) | Gemiddelde TPOT (ms) | Gemiddelde ITL (ms) | Gemiddelde E2E (ms) |
|---|---|---|---|---|---|
| 1 | H200 | 71,11 | 24,94 | 24,94 | 3013,7 |
| 1 | MI300x Stock | 96,59 | 24,86 | 24,86 | 3030,07 |
| 1 | Paiton | 61,42 | 19,19 | 19,19 | 2325,87 |
| 2 | H200 | 70,30 | 24,15 | 23,95 | 10690,70 |
| 2 | MI300x Stock | 95,40 | 25,26 | 25,12 | 11235,03 |
| 2 | Paiton | 66,48 | 19,38 | 19,46 | 8697,51 |
| 4 | H200 | 71,00 | 25,65 | 25,46 | 8409,96 |
| 4 | MI300x Stock | 94,67 | 25,65 | 25,49 | 8442,12 |
| 4 | Paiton | 70,86 | 19,69 | 19,65 | 6506,55 |
| 8 | H200 | 190,87 | 26,25 | 26,00 | 7283,43 |
| 8 | MI300x Stock | 244,19 | 26,09 | 25,93 | 7317,94 |
| 8 | Paiton | 205,81 | 19,91 | 19,90 | 5634,23 |
| … | … | … | … | … | … |
(Tabel ingekort voor leesbaarheid, maar de trend is consistent: Paiton reduceert de tijd tot het eerste token bij kleine batchgroottes en kan de E2E-latentie met een betekenisvolle marge verkorten bij batchgroottes uit het middensegment.)
4.2. Met --sharegpt-output-len=256
Vervolgens bekijken we het scenario waarin de outputlengte op 256 tokens is vastgelegd. Dat helpt vaak bij concurrency en scheduling, omdat het model geen rekening meer hoeft te houden met variabele of onzekere antwoordlengtes.
4.2.A. Throughput met --sharegpt-output-len=256
| Batch | Configuratie | Requests/s | Out Tok/s | Total Tok/s |
|---|---|---|---|---|
| 1 | H200 | 0,15 | 39,32 | 41,17 |
| 1 | MI300x Stock | 0,15 | 39,12 | 40,95 |
| 1 | Paiton | 0,19 | 49,75 | 52,09 |
| 2 | H200 | 0,30 | 76,36 | 81,73 |
| 2 | MI300x Stock | 0,30 | 76,30 | 81,66 |
| 2 | Paiton | 0,39 | 99,84 | 106,86 |
| 4 | H200 | 0,59 | 152,27 | 162,83 |
| 4 | MI300x Stock | 0,59 | 151,23 | 161,72 |
| 4 | Paiton | 0,76 | 194,67 | 208,17 |
| 8 | H200 | 1,14 | 291,00 | 455,11 |
| 8 | MI300x Stock | 1,13 | 289,74 | 453,14 |
| 8 | Paiton | 1,44 | 369,11 | 577,28 |
| 16 | H200 | 2,08 | 531,34 | 996,58 |
| 16 | MI300x Stock | 2,13 | 545,21 | 1022,13 |
| 16 | Paiton | 2,63 | 673,64 | 1262,91 |
| 32 | H200 | 3,75 | 959,10 | 1836,45 |
| 32 | MI300x Stock | 3,72 | 951,17 | 1820,83 |
| 32 | Paiton | 4,35 | 1112,82 | 2130,28 |
| 64 | H200 | 6,35 | 1614,17 | 3186,41 |
| 64 | MI300x Stock | 5,19 | 1328,16 | 2613,51 |
| 64 | Paiton | 6,49 | 1661,29 | 3269,05 |
| 128 | H200 | 9,21 | 2356,92 | 4547,69 |
| 128 | MI300x Stock | 8,18 | 2086,62 | 4032,20 |
| 128 | Paiton | 8,94 | 2278,53 | 4405,65 |
Waarnemingen (met sharegpt-output-len=256):
- De prestaties gaan over de hele linie omhoog omdat het model het genereren van tokens voorspelbaarder kan plannen.
- Paiton breidt opnieuw de voorsprong van MI300x uit bij de meeste batchgroottes. Bij batch=64 en 128 liggen H200 en Paiton heel dicht bij elkaar, maar soms doet H200 een iets hogere aanvraagdoorvoer. Zelfs dan bevindt het totaal aantal tokens/s van Paiton zich in dezelfde marge of overtreft deze.
4.2.B. Latency met --sharegpt-output-len=256
| Batch | Configuratie | TTFT (ms) | TPOT (ms) | ITL (ms) | E2E (ms) |
|---|---|---|---|---|---|
| 1 | H200 | 143,90 | 24,96 | 24,96 | 6509,40 |
| 1 | MI300x Stock | 176,79 | 24,97 | 24,97 | 6543,64 |
| 1 | Paiton | 117,14 | 19,71 | 19,71 | 5144,32 |
| 2 | H200 | 145,96 | 25,72 | 25,72 | 6703,84 |
| 2 | MI300x Stock | 171,51 | 25,64 | 25,64 | 6708,87 |
| 2 | Paiton | 113,62 | 19,66 | 19,66 | 5126,54 |
| 4 | H200 | 145,09 | 25,80 | 25,80 | 6723,31 |
| 4 | MI300x Stock | 170,48 | 25,88 | 25,88 | 6768,63 |
| 4 | Paiton | 117,72 | 20,16 | 20,16 | 5257,58 |
| 8 | H200 | 263,55 | 26,56 | 26,56 | 7035,76 |
| 8 | MI300x Stock | 320,44 | 26,45 | 26,45 | 7064,58 |
| 8 | Paiton | 253,04 | 20,75 | 20,75 | 5544,18 |
| … | … | … | … | … | … |
(Nogmaals, gedeeltelijke gegevens worden kortheidshalve weergegeven.)
Belangrijkste latencyresultaten:
- Paiton reduceert consequent de Time-to-First-Token (TTFT) bij kleine batchgroottes.
- De gemiddelde E2E-latentie ziet een merkbare daling bij Paiton versus de standaard MI300x of H200, vooral in het batchbereik van 1–16.
- Bij grotere batchgroottes neemt de latency vanzelf toe, maar Paiton helpt ze onder controle te houden.
5. Kosten per miljoen tokens: echte ROI voor Paiton + MI300x
Puur vanuit bedrijfsperspectief is het kostenverschil tussen het 8-GPU H200-systeem en het 8-GPU MI300x-systeem, $40.000, aanzienlijk. Wanneer genormaliseerd op basis van het totale aantal verwerkte tokens (bijvoorbeeld gedurende de meerjarige levenscyclus van het systeem), is de berekening in het voordeel van AMD:
- H200 produceert mogelijk een marginaal hogere doorvoer bij extreem grote batchgroottes, maar vereist een grotere financiële uitgave.
- MI300x + Paiton voldoet aan of verslaat de H200 tegen een veel lagere hardwareprijs. Uw $ / miljoen tokens-kosten kunnen dus aanzienlijk lager zijn.
Bij grootschalige inferentie, met miljarden of biljoenen tokens per maand, verdient dat prijsverschil zich snel terug.
"We berekenen de kosten per miljoen tokens door de geschatte hardwarekosten van elk systeem te delen door de aanhoudende tokenthroughput bij een gematigd concurrencyniveau. In een echte deployment kan het exacte bedrag variëren naargelang uw gebruikspatroon, operationele overhead en gekozen batchgroottes. Deze cijfers maken de relatieve kostenefficiëntie van de H200- en MI300X-oplossing met Paiton wel duidelijk."
6. Paiton maakt het verschil
De ruwe mogelijkheden van AMD-silicium zijn indrukwekkend. Paiton is onze eigen softwarelaag die concurrency, kernel launches en geheugengebruik optimaliseert:
- Kernelfusie: Minimaliseert overhead door bewerkingen samen te voegen.
- Adaptieve concurrency: benut het HBM-geheugen van de GPU om pieken met meerdere aanvragen te verwerken.
- Sterk met oudere drivers: zelfs met versie 6.3.1 verslaan we de H200. We verwachten nog grotere verbeteringen bij de overstap naar 6.4 en later.
In vrijwel elke bovenstaande tabel presteert “MI300X + Paiton” beter dan “H200” en “Stock MI300X”. Dat is niet alleen aan de hardware te danken, maar aan de wisselwerking tussen Paiton en de krachtige geheugenarchitectuur van AMD.
7. Belangrijkste conclusies
- Paiton + MI300x overtreft (of voldoet aan) de NVIDIA H200 op Qwen3-32B in kleine tot middelgrote batchgroottes en houdt vaak ook goed stand bij grotere formaten.
- $40K goedkoper voor een 8-GPU-systeem: Dat is een echt verschil in kapitaaluitgaven, culminerend in betere kosten per miljoen tokens in veel praktijkscenario's.
- Nog meer prestatiewinst in het vooruitzicht: nieuwe AMD-drivers en verdere concurrencyoptimalisaties in Paiton zullen de prestatiekloof verder vergroten.
8. Vooruitblik
“Blijf ons volgen. We hebben veelbelovende verbeteringen voor FP8 en meer in de pijplijn.”
We bouwen verder op deze resultaten. We blijven Paiton verfijnen met geavanceerde quantisatiestrategieën, diepere optimalisatietechnieken en doorlopende verbeteringen voor AMD's MI300X-platform. Nu steeds meer ondernemingen kiezen voor grootschalige interne LLM-deployments, kan de combinatie van AMD MI300X-hardware en Paiton de kosten verlagen en tegelijk de prestaties verhogen.
Bedankt voor het lezen. Neem gerust contact met ons op als u meer gegevens, een privédemo of een technische deep dive in ons concurrencymodel wilt.
Het Paiton-team
