Оптимизация графических вычислений: новый подход к ускорению нейросетей

Автор: Денис Аветисян


Исследователи представили FORGE-UGC — компилятор универсальных графов, призванный значительно повысить производительность и энергоэффективность моделей машинного обучения на процессорах Intel Neural Processing Unit.

🚀 Квантовые новости

Подключайся к потоку квантовых мемов, теорий и откровений из параллельной вселенной.
Только сингулярные инсайты — никакой скуки.

Присоединиться к каналу
Архитектура FORGE-UGC представляет собой четырехэтапный процесс, начинающийся с захвата графа FX посредством viatorch.export с привязкой разрешения весов, за которым следуют шесть компонуемых оптимизационных проходов - удаление мертвого кода, общее субвыражение, свертка констант, объединение внимания, объединение операторов и оптимизация макета - с опциональной автоматической настройкой, после чего происходит понижение до NPUIR с типизированными инструкциями, виртуальными регистрами и размещением на устройстве, завершаясь анализом живучести, линейным распределением буферов, планированием инструкций и генерацией кода, результатом которой является скомпилированный исполнитель CompiledNPUExecutor.
Архитектура FORGE-UGC представляет собой четырехэтапный процесс, начинающийся с захвата графа FX посредством viatorch.export с привязкой разрешения весов, за которым следуют шесть компонуемых оптимизационных проходов — удаление мертвого кода, общее субвыражение, свертка констант, объединение внимания, объединение операторов и оптимизация макета — с опциональной автоматической настройкой, после чего происходит понижение до NPUIR с типизированными инструкциями, виртуальными регистрами и размещением на устройстве, завершаясь анализом живучести, линейным распределением буферов, планированием инструкций и генерацией кода, результатом которой является скомпилированный исполнитель CompiledNPUExecutor.

FORGE-UGC использует оптимизацию FX и механизм графов регистров для достижения более быстрой компиляции и снижения задержки при выводе.

Существующие фреймворки для компиляции графов вычислений часто характеризуются непрозрачностью и ограниченными возможностями оптимизации, что приводит к высоким затратам на компиляцию и снижению производительности. В данной работе представлен Forge-UGC — FX-оптимизирующий и регистрово-графовый движок для универсальной компиляции графов, предназначенный для развертывания трансформерных моделей на гетерогенных ускорителях, включая Intel AI Boost NPU. Предложенный подход демонстрирует значительное ускорение компиляции, снижение задержки и энергопотребления по сравнению с OpenVINO и ONNX Runtime. Какие перспективы открываются для дальнейшей оптимизации и адаптации Forge-UGC к новым аппаратным платформам и архитектурам моделей?


Вычислительная Бремя Трансформеров: Ключевое Ограничение Современного Развертывания

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

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

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

FORGE-UGC обеспечивает компиляцию GPT-2 (125M) примерно за 1000 мс, что в 6.9 и 7.3 раза быстрее, чем у OpenVINO и ONNX Runtime соответственно.
FORGE-UGC обеспечивает компиляцию GPT-2 (125M) примерно за 1000 мс, что в 6.9 и 7.3 раза быстрее, чем у OpenVINO и ONNX Runtime соответственно.

FORGE-UGC: Графоцентричное Решение для Оптимизации

FORGE-UGC в качестве основного входного сигнала использует граф PyTorch FX, что позволяет напрямую манипулировать и оптимизировать структуры моделей. Граф FX представляет собой программное представление модели, позволяющее анализировать и преобразовывать операции перед выполнением. Использование графа FX обеспечивает возможность детального контроля над моделью, включая изменение порядка операций, слияние операторов и удаление избыточного кода. Такой подход позволяет компилятору эффективно адаптировать модель к целевой архитектуре, в данном случае — Intel NPU, и значительно повысить ее производительность.

Компилятор FORGE-UGC применяет последовательность проходов оптимизации графа (Graph Optimization Passes) для снижения вычислительной сложности и повышения производительности моделей, ориентируясь на архитектуру Intel NPU. Эти проходы включают в себя анализ графа вычислений, выявление избыточных операций и применение преобразований, направленных на упрощение структуры графа и повышение эффективности его выполнения на целевом аппаратном обеспечении. Оптимизации направлены на минимизацию накладных расходов, связанных с передачей данных и выполнением отдельных операций, что позволяет добиться более высокой пропускной способности и снизить задержки при работе с моделями на Intel NPU.

Ключевые методы оптимизации, такие как объединение операций (Operator Fusion) и объединение слоев внимания (Attention Fusion), направлены на снижение накладных расходов и повышение пропускной способности вычислений. Объединение операций заключается в замене последовательности элементарных операций одной составной операцией, что снижает количество вызовов функций и перемещения данных. В частности, Attention Fusion объединяет несколько операций, связанных с механизмом внимания, в единую операцию, что позволяет значительно ускорить обработку последовательностей и снизить потребление памяти, особенно в моделях, интенсивно использующих внимание, например, в задачах обработки естественного языка.

Оптимизация модели GPT-2 (125M) показала, что слияние слоев внимания обеспечивает наибольшее снижение количества узлов графа (на 14.6%), за которым следует слияние операторов (на 3.5%), что в сумме привело к уменьшению количества узлов с 403 до 333 (на 17.4%).
Оптимизация модели GPT-2 (125M) показала, что слияние слоев внимания обеспечивает наибольшее снижение количества узлов графа (на 14.6%), за которым следует слияние операторов (на 3.5%), что в сумме привело к уменьшению количества узлов с 403 до 333 (на 17.4%).

Количественная Оценка Приобретенных Преимуществ

В ходе тестирования установлено, что FORGE-UGC демонстрирует снижение времени компиляции по сравнению с существующими решениями. Для модели Llama-3.1-8B время компиляции составило 6.7 секунды. Данный результат свидетельствует о значительной оптимизации процесса подготовки модели к выполнению и позволяет сократить время развертывания и начала инференса.

Оптимизация выделения буферов памяти и применение передовых алгоритмов планирования инструкций позволили добиться значительного снижения задержки инференса. При тестировании на модели Llama-3.1-8B, задержка инференса снизилась на 35.7% по сравнению с результатами, полученными с использованием OpenVINO и ONNX Runtime. Данное улучшение достигается за счет минимизации операций по копированию данных и эффективного использования ресурсов вычислительного устройства, что обеспечивает более быструю обработку запросов.

Модели, оптимизированные с использованием FORGE-UGC, демонстрируют снижение энергопотребления на 40,9% по сравнению с OpenVINO при использовании модели Llama-3.1-8B. Данное снижение делает их особенно подходящими для развертывания на периферийных устройствах и в средах с ограниченными ресурсами, где энергоэффективность является критически важным фактором. Сокращение энергопотребления позволяет увеличить время автономной работы устройств и снизить общие эксплуатационные расходы.

Для обеспечения достоверности и измеримости достигнутых улучшений производительности, система FORGE-UGC подвергается строгой оценке с использованием метрик, таких как коэффициент усиления слияния (Fusion Gain Ratio) и индекс эффективности компиляции. Для модели Llama-3.1-8B был получен коэффициент усиления слияния, равный 67.9. Кроме того, зафиксировано снижение максимального объема используемой буферной памяти на 47.8% и уменьшение количества переходов между устройствами на 64.8% для той же модели, что свидетельствует о значительной оптимизации использования ресурсов и повышении эффективности выполнения.

При компиляции GPT-2 (125M) основную часть времени занимает захват функциональности (FX Capture) - 773.5 мс (78.4%), в то время как все шесть проходов оптимизации выполняются за 208 мс (21.1%), а на понижение IR, выделение буферов и планирование уходит всего 8 мс (0.8%).
При компиляции GPT-2 (125M) основную часть времени занимает захват функциональности (FX Capture) — 773.5 мс (78.4%), в то время как все шесть проходов оптимизации выполняются за 208 мс (21.1%), а на понижение IR, выделение буферов и планирование уходит всего 8 мс (0.8%).

Перспективы Адаптивной Компиляции: Эволюция Интеллектуальной Оптимизации

Разрабатывается самообучающийся компилятор, расширяющий возможности платформы FORGE-UGC. В его основе лежит автоматическая оптимизация проходов компиляции, осуществляемая на основе телеметрии, собираемой во время выполнения программы. Компилятор анализирует данные о производительности и ресурсах, используемых моделью, и динамически корректирует последовательность оптимизаций, чтобы добиться максимальной эффективности. Такой подход позволяет адаптироваться к изменяющимся условиям эксплуатации, включая различные аппаратные платформы и типы рабочих нагрузок, обеспечивая постоянную высокую производительность без необходимости ручной настройки или перекомпиляции.

Планируется интеграция с Triton Kernel Integration, что предоставит разработчикам возможность создавать собственные ядра для нейронных процессоров (NPU). Этот подход позволяет существенно повысить производительность, поскольку заказные ядра могут быть оптимизированы под конкретные модели и задачи, выходя за рамки возможностей универсальных оптимизаций. Разработчики получат полный контроль над исполнением критически важных участков кода, что откроет путь к дальнейшей настройке и тонкой оптимизации производительности, особенно в задачах, требующих высокой вычислительной мощности и минимальной задержки. Интеграция с Triton позволит эффективно развертывать и выполнять эти ядра, обеспечивая максимальную отдачу от аппаратных ресурсов.

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

Представленная работа демонстрирует стремление к математической чистоте в области компиляции графов, что находит отражение в оптимизации производительности и энергоэффективности. Разработчики FORGE-UGC, подобно математикам, ищут доказательство корректности и эффективности алгоритмов, а не просто подтверждение работоспособности на тестовых примерах. Как однажды заметил Давид Гильберт: «В математике нет спектра. Есть только доказательства». Эта фраза прекрасно иллюстрирует подход, заложенный в основу FORGE-UGC — стремление к созданию надёжной и предсказуемой системы компиляции графов для гетерогенных вычислений, где каждый этап оптимизации должен быть обоснован и верифицирован, что особенно важно при развёртывании моделей на специализированных процессорах, таких как Intel NPU.

Куда Далее?

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

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

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


Оригинал статьи: https://arxiv.org/pdf/2604.16498.pdf

Связаться с автором: https://www.linkedin.com/in/avetisyan/

Смотрите также:

2026-04-21 19:44