🟢 📦 Open Source Objavljeno: · 3 min čitanja ·

Helion u vLLM-u: PyTorch-nativni DSL zamjenjuje CUDA kernele i ubrzava FP8 inferenzu Qwen3 modela

Editorial ilustracija: PyTorch Helion DSL prenosivi GPU kerneli za zaključivanje i automatsko ugađanje LLM-ova

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:

  1. dynamic_per_token_scaled_fp8_quant
  2. rms_norm_dynamic_per_token_quant
  3. silu_and_mul_dynamic_per_token_quant — novi fuzijski kernel
  4. fused_qk_norm_rope
  5. per_token_group_fp8_quant
  6. rms_norm_per_block_quant
  7. silu_and_mul_per_block_quant
  8. scaled_mm
  9. scaled_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.