PyTorch 2.15 решает проблему «одного сбойного GPU»

Pytorch Nccl ии Gpu обучение Nvidia theregister.com

PyTorch 2.15 улучшает отказоустойчивость обучения ИИ благодаря переработанному бэкенду NCCL. Устранена проблема с техническим долгом, повышена стабильность и диагностика сбоев при работе с GPU.

Администраторы машинного обучения будут рады узнать, что одна неисправная видеокарта больше не означает необходимость начинать всю задачу обучения с нуля. Последний выпуск 2.15 PyTorch включает переписанный бэкенд для библиотеки коллективных коммуникаций Nvidia (NCCL), разработанный для улучшения диагностики и восстановления после сбоев при совместной работе видеокарт.

Эта последняя функция демонстрирует, как ее создатели продолжают развивать программное обеспечение, превращая его из инструмента для исследователей в краеугольный камень производственных задач ИИ. 

Интерфейс к сетевой библиотеке в PyTorch нуждался в переработке — он утонул в техническом долге, сказал ведущий разработчик PyTorch Тристана Райс, инженер-программист *Meta, специализирующийся на распределенных вычислениях, во время прямой трансляции на YouTube в четверг. 

NCCL произносится как «Никель» и расшифровывается как Nvidia Collective Communications Library. Она предоставляет PyTorch набор примитивов для межпроцессорной связи, позволяя видеокартам обмениваться данными в пределах одного узла или между кластерами из нескольких узлов, что жизненно важно для выполнения инференса на больших нейронных сетях и для других задач при создании и поддержке LLM.

Старый интерфейс NCCL был слишком хаотичным

Предыдущий бэкенд PyTorch для NCCL, называвшийся ProcessGroupNCCL, мог создавать десятки коммуникаторов на группу процессов, что приводило к периодическим взаимоблокировкам и непредсказуемой производительности. 

Новая версия бэкенда NCCL поставляется со строгим правилом: одна группа процессов получает только один коммуникатор во время инициализации. По умолчанию это правило устраняет перекрестные помехи между несколькими коммуникаторами и всю связанную с этим сложность. Если программе требуется параллелизм, ей придется использовать больше групп процессов.  

Обновленная библиотека также лучше справляется с отстающими процессами, позволяя легче переконфигурировать систему. Если видеокарта выходит из строя или работает медленно, сторонний оркестратор может исключить отстающий узел и даже назначить замену.

Также был добавлен «бортовой самописец», чтобы администраторы могли лучше понять, что пошло не так. Ранее, если кластер видеокарт зависал — возможно, из-за тайм-аута или взаимоблокировки — пользователь получал лишь общее сообщение. Новый бортовой самописец фиксирует все операции в серии снимков, которые можно проанализировать после сбоя.

Райс отметил, что очищенный бэкенд NCCL, также называемый ProcessGroupNCCL, предоставит разработчикам чистый лист, что облегчит добавление новых функций.

Устаревший ProcessGroupNCCL входит в пакет 2.15 как опция отката, но если новый бэкенд NCCL будет работать должным образом, старая версия будет удалена в выпуске 2.16, запланированном на начало следующего года. 

Происхождение от Nvidia

Почему, спросите вы, фреймворку машинного обучения нужна специализированная библиотека коммуникаций? Как и NumPy, PyTorch поддерживает числовые вычисления, но также предоставляет инструменты для создания и обучения нейронных сетей на ЦП и ГП.

В этих средах рабочие процессы должны постоянно обмениваться данными, такими как тензоры, градиенты, активации и веса. Стандартный сетевой стек на основе TCP может создавать узкие места в больших кластерах ГП, поэтому NCCL использует оптимизированные пути связи для перемещения данных между ГП при снижении нагрузки на ЦП.

Nvidia изначально выпустила NCCL на SC15 как универсальный ускоритель, и он был принят командой *Facebook, когда они впервые создали PyTorch в 2016 году. Их целью было создать версию библиотеки Torch ML на основе Lua на Python.

«Каждая крупная ML-лаборатория (OpenAI, DeepMind, *Meta, Nvidia) использует PyTorch. Он обеспечивает работу всего, от диффузионных моделей и LLM до рекомендательных систем и робототехники. Такое широкое распространение не случайно», — отметил Уилл Стюарт, соучредитель поставщика программного обеспечения для ИИ Northflank, в посте в блоге.     

Дополнительная поддержка Apple и будущих GPU Nvidia

Другие новые функции PyTorch 2.15 включают новый Python transport API для асинхронного одностороннего перемещения данных — идеально подходит для задач обучения, где веса синхронизируются между тренерами и генераторами — а также улучшения параллельной обработки для устройств Apple и поддержку будущих GPU Nvidia Blackwell. 

В целом, обновление состояло из 3117 коммитов от 583 участников. ®

*Facebook, *Instagram и *WhatsApp принадлежат компании *Meta Platforms Inc., деятельность которой признана экстремистской и запрещена на территории Российской Федерации.

Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.

Похожие новости: