Intel Sapphire Rapids ускоряет PyTorch Transformers: первая часть руководства
Intel выпустила первую часть руководства по ускорению трансформеров PyTorch на серверных процессорах Sapphire Rapids (4-го поколения Xeon). Материал опубликован в блоге Hugging Face и посвящен использованию аппаратных инструкций AMX (Advanced Matrix Extensions) и библиотеки Intel Extension for PyTor

Intel выпустила первую часть руководства по ускорению трансформеров PyTorch на серверных процессорах Sapphire Rapids (4-го поколения Xeon). Материал опубликован в блоге Hugging Face и посвящен использованию аппаратных инструкций AMX (Advanced Matrix Extensions) и библиотеки Intel Extension for PyTorch (IPEX). Эти оптимизации позволяют значительно повысить производительность моделей без потери точности, что особенно актуально для сценариев, где GPU недоступны или дороги.
Трансформеры стали основой современных NLP-моделей, но их вычислительная сложность остается высокой. Ускорение на CPU открывает новые возможности для эффективного использования существующей инфраструктуры, особенно в облачных и корпоративных средах. Первая часть руководства фокусируется на базовых техниках, а вторая часть, анонсированная в статье, будет посвящена продвинутым методам, включая квантизацию и работу с большими пакетами.
Как AMX и IPEX ускоряют трансформеры
Основной прирост производительности достигается за счет AMX — набора инструкций для матричных операций, впервые появившихся в Sapphire Rapids. AMX включает два ключевых компонента: Tile Matrix Multiply (TMUL) для умножения матриц и Tile Load/Store для эффективной загрузки данных. Эти инструкции позволяют выполнять операции с низкой точностью (INT8, BF16) на аппаратном уровне, что значительно ускоряет вычисления.
IPEX автоматически заменяет стандартные операции PyTorch на оптимизированные для AMX. Библиотека интегрируется с существующим кодом минимальными изменениями: достаточно импортировать IPEX и вызвать функцию оптимизации модели. Для инференса и обучения используются одни и те же оптимизации, что упрощает внедрение. В тестах на модели BERT с batch size 1 ускорение составило до 3 раз по сравнению с предыдущим поколением Xeon. Для моделей GPT-2 и T5 также получен значительный прирост, хотя точные цифры варьируются в зависимости от конфигурации.
Какие модели и сценарии выигрывают
Оптимизации работают для широкого спектра трансформеров, включая BERT, GPT-2, T5 и другие архитектуры. Они подходят как для инференса, так и для обучения, что делает их универсальными. Особенно заметен эффект в сценариях с малыми batch size, где накладные расходы на передачу данных минимальны. Для больших пакетов также есть прирост, но он может быть менее выраженным из-за ограничений памяти.
Разработчики NLP-моделей, инженеры машинного обучения и компании, использующие CPU для инференса или обучения трансформеров, получат наибольшую выгоду. Например, в облачных средах, где GPU дороги или недоступны, оптимизации позволяют запускать сложные модели на существующих серверах. Также это актуально для edge-устройств и сценариев с низкой задержкой, где GPU неэффективны.
Какие ограничения и неизвестные моменты
В статье анонсирована вторая часть, в которой будут рассмотрены продвинутые техники, включая квантизацию и работу с большими пакетами. Пока не указана точная совместимость с другими фреймворками, кроме PyTorch. Однако, учитывая, что IPEX поддерживает TensorFlow и ONNX, можно ожидать расширения. Также не раскрыты детали производительности для всех типов моделей и конфигураций оборудования.
Как начать использовать оптимизации
Код примеров доступен в репозитории Hugging Face Optimum Intel. Для начала работы достаточно установить Intel Extension for PyTorch и импортировать его в проект. Затем нужно вызвать функцию оптимизации модели, которая автоматически заменит операции на AMX-совместимые. Для инференса рекомендуется использовать режим torch.nograd() для дополнительного ускорения. Подробные инструкции приведены в блоге Hugging Face.
Что дальше: вторая часть руководства
Intel анонсировала вторую часть руководства, которая выйдет в ближайшее время. В ней будут рассмотрены продвинутые техники, включая квантизацию (INT8, INT4) и работу с большими пакетами. Ожидается, что эти методы позволят еще больше ускорить трансформеры, особенно на моделях с высокой вычислительной сложностью. Также, возможно, будут представлены бенчмарки для других фреймворков и сценариев.
Заключение
Первая часть руководства Intel по ускорению PyTorch Transformers на Sapphire Rapids демонстрирует значительный прирост производительности за счет AMX и IPEX. Оптимизации доступны уже сейчас и позволяют эффективно использовать CPU для инференса и обучения. Разработчикам стоит обратить внимание на этот подход, особенно если GPU недоступны или дороги. Следите за выходом второй части для получения еще более продвинутых техник.