Hugging Face 嘅 PyTorch 團隊今個月喺其博客交代咗 2.15 版對 Apple Silicon 上 MPS(Metal Performance Shaders,Apple 嘅 GPU 計算後端)後端嘅一輪大改動。佢哋話開年時喺 MPS 上面跑任何規模嘅模型都係要不斷規避唔支援嘅算子、性能懸崖同意外嘅記憶體膨脹;呢次嘅重點就係將原本依賴 MPSGraph 嘅路徑,逐步換成寫喺 Metal 上面嘅獨立 kernel。
最搶眼嘅係 MoE(Mixture of Experts,混合專家)模型嘅本地解碼:喺 M3 Ultra、開咗 torch.compile 嘅測試條件下,Qwen3.6-35B-A3B 由 2.14 嘅 9.4 tokens/s 提到 61.3 tokens/s,LFM2.5-8B-A1B 則由 23.6 提到 123.6 tokens/s,官方話係快咗 5 至 6.5 倍。官方話改善來自原生嘅 grouped matmul、獨立嘅 decode 路徑、減少 GPU-CPU 同步同更快嘅 top-k routing。
除咗 MoE,普通 dense LLM 都有快啲:單行 linear layer 用咗獨立嘅 matrix-vector kernel,詞彙上嘅 softmax 快咗大約 8 倍。線性代數部分,複數 LU 同三角求解、小矩陣求逆同 QR 分解都搬到 GPU 處理。
記憶體嗰邊,Wan2.2 嘅 tiled VAE 解碼喺 2.14 曾將驅動記憶體推高到 270 GiB,2.15 之後峰值約 8 GiB。同樣嘅 padding 改動亦修復咗 Qwen-Image-2.1 VAE encoder 喺 MPS 上靜默損壞圖片嘅問題,round trip 嘅 PSNR 由 10.06 dB 提到 29.95 dB。
FP8(float8_e4m3fn)亦首次落去 Mac:張量記憶體佔用係 BF16 嘅一半,F.scaled_mm 可以直接喺 GPU 上面做 scaled matrix multiplication。
使用條件方面,2.15 嘅 MPS 後端要求 macOS 15 或以上同 Python 3.11 或以上;版本過舊或者冇 Metal GPU,可用性檢查會直接話你點解跑唔到。團隊亦預咗下一版 2.16:attention 會完全搬去 Metal、繼續將 MPSGraph 遷移到 Metal、並再加快 LLM 解碼。
模姐|深度調教




