EszközökHír
PyTorch 2.15: FP8 és gyorsabb MoE-dekódolás Macen
A PyTorch 2.15 jelentősen felgyorsítja az Apple Silicon GPU-kon futó MPS backendet. Érkezik az FP8, a mixture-of-experts modellek dekódolása pedig akár 6,5-szer gyorsabb, mint a 2.14-ben. A munka nagy részét a Hugging Face PyTorch-csapata végezte.
Írta: Mikola Máté Patrik · · 3 perc olvasás

Mi változik?
Az MPS a PyTorch backendje az Apple Silicon GPU-khoz. A Hugging Face PyTorch-csapata idén valódi Hub-modelleken (nyelvi, kép- és videómodelleken) kereste meg, hol akad el. A hibákat upstream, a PyTorchban javították, egyre gyakrabban úgy, hogy az MPSGraph helyett saját Metal kerneleket írtak (Hugging Face).
A 2.15 egyelőre release candidate. Apple Silicon Mac kell hozzá macOS 15 vagy újabb rendszerrel, illetve Python 3.11 vagy újabb. Külön környezetben így próbálható ki: uv pip install torch==2.15.0 --index-url https://download.pytorch.org/whl/test/cpu
A legfontosabb számok
- MoE-dekódolás: M3 Ultrán, torch.compile-lal a Qwen3.6-35B-A3B 9,4 helyett 61,3 token/s-ot ad, az LFM2.5-8B-A1B pedig 23,6 helyett 123,6 token/s-ot. Ez a 2.14-hez képest 6,5-szörös, illetve 5,2-szeres gyorsulás. Az ok egy natív grouped matmul külön dekódolási ággal, kevesebb GPU és CPU közötti szinkronizáció, illetve gyorsabb top-k routing.
- Sűrű modellek: az F.linear egysoros dekódolási bemenetre mátrix-vektor kernelt használ. 96 valós BF16-os rétegalakon ez 1,23-szoros mértani átlagos gyorsulás. A softmax egy 128 256 elemű szótáron 57 µs helyett 7 µs, nagyjából 8-szor gyorsabb.
- FP8: MPS-en is van torch.float8_e4m3fn tenzor, ami fele annyi memóriát foglal, mint a BF16. Az F.scaled_mm közvetlenül a GPU-n szorozza őket, tensorwise és rowwise skálázással.
- Videó: a Wan2.2 tiled VAE dekódolása korábban kb. 270 GiB driver-memóriáig ment fel, most kb. 8 GiB a csúcs. Ezt a konstans padding Metalra költözése hozta.
- Képszerkesztés: a 2.14-en a Qwen-Image-2.1 VAE enkódere MPS-en csendben elrontotta a képeket (ComfyUI-ban jelezték). Ugyanez a padding-javítás rendbe teszi, a CPU-hoz mért PSNR 10,06 dB-ről 29,95 dB-re nő.

Forrás: Hugging Face. Csak a grouped matmul új dekódolási ága M3 Ultrán, torch.compile-lal kb. 1,3-szor több tokent ad másodpercenként.
Ami még bekerült
Több lineáris algebra fut a GPU-n: complex64 LU-felbontás, LU solve és triangular solve, gyorsabb kis mátrix inverz és QR. A conv1d, a padding, a dropout és az upsampling backward is Metal kernelt kapott. Pythonból már választható MPS stream (torch.mps.Stream), az időmérés eventekkel pedig megbízhatóbb lett.
Mi jön a 2.16-ban?
A scaled dot-product attention teljesen Metalon fog futni. A HF mérése szerint M5 Pro-n a grouped-query attention dekódolása 4K kontextuson 465 µs helyett 65 µs. A libtorch_cpu.dylib kb. 25%-kal kisebb lesz. Ezek egy része még review alatt van, így a részletek változhatnak.
Aki Macen futtat lokális LLM-et vagy képgenerálást Transformersszel, Diffusersszel vagy ComfyUI-jal, annak ez kézzelfogható frissítés: az MoE modellek eddig MPS-en kifejezetten lassúak voltak. Mivel még RC, a saját modellen érdemes kimérni, mielőtt bárki átáll rá.
MI segítségével készült, szerkesztő ellenőrizte. Hogyan készülnek a cikkeink
Szerkesztőségünk ellenőrizte és szerkesztette. Rólunk


