Ugrás a tartalomra
Neural Daily

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

PyTorch × Hugging Face cover: the PyTorch logo and the Hugging Face mascot above the title What you can expect on MPS in PyTorch 2.15
Kép: Hugging Face · Sajtókép · Official blog thumbnail of the Hugging Face MPS in PyTorch 2.15 post · Forrá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ő.
Hugging Face bar chart: MoE decoding on an M3 Ultra with torch.compile gives about 1.3x more tokens per second with the new grouped matmul decode path
Hugging Face · Képernyőkép · Official benchmark chart from the Hugging Face MPS in PyTorch 2.15 post · Forrás

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

    Kapcsolódó cikkek