New-ZZZ
RU / EN

PyTorch 2.15 обеспечивает массивный прирост производительности ИИ на Apple Mac

Р
Редакция New-ZZZ
Hugging Face Blog · 2 недели назад

Команда PyTorch в Hugging Face выпустила PyTorch 2.15, сосредоточив основное внимание на улучшении бэкенда Metal Performance Shaders (MPS). Главная цель этого масштабного обновления — сделать Mac на базе Apple Silicon полноценной, высокопроизводительной платформой для запуска и обучения сложных моделей ИИ, включая те, что используются для генерации языка, изображений и видео. Исторически запуск продвинутых моделей на MPS представлял собой значительные препятствия, часто связанные с неподдерживаемыми операциями, узкими местами производительности и непредсказуемым потреблением памяти. Новая версия устраняет эти ограничения, заменяя общий MPSGraph на высокооптимизированные, специализированные ядра Metal, что стало возможным благодаря глубокому сотрудничеству с основными разработчиками PyTorch и более широким сообществом.

Одним из наиболее значимых дополнений является нативная поддержка типов данных FP8 (float8_e4m3fn) на MPS. FP8 позволяет разработчикам хранить веса и активации моделей, используя всего один байт на значение, что эффективно сокращает объем памяти вдвое по сравнению с BF16 или FP16. Эта энергоэффективность критически важна для запуска больших моделей локально на потребительском оборудовании, и PyTorch 2.15 позволяет использовать эти тензоры с высокооптимизированной функцией F.scaled_mm, которая выполняет масштабированное матричное умножение непосредственно на GPU, максимально используя специализированное оборудование Mac.

Прирост производительности наиболее заметен в области больших языковых моделей (LLMs) и архитектур Mixture-of-Experts (MoE). Для моделей MoE, таких как Qwen3.6-35B-A3B, прирост ошеломляет: достигнута скорость декодирования в 5–6,5 раз выше по сравнению с версией 2.14 на чипе M3 Ultra. Это массивное ускорение объясняется внедрением нативного ядра группового матричного умножения (grouped matmul). В отличие от предыдущих версий, которые могли требовать копирования смещений групп на CPU и итерации по группам, новые ядра Metal считывают эти смещения непосредственно на GPU, значительно оптимизируя процесс декодирования. Более того, даже плотные LLM выигрывают от специализированной оптимизации, включая выделенные ядра матрица-вектор для линейных слоев с одной строкой и впечатляющий 8-кратный прирост скорости расчета softmax по словарю, что критически важно для выборки токенов.

Помимо декодирования LLM, PyTorch 2.15 обеспечивает существенные улучшения в фундаментальных операциях линейной алгебры. Фреймворк теперь предлагает более быстрые реализации сложных математических вычислений, включая LU и триангулярные разложения, а также более быстрые инверсии малых матриц и QR-разложение. Эти основополагающие улучшения гарантируют, что базовый математический движок, питающий модели ИИ, является надежным и высокоэффективным. Обновление также расширяет область оптимизированных операций, включая обработку видео и аудио, обеспечивая более быстрые пути для обратных проходов свертки, дополнения (padding), дропаута и интерполяции, которые являются общими компонентами в конвейерах генеративных медиа.

Возможно, самое заметное практическое исправление для генеративных медиа — это управление памятью при декодировании видео. Ранее декодирование видео с использованием плиточного VAE от Wan2.2 могло довести использование памяти драйвера до астрономических 270 GiB. С PyTorch 2.15 этот пик памяти резко снижен примерно до 8 GiB, что делает генерацию видео высокого разрешения осуществимой на Mac потребительского класса. Кроме того, обновление устраняет критические ошибки в рабочих процессах редактирования изображений. В частности, кодировщик VAE Qwen-Image-2.1, который ранее портил изображения на MPS (как сообщалось в таких инструментах, как ComfyUI) из-за проблем с дополнениями (padding), теперь функционирует корректно. Цикл кодирование-декодирование теперь достигает PSNR 29,95 дБ, что соответствует производительности CPU, что является огромным улучшением по сравнению с предыдущими 10,06 дБ.

С точки зрения контроля разработчика, релиз предоставляет публичные потоки MPS и более надежное время событий, предоставляя разработчикам более детальный контроль над потоком выполнения их моделей. Архитектура фазы декодирования — которая включает как фазу предварительного заполнения (prefill), так и фазу декодирования — была оптимизирована путем прямой связи общей функции F.linear со специализированными ядрами GEMV, гарантируя, что общий вход декодирования с одной строкой использует самый быстрый доступный путь, что приводит к геометрическому приросту скорости 1,23× для различных форм слоев. Реализация grouped matmul является ярким примером этой оптимизации, гарантируя, что неравные группы токенов обрабатываются эффективно в одной нативной для GPU операции.

С точки зрения совместимости, пользователям необходимо убедиться, что они используют macOS 15 или более позднюю версию и Python 3.11 или более позднюю версию, чтобы воспользоваться этими функциями. Заглядывая вперед, команда уже анонсировала улучшения для PyTorch 2.16, который обещает полностью перенести механизмы внимания на Metal и продолжить миграцию операций MPSGraph в специализированные высокоскоростные пути Metal, обещая еще больший прирост производительности для декодирования LLM и общей работы моделей на оборудовании Apple. Таким образом, PyTorch 2.15 представляет собой фундаментальный сдвиг, превращая Mac в мощную, энергоэффективную и высокооптимизированную платформу для передовых рабочих нагрузок ИИ.

Почему это важно

  • —Значительно повышает возможности Mac для локального запуска сложных моделей ИИ (LLM, генерация видео), делая его конкурентоспособным по сравнению с выделенными GPU-рабочими станциями.
  • —Внедрение нативной поддержки FP8 резко улучшает энергоэффективность памяти, позволяя запускать более крупные модели на потребительском оборудовании.
  • —Значительный прирост производительности (до 6,5x) для продвинутых архитектур, таких как модели Mixture-of-Experts (MoE), которые являются основой современных LLM.

Ключевые факты

  • Модели MoE декодируют на 5–6,5× быстрее на M3 Ultra благодаря нативному групповому матричному умножению (grouped matmul).
  • Тензоры FP8 поддерживаются на MPS, сокращая требования к памяти вдвое по сравнению с BF16.
  • Потребление памяти для декодирования видео резко снижено с 270 GiB до 8 GiB.
  • Обновление устраняет критические ошибки повреждения изображений в кодировщиках VAE, обеспечивая надежные рабочие процессы редактирования изображений.
Читать первоисточник →

Полный текст — в первоисточнике. Здесь — краткое изложение и ключевые факты.

/ похожие материалы