La versione 2.15 di PyTorch, la libreria di apprendimento automatico, introduce il formato FP8 sui Mac e accelera notevolmente il decoding dei modelli a miscela di esperti (mixture-of-experts). Secondo il team PyTorch di Hugging Face, che firma l’annuncio, la versione include anche nuovi kernel Metal per audio, video e addestramento. Il backend MPS, oggetto di questi lavori, permette di eseguire i modelli PyTorch sulla GPU dei Mac.
Per i modelli di linguaggio, il guadagno più visibile riguarda i modelli a miscela di esperti, dove ogni strato distribuisce i token tra diversi esperti. Secondo la fonte, questi modelli decodificano da 5 a 6,5 volte più velocemente rispetto a PyTorch 2.14. Su un M3 Ultra con torch.compile, Qwen3.6-35B-A3B passa da 9,4 a 61,3 token al secondo, e LFM2.5-8B-A1B da 23,6 a 123,6 token al secondo. Anche i modelli densi beneficiano di strati lineari più veloci. Il campionamento del testo è accelerato dal calcolo del softmax: su una riga di logits di dimensione [1, 128256] in FP32, il tempo passa da 57 µs a 7 µs, cioè circa otto volte più veloce della versione MPSGraph.
Il FP8 arriva su Mac
PyTorch 2.15 aggiunge i tensori torch.float8_e4m3fn su MPS. Ogni valore occupa un byte, cioè la metà dello spazio del FP16 o del BF16, riducendo così la memoria necessaria per i pesi di un modello. Questi tensori si moltiplicano con F.scaled_mm, che gestisce le riscalature per tensore e per riga. La fonte indica inoltre che le altre operazioni supportate su CUDA e CPU lo sono ora anche su MPS.
Le prestazioni di generazione video sono anch’esse interessate. Il decoding del VAE a tasselli di Wan2.2 faceva salire la memoria del driver fino a 270 GiB, poiché il padding costante generava 8.764 chiamate su un decoding completo in 28 tasselli. Con il padding riscritto in Metal, il picco scende a circa 8 GiB. Lo stesso cambiamento corregge un difetto segnalato in ComfyUI, dove l’encoder VAE di Qwen-Image-2.1 alterava silenziosamente le immagini su MPS. Un ciclo completo di codifica-decoding raggiunge ora 29,95 dB di PSNR rispetto alla CPU, contro i 10,06 dB di prima.
Per utilizzare la versione, serve un Mac dotato di chip Apple silicon, macOS 15 o successivo e Python 3.11 o successivo. Il team indica che la versione candidata può essere installata in un ambiente separato con il comando uv pip install torch==2.15.0, utilizzando un indice dedicato. Precisa inoltre che la verifica di disponibilità di MPS indica ora la ragione di un fallimento, ad esempio un sistema operativo troppo vecchio o l’assenza di GPU Metal.
