Helion u vLLM-u: PyTorch-nativni DSL zamjenjuje CUDA kernele i ubrzava FP8 inferenzu Qwen3 modela
Helion je PyTorch-nativni DSL za pisanje GPU kernela bez direktnog CUDA koda. Devet Helionovih kernela integrirano je u vLLM za FP8 inferenzu Qwen3 modela: ne-GEMM kerneli bilježe ubrzanja do 73% na H100, a sveukupna propusnost raste za oko 5–9% u usporedbi s prethodnim rješenjima.
Ovaj članak generiran je uz pomoć umjetne inteligencije na temelju primarnih izvora.
PyTorch tim objavio je danas blog post u suradnji s Red Hatom koji opisuje integraciju devet Helionovih kernela u vLLM za FP8 inferenzu (zaključivanje) Qwen3 modela. Autori su Sean Chen iz Red Hata i Yanan Cao iz Meta Platformsa (PyTorch tima).
Što je Helion i zašto bi programeri trebali biti zainteresirani?
Helion je domenski specifični jezik (DSL, engl. domain-specific language) koji se opisuje kao „PyTorch s tileovima” — omogućuje pisanje visoko-performantnih GPU kernela koristeći PyTorch-ovu sintaksu proširenu konceptima tileizacije (engl. tile-programming), bez direktnog pisanja CUDA koda. Cilj je hardverska prenosivost: isti kernel treba raditi na NVIDIA H100, B200 i budućim arhitekturama bez ručnog portiranja.
Helion nudi naprednu infrastrukturu za ahead-of-time (AOT) autotuning — automatsko traženje optimalnih veličina tilova i rasporeda memorije za svaku ciljanu GPU arhitekturu i dimenziju ulaza. Razvoj kernela je brz: autori navode da je većina od devet kernela implementirana i validirana unutar jednog radnog dana.
Koji su kerneli integrirani u vLLM
Devet kernela pokriva gotovo cijelu forward pass (prolaz unaprijed) FP8 inferencije:
dynamic_per_token_scaled_fp8_quantrms_norm_dynamic_per_token_quantsilu_and_mul_dynamic_per_token_quant— novi fuzijski kernelfused_qk_norm_ropeper_token_group_fp8_quantrms_norm_per_block_quantsilu_and_mul_per_block_quantscaled_mmscaled_mm_blockwise
Integracija smanjuje broj poziva kernela u forward passu s 11+ na 10 fuzijskih operacija za per-token kvantizaciju.
Performanse na razini pojedinih kernela
Ne-GEMM kerneli pokazuju dosljedna i značajna ubrzanja na H100 u usporedbi s prethodnim implementacijama (torch.ops._C):
- rms_norm_per_block_quant: +67% (2.055× vs
torch.ops._C) - silu_and_mul_per_block_quant: +73% (2.269× vs
torch.ops._C) - rms_norm_dynamic_per_token_quant: 1.80× vs
torch.ops._C - fused_qk_norm_rope: 1.38× vs
torch.compile
GEMM kerneli (scaled_mm) pokazuju mješovite rezultate: 1.08× na H100, ali 0.739× na B200. Autori otvoreno navode da je uzrok ograničenje Triton generiranja koda za Blackwell arhitekturu i da je u tijeku razvoj CuteDSL backenda koji bi trebao riješiti taj problem.
Ubrzanje na razini cijelog modela
Testiranje je provedeno na Qwen3 modelima (1,7B, 8B i 32B parametara) na H100 i B200:
- Per-token kvantizacija (H100): ~1.05× sveukupna propusnost za Qwen3-1.7B
- Spekulativno dekodiranje, Qwen3-8B, H100: do 1.09× ukupne propusnosti (1.15× TTFT ubrzanja pri batch veličini 16)
- Per-group kvantizacija (H100 i B200): ~1.05× na svim workloadima
Za Qwen3-8B sa spekulativnim dekodiranjem i 3 spekulativna tokena izmjereno je 1.33× ubrzanje TTFT-a (engl. time to first token).
Praktična ograničenja
Autori su transparentni o kompromisima. Autotuning velikih kernela poput scaled_mm zahtijeva otprilike jedan dan za pokrivanje svih oblika ulaza (168 distinktnih dimenzija za tri Qwen3 varijante). Helionov runtime dispatch uvodi nekoliko desetaka mikrosekundi kašnjenja po pozivu kernela, pa je CUDA graph capture obavezan za postizanje optimalnih performansi.
Helion per-group kvantizacijski kerneli još nisu kompatibilni s UE8M0 formatom koji DeepGEMM zahtijeva na B200, što je još jedna otvorena stavka.
Pogled prema naprijed
Projekt je objavljen kao GitHub issue vllm-project/vllm#32962 s implementacijom svih devet kernela. Cilj je proširiti Helion podršku na dodatne arhitekture i riješiti GEMM performanse na Blackwellu kroz CuteDSL backend. Suradnja Red Hata i Meta PyTorch tima na ovom problemu signal je da se PyTorch ekosustav ozbiljno bavi problemom hardverske prenosivosti visokoučinkovitih kernela za inferenzu.
Česta pitanja
- Što je Helion i zašto je relevantan za vLLM?
- Helion je PyTorch-nativni domenski specifični jezik (DSL) za pisanje visoko-performantnih GPU kernela koristeći model tileizacije (tile-programming), bez pisanja direktnog CUDA koda. Za vLLM je relevantan jer omogućuje pisanje prenosivih kernela koji rade na više GPU arhitektura uz zadržavanje performansi specifičnih za hardver.
- Koliko Helionovih kernela je integrirano u vLLM i koji su rezultati?
- Devet kernela je integrirano u vLLM. Ne-GEMM kerneli bilježe ubrzanja od 67–73% na H100 u usporedbi s prethodnim implementacijama (rms_norm_per_block_quant +67%, silu_and_mul_per_block_quant +73%). GEMM kerneli pokazuju 1.08× na H100, ali 0.739× na B200 zbog ograničenja Triton generiranja koda za Blackwell arhitekturu.
- Koji su modeli testirani i koje su end-to-end performanse?
- Testirani su Qwen3 modeli (1.7B, 8B i 32B) na NVIDIA H100 i B200. Sveukupna propusnost raste za oko 1.05× na H100 za per-token kvantizaciju, a za spekulativno dekodiranje s Qwen3-8B postiže se ubrzanje do 1.09×.
📬 AI vijesti u tvoj inbox
Dnevni digest po tvojoj mjeri — biraš teme, izvore i ritam. Odjava jednim klikom.
Povezane vijesti
CNCF: HAMi postao Incubating projekt — virtualizacija GPU-a za Kubernetes AI opterećenja
LF AI & Data: 'kontekst je novo usko grlo' — otvorena infrastruktura Docling i DocLang
PyTorch: Triton 3.7 donosi plugin-proširenja i TLX — do +15% throughputa na AMD MI350