Ускорение ИИ: Новая векторная архитектура для микромасштабирования

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


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

Для векторных инструкций <span class="katex-eq" data-katex-display="false">Vmxdotp</span>, компоновка векторных регистров с размером блока <i>kk</i> обеспечивает выполнение <i>vl</i> независимых MX-DPA операций.
Для векторных инструкций Vmxdotp, компоновка векторных регистров с размером блока kk обеспечивает выполнение vl независимых MX-DPA операций.

Vmxdotp — расширение векторной ISA для RISC-V, обеспечивающее аппаратное ускорение операций скалярного произведения в формате микромасштабирования.

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

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

Присоединиться к каналу

Современные нейросетевые модели, несмотря на значительный прогресс, предъявляют всё более высокие требования к вычислительным ресурсам и энергоэффективности. В данной работе, посвященной разработке ‘VMXDOTP: A RISC-V Vector ISA Extension for Efficient Microscaling (MX) Format Acceleration’, предлагается расширение архитектуры RISC-V Vector для эффективной аппаратной реализации операций с форматами данных микромасштабирования (MX). Предложенное решение позволяет достичь значительного повышения производительности и энергоэффективности при выполнении матричных умножений с использованием низкоточных форматов, таких как MXFP8 и MXFP4. Способны ли подобные оптимизации стать ключевым фактором в развертывании сложных моделей искусственного интеллекта на периферийных устройствах и в системах с ограниченным энергопотреблением?


Точность как роскошь: Ограничения современных вычислений

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

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

Исследования в области снижения разрядности представления данных демонстрируют значительный потенциал для ускорения вычислений и уменьшения объема используемой памяти. Переход от традиционных 32-битных форматов с плавающей точкой к более компактным, например, 16- или 8-битным, позволяет существенно снизить энергопотребление и увеличить пропускную способность. Однако, такое упрощение неизбежно влечет за собой риск потери точности, особенно в задачах, требующих высокой детализации. Ученые активно разрабатывают новые алгоритмы и методы квантования, направленные на минимизацию этих потерь и обеспечение стабильной работы моделей машинного обучения даже при использовании низкоточных форматов. Ключевым направлением является разработка адаптивных стратегий, позволяющих динамически изменять разрядность в зависимости от конкретных требований задачи и характеристик данных, что позволяет достичь оптимального баланса между скоростью вычислений и точностью результатов.

Использование формата BF16 для накопления в ядрах матричного умножения MX позволяет повысить пропускную способность и энергоэффективность по сравнению с FP32.
Использование формата BF16 для накопления в ядрах матричного умножения MX позволяет повысить пропускную способность и энергоэффективность по сравнению с FP32.

Микромасштабирование: Новый подход к точности вычислений

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

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

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

Умножение матриц MX выполняется с использованием плиточных матриц <span class="katex-eq" data-katex-display="false">M_{	ext{tile}} 	imes P_{	ext{tile}}</span>, при этом масштабирующие матрицы <span class="katex-eq" data-katex-display="false">A_s</span> и <span class="katex-eq" data-katex-display="false">B_s</span> имеют уменьшенные внутренние размеры <span class="katex-eq" data-katex-display="false">N_{	ext{block}} = N/k</span>.
Умножение матриц MX выполняется с использованием плиточных матриц M_{ ext{tile}} imes P_{ ext{tile}}, при этом масштабирующие матрицы A_s и B_s имеют уменьшенные внутренние размеры N_{ ext{block}} = N/k.

Spatz: Открытый векторный процессор для низкоточных вычислений

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

Процессор Spatz использует L1-память в виде scratchpad для повышения энергоэффективности и снижения задержек доступа к данным. В отличие от кэш-памяти, scratchpad memory обеспечивает предсказуемое время доступа и позволяет разработчикам напрямую управлять размещением данных. Производство Spatz осуществляется по техпроцессу GlobalFoundries 12nm FinFET, что обеспечивает высокую плотность транзисторов и, как следствие, оптимальное соотношение производительности и энергопотребления. Использование 12nm FinFET также способствует уменьшению площади кристалла и снижению производственных затрат.

Процессор Spatz поддерживает расширения MiniFloat-NN и ExSdotp, что значительно расширяет его возможности для работы с различными низкоточными нагрузками. MiniFloat-NN — это формат чисел с плавающей точкой, оптимизированный для нейронных сетей, позволяющий снизить потребление энергии и увеличить скорость вычислений по сравнению со стандартными форматами. ExSdotp — это расширение, предназначенное для ускорения операций скалярного произведения, широко используемых в задачах машинного обучения и обработки сигналов. Поддержка этих расширений позволяет Spatz эффективно выполнять широкий спектр низкоточных вычислений, включая инференс нейронных сетей, обработку изображений и звука, и другие вычислительно-интенсивные задачи.

Архитектура Spatz использует расширение RISC-V Vector Extension (RVV), предоставляющее мощную основу для ускорения векторных операций. RVV определяет стандартный набор инструкций для выполнения операций над векторами данных, что позволяет Spatz эффективно обрабатывать параллельные вычисления. RVV поддерживает различные длины векторов и типы данных, обеспечивая гибкость и адаптируемость к различным рабочим нагрузкам. Использование RVV позволяет Spatz воспользоваться существующей экосистемой инструментов разработки и библиотек, оптимизированных для векторных вычислений, что упрощает процесс разработки и развертывания приложений.

Векторный процессор Spatz претерпел изменения в тракте данных (выделены красным), что позволило реализовать интеграцию <span class="katex-eq" data-katex-display="false">V_{mxdot}</span>.
Векторный процессор Spatz претерпел изменения в тракте данных (выделены красным), что позволило реализовать интеграцию V_{mxdot}.

Vmxdotp: Аппаратное ускорение скалярных произведений микромасштабирования

Vmxdotp представляет собой расширение архитектуры набора команд RISC-V Vector Extension, разработанное для аппаратной поддержки операций скалярного произведения MXFP8 и MXFP4. В отличие от программной эмуляции, Vmxdotp обеспечивает нативную реализацию этих вычислений, что позволяет напрямую использовать векторные регистры и специализированные блоки умножения-аккумулирования. Данный подход позволяет значительно повысить производительность и энергоэффективность при работе с матрицами низкой точности, что особенно актуально для задач машинного обучения и искусственного интеллекта. Реализация на аппаратном уровне позволяет избежать накладных расходов, связанных с программной эмуляцией, и обеспечивает более предсказуемую и стабильную производительность.

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

Инструкции Vmxdotp эффективно используют операцию скалярного произведения, поддерживая форматы FP32 и BF16 в сочетании с микромасштабированием для оптимизации производительности. При использовании Vmxdotp, матричное умножение с MXFP8 достигает пропускной способности в 125.0 GFLOPS и энергоэффективности в 843 GFLOPS/W. Такая реализация позволяет значительно повысить скорость вычислений и снизить энергопотребление при операциях с матрицами, особенно в задачах, требующих высокой точности и эффективности.

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

К энергоэффективному ускорению потока данных: Результаты и перспективы

Ускорители потоковой обработки данных, такие как VEGETA, демонстрируют значительное повышение эффективности благодаря интеграции микромасштабных форматов и специализированных инструкций, в частности Vmxdotp. Такой подход позволяет существенно сократить объемы перемещения данных и вычислительные затраты, что напрямую влияет на снижение энергопотребления и повышение производительности. Использование микромасштабных форматов позволяет более компактно представлять данные, а специализированные инструкции, такие как Vmxdotp, оптимизируют выполнение критически важных операций, обеспечивая более быстрое и энергоэффективное вычисление. Данная комбинация открывает новые возможности для развертывания сложных моделей машинного обучения на устройствах с ограниченными ресурсами, делая их более доступными и эффективными.

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

Сочетание специализированных инструкций и микромасштабных форматов данных открывает возможности для развертывания сложных моделей машинного обучения на устройствах с ограниченными ресурсами. В частности, матричное умножение MXFP4, реализованное с использованием Vmxdotp, демонстрирует впечатляющую производительность в 250.1 GFLOPS и энергоэффективность в 1632 GFLOPS/W. Такие показатели позволяют создавать эффективные алгоритмы искусственного интеллекта, способные работать непосредственно на мобильных устройствах, встроенных системах и других платформах, где энергопотребление и вычислительные мощности являются критическими факторами. Это значительно расширяет спектр применения машинного обучения, делая его доступным для более широкого круга устройств и задач.

Открытый исходный код платформы Spatz и модульная архитектура инструкции Vmxdotp создают благоприятную среду для развития инноваций и сотрудничества в научном сообществе. Предоставляя доступ к исходному коду, исследователи могут адаптировать и расширять функциональность ускорителей данных, разрабатывая специализированные решения для различных задач машинного обучения. Модульность Vmxdotp позволяет легко интегрировать новые оптимизации и инструкции, ускоряя процесс экспериментирования и внедрения передовых алгоритмов. Эта открытость способствует обмену знаниями и опытом, позволяя учёным со всего мира совместно работать над повышением энергоэффективности и производительности вычислительных систем, что, в свою очередь, стимулирует появление новых и усовершенствованных технологий в области искусственного интеллекта.

Анализ циклов VAU при выполнении матричного умножения (при <span class="katex-eq" data-katex-display="false">N=128</span>) показывает распределение времени, затрачиваемого на различные типы инструкций.
Анализ циклов VAU при выполнении матричного умножения (при N=128) показывает распределение времени, затрачиваемого на различные типы инструкций.

Исследование, представленное в статье, демонстрирует стремление к лаконичности и эффективности в архитектуре вычислительных систем. Авторы фокусируются на оптимизации операций с форматами Microscaling (MX) посредством специализированного аппаратного ускорения. Это отражает принцип, который некогда выразила Ада Лавлейс: «Предмет математики не должен изучаться только ради практического применения, но и ради той красоты и логики, которые он содержит». Подобно тому, как Лавлейс видела потенциал вычислительных машин за пределами простых вычислений, данная работа демонстрирует, что истинная мощность заключается не в количестве операций, а в их элегантности и оптимальности. Удаление избыточности и концентрация на ключевых операциях, таких как скалярное произведение, позволяют достичь значительного повышения производительности и энергоэффективности.

Куда двигаться дальше?

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

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

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


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

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