El equipo de PyTorch ha portado Monarch a GPUs AMD Instinct con ROCm, extendiendo su modelo de controlador único para entrenamiento distribuido más allá del ecosistema CUDA. Monarch permite orquestar clústeres completos de GPUs desde un único programa Python mediante un sistema basado en actores, abstracción de mallas de procesos y ejecución asíncrona.
El artículo detalla la arquitectura multicapa de Monarch (API en Python, runtime en Rust sobre Tokio, integración con RDMA, RCCL/NCCL, SLURM, Kubernetes y SkyPilot) y el trabajo de ingeniería necesario para el porte. El equipo convirtió el código C++ de CUDA a HIP con hipify_torch, extendió el sistema de compilación para detectar ROCm automáticamente y mantuvo la ruta RDMA basada en libibverbs. En Rust, un módulo rocm_compat reexporta símbolos HIP bajo nombres CUDA para evitar forks en las bindings. Las 1.171 pruebas pasan en ROCm 7.0+ y la integración se ha subido a la comunidad open source.
El artículo también presenta un caso de estudio con TorchTitan y TorchFT que demuestra recuperación dinámica de fallos: cuando un proceso de GPU cae, Monarch lo detecta mediante su árbol de supervisión y TorchFT coordina un quórum que permite a las réplicas sanas continuar entrenando sin interrumpir el trabajo global. Esta arquitectura elimina la dependencia del checkpointing periódico y reduce el tiempo de inactividad del clúster.
