Перейти к содержимому
НейроКуб
Открытый материал · 2 мин
Даниил Баланс

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 в том же процессе теперь явно запрещена. Главное приобретение — наблюдаемость сбоя, а решение об обновлении зависит от совместимости конкретной задачи.

Комментарии

Пока нет комментариев. Начните обсуждение.