PyTorch 2.15 меняет связь между GPU по умолчанию: зависание оставит след
Переписанный backend NCCL стал стандартным для распределённого обучения. Flight recorder сохраняет данные о зависании; перед переносом рабочего задания стоит проверить и обратную совместимость.
В PyTorch 2.14 переписанный backend NCCL включали отдельно. В релизе 2.15 от 28 октября он стал стандартным для каждой группы процессов с backend nccl. Для команд, обучающих модели на нескольких GPU, обновление теперь меняет и слой обмена данными.
Что изменится при зависании
Когда одна операция обмена застревает, распределённая задача может остановиться целиком. Новый flight recorder сохраняет на диск посмертный отчёт: что делал каждый участник в момент сбоя. По описанию разработчиков, таймаут на одном участнике запускает выгрузки на всех остальных. Это даёт материал для диагностики без обязательного повторения зависания вручную.
Предусмотрены и пути возврата: переменная TORCH_DIST_USE_NCCL2=0 либо имя backend nccl-legacy. Соответствующий раздел релиза помечен API Unstable — рассчитывать на неизменность интерфейса пока рано.
Кому полезно обновление
Практический сценарий — задача на нескольких GPU, которая иногда замирает без понятной причины. Сохранённые состояния участников помогают сузить поиск; сами по себе они не устраняют ошибку и не обещают ускорения обучения.
Перед переносом рабочего задания стоит проверить запуск, обмен, завершение и сценарий отката на своей конфигурации. В полных примечаниях к версии есть несовместимые изменения: например, повторная инициализация torch в том же процессе теперь явно запрещена. Главное приобретение — наблюдаемость сбоя, а решение об обновлении зависит от совместимости конкретной задачи.
Комментарии
Войдите, чтобы оставить комментарий
Пока нет комментариев. Начните обсуждение.