PyTorch 2.15 introduce cambios para que un entrenamiento distribuido no se detenga por completo cuando una GPU falla o responde tarde. La actualización incorpora un backend renovado para NCCL, herramientas de diagnóstico y opciones para recuperar el trabajo con menos fricción.

Un solo comunicador por grupo de procesos

La novedad central es una nueva arquitectura para la comunicación entre GPU. NCCL, sigla de Nvidia Collective Communications Library y pronunciada «Nickel», sigue siendo el componente que permite intercambiar datos dentro de una máquina o entre nodos de un clúster.

Antes, ProcessGroupNCCL podía crear decenas de comunicadores por grupo de procesos. Según la información publicada, esa multiplicidad contribuía a bloqueos intermitentes y a un rendimiento impredecible. En PyTorch 2.15, cada grupo obtiene un solo comunicador durante su inicialización.

Con ese cambio, la interferencia entre comunicadores se reduce por defecto y la administración del sistema queda más simple. Si una aplicación necesita paralelismo, deberá distribuirlo en más grupos de procesos.

Tristan Rice, desarrollador principal de PyTorch e ingeniero de software de Meta especializado en computación distribuida, dijo en una transmisión en vivo el jueves que la reescritura deja una base más limpia para futuras capacidades. La implementación anterior seguirá disponible como alternativa en la versión 2.15.

Diagnóstico y recuperación cuando una GPU se retrasa

La actualización también busca hacer más manejable el caso de una GPU que falla o tarda demasiado en responder. El backend renovado facilita que un orquestador externo excluya al trabajador rezagado y, si puede, asigne otro en su lugar.

PyTorch 2.15 suma además una «grabadora de vuelo» que guarda instantáneas de operaciones. Con ese registro, los administradores pueden revisar qué ocurría antes de un bloqueo, una espera agotada por tiempo o un deadlock, en vez de depender solo de un mensaje genérico.

La nueva versión incorpora también una API de transporte de Python para mover datos de manera unidireccional y asíncrona. Puede ser útil en tareas donde se sincronizan pesos entre entrenadores y generadores, aunque la información disponible no ofrece cifras de rendimiento.

Además, incluye mejoras de procesamiento paralelo para equipos Apple y soporte para las próximas GPU Blackwell de Nvidia. El lanzamiento reúne 3.117 commits de 583 colaboradores, y la implementación heredada quedará como opción de reversión mientras se prueba el backend nuevo; si funciona como se espera, la versión anterior se retirará en PyTorch 2.16, prevista para principios de 2027.