Интеграция ускорителей
Создано: 2 сентября 2025 г. | Последнее обновление: 18 мая 2026 г.
Начиная с PyTorch 2.1 сообщество добилось значительного прогресса в упрощении процесса интеграции новых ускорителей в экосистему PyTorch. Эти улучшения включают, помимо прочего, усовершенствование ключа диспетчеризации PrivateUse1, введение и развитие механизмов расширения основных подсистем, а также рефакторинг ключевых модулей с целью устранения зависимости от конкретного устройства (например, torch.accelerator, memory management). В совокупности эти достижения обеспечивают основу для надежного, гибкого и удобного для разработчиков процесса интеграции ускорителей.
Примечание
Это руководство находится в разработке. Дополнительные сведения см. в плане работ.
Почему это важно?
Этот процесс интеграции дает несколько важных преимуществ:
- Скорость: Возможность расширения встроена во все основные модули PyTorch. Разработчики могут самостоятельно интегрировать новые ускорители в собственные кодовые базы, не изменяя вышестоящий код и не завися от пропускной способности сообщества при проверке изменений.
- Готовность к будущему: Это стандартный путь интеграции для всех будущих возможностей PyTorch. Это означает, что по мере добавления новых модулей и возможностей они автоматически будут поддерживать масштабирование на новые ускорители, если использовать этот путь.
- Автономность: Поставщики полностью контролируют сроки интеграции своих ускорителей, что позволяет быстро выполнять итерации и снижает зависимость от координации с вышестоящим проектом.
Целевая аудитория
Этот документ предназначен для:
- Разработчиков ускорителей, интегрирующих ускорители в PyTorch;
- Опытных пользователей PyTorch, интересующихся внутренним устройством ключевых модулей;
Об этом документе
Это руководство призвано дать исчерпывающее представление о современном процессе интеграции новых ускорителей в PyTorch. В нем рассматривается весь спектр интеграции: от низкоуровневых примитивов устройств до высокоуровневых предметных модулей, таких как компиляция и квантование. Структура руководства основана на модульном подходе, ориентированном на сценарии: каждая тема сопровождается соответствующими примерами кода из torch_openreg — официальной эталонной реализации. Руководство построено вокруг четырех основных направлений:
- Среда выполнения: рассматриваются основные компоненты, такие как Event, Stream, Memory, Generator, Guard и Hooks, а также вспомогательная инфраструктура C++.
- Операторы: рассматривается минимально необходимый набор операторов, прямые и обратные операторы, резервные операторы, fallthrough, STUB и т. д. в реализациях на C++ и Python.
- Интерфейс Python: основное внимание уделяется привязкам Python для модулей и API, не зависящим от устройства.
-
Высокоуровневые модули: рассматривается интеграция с основными подсистемами, такими как
AMP,Compiler,ONNXиDistributed.
Цель руководства — помочь разработчикам:
- понять весь спектр задач по интеграции ускорителей;
- следовать рекомендациям и быстро запускать поддержку новых ускорителей;
- избегать распространенных ошибок благодаря понятным и наглядным примерам.
Далее мы подробно рассмотрим каждую главу этого руководства. Каждая глава посвящена ключевому аспекту интеграции и содержит подробные объяснения и наглядные примеры. Поскольку некоторые главы основаны на предыдущих, читателям рекомендуется изучать их по порядку, чтобы получить более целостное представление.
© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/accelerator/index.html