PyTorch 2.9: novità per GPU, multi-device e ottimizzazioni su Linux

La versione 2.9 di PyTorch è ufficialmente disponibile e porta con sé una serie di miglioramenti significativi per chi sviluppa modelli di intelligenza artificiale su Linux.

Con oltre 3.200 commit da parte di più di 450 contributor, questa release si distingue per l’introduzione di nuove funzionalità legate alla programmazione multi-GPU, al supporto hardware esteso e all’ottimizzazione delle prestazioni su architetture Arm. Il progetto continua a rafforzare la sua posizione come framework di riferimento per il deep learning open source.

PyTorch 2.9 le principali novità

Una delle novità più interessanti è l’introduzione della Symmetric Memory, una tecnologia che semplifica la programmazione di kernel multi-GPU su reti NVLink e RDMA. Grazie a questa innovazione, è possibile realizzare comunicazioni in-kernel con latenza ultra-bassa e pattern personalizzati, migliorando l’efficienza nei modelli distribuiti. Le nuove primitive di comunicazione, come one_shot_all_reduce e all_to_all_vdev_2d_offset, sono pensate per scenari complessi come i modelli MoE e il dispatch token.

PyTorch 2.9 amplia anche il supporto ai pacchetti binari con varianti per ROCm, XPU e CUDA 13, rendendo più semplice l’installazione su diverse piattaforme hardware. Questa espansione, parte dell’iniziativa WheelNext, include plugin che rilevano automaticamente le caratteristiche del sistema e ottimizzano il comportamento del framework. Gli sviluppatori possono ora contare su una maggiore portabilità e flessibilità, sia su Linux x86 che su aarch64.

Tante ottimizzazioni e supporto a FlexAttention per GPU Intel

Sul fronte delle ottimizzazioni CPU, PyTorch introduce il supporto a FlexAttention per GPU Intel e migliora la decodifica Flash su CPU x86, accelerando l’inferenza nei modelli LLM con sequenze lunghe. Queste modifiche permettono una gestione più efficiente della memoria e una riduzione dei tempi di generazione, anche in condizioni di parallelismo limitato.

Per chi sviluppa estensioni personalizzate in C++ e CUDA, PyTorch 2.9 offre nuove API stabili tramite libtorch ABI. Queste includono wrapper per Device Guard, Stream e operatori ATen come amax, narrow e pad. L’obiettivo è garantire compatibilità tra versioni diverse del framework, semplificando la manutenzione del codice e l’integrazione con progetti esterni.

Infine, la release porta miglioramenti specifici per le piattaforme Arm, con test suite più veloci in modalità torch.compile, operatori ottimizzati e supporto esteso per AWS Graviton 4. PyTorch dimostra così un impegno concreto verso l’efficienza su architetture alternative, rafforzando la sua presenza nel cloud e nei dispositivi edge.

Lascia un commento