Software & Компьютерная инженерия
Как алгоритмы машинного обучения интегрированы в архитектуры Dsp-процессоров
Table of Contents
Цифровые процессоры сигналов (DSP) уже давно являются рабочими лошадками обработки сигналов в реальном времени, питая все, от телекоммуникаций и аудиокодеков до радаров и биомедицинских устройств. С взрывным ростом машинного обучения (ML), существует растущая потребность в запуске выводов и даже обучении на периферийных устройствах, где задержка, мощность и стоимость жестко ограничены. Интеграция алгоритмов ML в архитектуры DSP - это не просто постепенное обновление - это требует переосмысления основной философии дизайна процессора, который первоначально был оптимизирован для детерминированной, повторяющейся арифметики. В этой статье исследуется, как современные архитектуры DSP развиваются, чтобы охватить гибкость и вычислительные требования машинного обучения, охватывающие фундаментальные проблемы, стратегии интеграции, реальные реализации и будущие направления.
Основы архитектуры DSP процессоров
Классический процессор DSP построен на трех основных принципах: операции с высокой пропускной способностью многократного накопления (MAC), предсказуемые шаблоны доступа к памяти и минимальная задержка для потоковых данных. Традиционные архитектуры используют модель памяти Гарварда или модифицированного Гарварда, отдельные шины инструкций и данных и несколько исполнительных блоков, которые могут выполнять MAC в одном тактовом цикле. Эти функции делают DSP чрезвычайно эффективными для алгоритмов, таких как фильтры с конечным импульсным откликом (FIR), быстрые преобразования Фурье (FFT) и адаптивные фильтры.
Ключевые архитектурные элементы включают:
- МАС-единицы, предназначенные для одновременного умножения и накопления, часто трубопроводируются для поддержания одного результата за цикл.
- Циркулярная буферизация для эффективной обработки линии задержки в фильтрации.
- Оборудование для нулевой накладной петли , чтобы избежать задержек трубопровода во время повторяющегося выполнения ядра.
- Арифметика с фиксированной точкой с широкими битами защиты для предотвращения переполнения, потому что многие сигналы реального мира оцифрованы с ограниченной точностью.
Исторически эти процессоры не были предназначены для обработки нерегулярного потока управления и зависящего от данных ветвления, обычного в моделях машинного обучения. Нейронные сети, особенно глубокие сверточные и повторяющиеся архитектуры, вводят плотные матрично-векторные умножения, нелинейные функции активации и значительный трафик памяти для весов и активаций - профиль рабочей нагрузки, который резко отличается от традиционных задач DSP.
Проблемы интеграции машинного обучения в DSP
Преодоление разрыва между детерминированной обработкой сигналов и машинным обучением на основе данных представляет собой несколько фундаментальных проблем:
Вычислительная несоответствия
Большинство тренингов и выводов ML основаны на арифметике с плавающей точкой (FP32 или FP16) для численной стабильности и динамического диапазона. Классические DSP оптимизированы для операций с целым числом с фиксированной точкой; выполнение MAC с плавающей точкой на таком оборудовании влечет за собой серьезное наказание в области, мощности и количестве циклов. Даже когда DSP поддерживает плавающую точку, пропускная способность часто на порядок ниже, чем MAC с фиксированной точкой. Снижение точности посредством квантования (например, INT8, бинарные нейронные сети) является обычным обходным путем, но оно вводит потери точности и требует тщательной калибровки.
Пропускная способность памяти и иерархия
Модели ML содержат миллионы параметров, которые необходимо извлекать из памяти неоднократно. Типичная локальная память DSP (скретчпад или кэш L1) рассчитана на коэффициенты фильтра и несколько окон данных, а не на тензоры веса глубокой нейронной сети. Получаемые в результате межчиповые DRAM-доступы потребляют на порядки больше энергии, чем операции на чипе. Кроме того, шаблон доступа к памяти для извилин и умножений матриц не ориентирован на поток так же, как фильтр FIR; стратегии наклона и повторного использования данных становятся критическими, но многим DSP не хватает аппаратной поддержки гибкой многомерной адресации.
Контрольный поток и нерегулярность
Нейронные сетевые слои широко различаются по размерам, типам нелинейности и потокам данных (например, остаточные соединения, пропускные соединения, объединение). Традиционные DSP превосходят в тесных циклах с фиксированными счетами итерации; ветвящиеся или зависящие от данных петли вызывают смыв трубопроводов и отменяют преимущество аппаратного обеспечения с нулевым накладным циклом. Реализация функций активации (ReLU, сигмоид, тан) и слои объединения эффективно требуют либо специального оборудования, либо программного обеспечения, которое может обрабатывать условное выполнение без сбоя производительности.
Задержка и ограничения мощности
Многие приложения реального времени — голосовые помощники, активная шумоподавка, автономная обработка датчиков — накладывают строгие бюджеты задержки (микросекунды до нескольких миллисекунд) и ограничения мощности, которые исключают решения GPU общего назначения или FPGA. DSP часто выбираются для их маломощных, детерминированных временных рамок, но добавление ускорителя ML не должно скомпрометировать эти свойства. Задача состоит в том, чтобы интегрировать возможности ML без введения джиттера или превышения мощности теплового дизайна SoC.
Стратегии интеграции
Чтобы преодолеть эти проблемы, как разработчики чипов, так и разработчики программного обеспечения разработали ряд стратегий, которые можно разделить на три широкие категории: аппаратное ускорение, оптимизация программного обеспечения и гибридные архитектуры.
Ускорение аппаратного обеспечения
Добавление выделенных блоков ускорения ML в ядро DSP или рядом с ним является наиболее прямым подходом.
- Единицы обработки векторов (VPU), которые могут выполнять операции с одноинструкционными множественными данными (SIMD) на широких регистрах, повышая пропускную способность для операций с использованием элементов, типичных для слоев нейронных сетей. Многие современные ядра DSP, такие как серия Cadence Tensilica ConnX, включают настраиваемые SIMD-провода до 512 бит.
- Нейронные сетевые ускорители (NPU) тесно связаны с логикой памяти и управления DSP. Это закаленные двигатели, оптимизированные для сверточных ядер, часто с систолическими массивами или деревьями умножения матриц, которые могут поддерживать много MAC за цикл. Например, Qualcomm Hexagon DSP, используемый в платформах Snapdragon, включает в себя «Hexagon Vector eXtensions» (HVX) и позже Hexagon Tensor Accelerator (HTA) для разгрузки рабочих нагрузок ML.
- Специализированные функциональные блоки для общих операций ML, таких как таблицы поиска функций активации, аппроксимация softmax или нормализация локального ответа.
- Улучшения системы памяти , такие как многобанковские локальные воспоминания, аппаратные префектеры данных для черепичного доступа и логика декодирования сжатия веса, которая декомпрессирует квантованные модели на лету.
Наглядным примером является ядро CEVA-XB12, которое масштабируется до 128 МАС на цикл на двигатель и включает в себя выделенный ускоритель нейронной сети. Он может обрабатывать как традиционную обработку сигналов, так и вывод ML с использованием одной и той же инструментальной цепи, снижая сложность разработки.
Оптимизация программного обеспечения
Не каждая система может позволить себе новый чип. Для существующих DSP сложные программные методы позволяют эффективно выполнять ML:
- Модель квантования и обрезки. Преобразование весов FP32 в INT8 (или даже бинарный/троичный) уменьшает пропускную способность памяти и позволяет использовать MAC-блоки с фиксированной точкой. Обрезка удаляет избыточные соединения, уменьшая размер модели и количество вычислений. Такие инструменты, как TensorFlow Lite для микроконтроллеров и ONNX Runtime, имеют бэкэнды, которые могут нацеливаться на DSP-специфические инструкции.
- Формирование ядра и преобразование петли.] Ручно или автоматически сплавление нескольких слоев (например, свертка + нормализация партии + ReLU) в единый, оптимизированный цикл уменьшает кругооборот памяти. Наклон петли, развёртывание и программное обеспечение трубопроводирования используются для максимизации повторного использования данных в небольших локальных воспоминаниях.
- Автовекторизация на основе компилятора.] Сборники инструментов DSP теперь включают компиляторы ML-аware, которые отображают операции тензора в инструкции SIMD и автоматически вставляют передачи DMA для перекрывания движения данных. Например, компилятор TI C7000 C6x может генерировать код, который эффективно использует сопроцессор вектора с плавающей запятой.
- Раноразмерные планировщики, которые динамически распределяют работу между DSP, CPU и любым доступным ускорителем, соблюдая латентность и бюджеты мощности.
Оптимизация программного обеспечения сама по себе не может сократить разрыв в производительности для тяжелых моделей, но в сочетании с умеренной аппаратной поддержкой она часто достигает приемлемой производительности в реальном времени для краевых приложений.
Гибридные архитектуры
Все чаще разработчики SoC переходят от одного монолитного DSP к гетерогенным кластерам, которые объединяют процессор общего назначения, DSP и один или несколько ускорителей ML. В этой модели:
- Процессор CPU обрабатывает высокоуровневое управление, загрузку модели и задачи предварительной/пост-обработки, которые включают сложную логику или внешний I/O.
- DSP управляет обработкой потокового сигнала (например, фронтальной обработкой датчика, извлечением признаков) и запускает оптимизированные ядра, которые не подходят для ускорителя ML.
- Ускоритель ML (который сам по себе может быть NPU на основе DSP) выполняет тяжелые тензорные операции с высокой энергоэффективностью.
Ярким примером является серия NXP i.MX RT, которая объединяет ядро Arm Cortex-M с Cadence Tensilica HiFi DSP и блоком нейронной обработки (NPU). DSP обрабатывает аудио трубопроводы, в то время как NPU запускает модели распознавания ключевых слов и голосовых команд. Такие архитектуры также извлекают выгоду из совместной памяти и когерентных межсоединений, что позволяет обмениваться данными с низкой задержкой между доменами.
Интегрированные DSP-машинные системы обучения в реальном мире
Описанные выше теоретические стратегии были реализованы в коммерческих продуктах в нескольких областях. Ниже приведены примечательные примеры, иллюстрирующие диапазон уровней интеграции.
Qualcomm Hexagon DSP (Snapdragon)
Qualcomm Hexagon DSP превратился из чистого сигнального процессора в ключевой компонент движка AI компании. Начиная с Snapdragon 820, Hexagon 680 включал Hexagon Vector eXtensions (HVX) — SIMD-блоки, способные выполнять 1024-битные операции за цикл. В более поздних версиях добавлен выделенный Tensor Accelerator (HTA), который может выполнять умножение матрицы напрямую. Hexagon DSP выполняет не только традиционные ядра DSP (например, постобработка камеры ISP, аудиоэффекты), но также запускает нейронные сети для компьютерного зрения в реальном времени и понимания естественного языка. SNPE Qualcomm (Snapdragon Neural Processing Engine) SDK позволяет разработчикам загружать модели в DSP с поддержкой квантования.
Cadence Tensilica ConnX / HiFi DSP
Cadence предлагает ряд настраиваемых ядер DSP, которые могут быть адаптированы для рабочих нагрузок ML. ConnX BBE (Baseband Engine) включает в себя модули SIMD с плавающей и фиксированной точками, в то время как HiFi 5 фокусируются на аудио/речи и теперь включают опцию «Ускоритель CNN». Эти ядра используются в носимых устройствах, слуховых аппаратах и интеллектуальных динамиках. Например, HiFi-5 DSP в слуховом аппарате может запускать небольшую сверточную нейронную сеть для классификации акустических сцен при одновременном выполнении стандартной фильтрации шума — все в пределах нескольких милливатт мощности.
CEVA-XB12 и SensPro2
XB12 от CEVA - это ядро DSP, специально разработанное для компьютерного зрения и рабочих нагрузок ИИ. Он интегрирует движок 128-MAC, выделенный ускоритель нейронной сети и широкий SIMD-блок. Новая архитектура SensPro2 расширяет это, добавляя гибкий поток данных, который может обрабатывать как сверточные, так и трансформаторные модели, наряду с традиционной обработкой на основе радара / LiDAR. Экосистема CEVA включает в себя компилятор, профилировщик и библиотеки, которые автоматически отображают модели TensorFlow Lite на аппаратное обеспечение.
TI C7000 C6x с процессором C7x
Texas Instruments предлагает серию C7000, которая сочетает в себе C66x DSP с векторным сопроцессором C7x. C7x - это полностью программируемый векторный двигатель, оптимизированный для матричных операций, с поддержкой как плавающих точек, так и целых типов данных. Он может выполнять до 64 MAC за цикл. TI's Deep Learning (TIDL) Framework компилирует модели для этой архитектуры, нацеливаясь на такие приложения, как промышленный осмотр, робототехника и автономные датчики вождения.
Будущие тенденции в интеграции DSP-ML
Интеграция ML в DSP-архитектуры все еще быстро развивается. Несколько новых тенденций обещают сделать комбинацию еще более мощной и доступной.
Вычислительные системы In-Memory и обработка околопамяти
Стена памяти является основным узким местом для вывода ML. Новые подходы перемещают вычисления ближе к элементам хранения. Некоторые прототипы DSP включают в себя вычисления в SRAM или основанные на мемристоре аналоговые MAC-массивы в локальных банках памяти. Это значительно снижает энергию перемещения данных и может выполнять операции MAC в самой памяти. В то время как на ранней стадии такие методы могут быть интегрированы в подсистемы памяти DSP для ускорения свертки без изменения базовой архитектуры.
Расширения RISC-V для DSP и ML
RISC-V набирает обороты в качестве гибкого ISA для пользовательских процессоров. P-расширение (упакованный SIMD) и V-расширение (вектор)] могут использоваться для создания DSP-подобных возможностей в ядрах с открытым исходным кодом. Кроме того, сообщество работает над Расширением матрицы , направленным на рабочие нагрузки ML. Будущие DSP, построенные на RISC-V, могут структурно отличаться от традиционных проприетарных архитектур — они будут полностью программируемыми, но будут включать в себя настраиваемые функциональные блоки ML, все работающие на открытом наборе инструкций.
Низкая точность и гибридная арифметика
Исследования показывают, что многие модели хорошо работают с INT4 или даже бинарной арифметикой. Будущие DSP, вероятно, будут поддерживать несколько режимов точности, возможно, со смешанными форматами блоков с плавающей точкой. Аппаратные поддержки для стохастической округления и блоковой плавающей точки (обмен экспонентами по группе значений) могут сохранять точность при сокращении объема памяти. Некоторые академические проекты предлагают DSP, где MAC-блоки могут быть динамически перенастроены для обработки 8-битных, 4-битных или 2-битных операций, что позволяет одному и тому же кремнию запускать как высокоточные устаревшие алгоритмы, так и низкоточные модели ML.
Автоматизированное аппаратное обеспечение-программное обеспечение Co-Design
По мере того, как модели и аппаратные средства становятся более взаимосвязанными, инструменты, которые автоматически настраивают архитектуру DSP для заданной рабочей нагрузки ML, станут необходимыми. Такие компании, как Esperanto Technologies и SambaNova продемонстрировали пользовательские чипы, оптимизированные самим ML. Для DSP это может означать создание набора инструкций на заказ, иерархии памяти и конфигурации ускорителя для определенного набора задач обработки сигналов и нейронной сети. Такой совместный дизайн размывает грань между «DSP» и «нейронным процессором».
On-Device Обучение и адаптация
Помимо вывода, растет интерес к tinyML, который поддерживает ограниченное обучение на устройстве или тонкую настройку (например, обучение передаче). Это требует не только ускорения переднего прохода, но и способности вычислять градиенты и выполнять обновления веса — операции, которые редко реализуются в текущих DSP. Будущие архитектуры могут включать в себя аппаратное обеспечение для обратного распространения или, по крайней мере, гибкий векторный блок, способный выполнять необходимые внешние обновления продукта и элемента без вмешательства процессора. Это позволит DSP адаптироваться к изменяющимся средам (например, персонализированное шумоподавление, адаптивное эхо-отмена) с использованием моделей ML, которые развиваются в течение срока службы устройства.
Заключение
Интеграция алгоритмов машинного обучения в архитектуры процессоров DSP является многогранной задачей, которая охватывает арифметическую точность, пропускную способность памяти, управление потоком управления и энергоэффективность. Благодаря сочетанию аппаратного ускорения (единицы SIMD, специализированные NPU, специализированные системы памяти), оптимизации программного обеспечения (квантизация, слияние ядра, автовекторизация) и гибридных конструкций SoC, отраслевые игроки продемонстрировали, что эффективный вывод ML в реальном времени достижим на устройствах, которые также обрабатывают традиционные задачи обработки сигналов. Примеры от Qualcomm, Cadence, CEVA и Texas Instruments показывают, что линия между DSP и ускорителем AI исчезает. Будущие инновации в вычислениях в памяти, открытые архитектуры, такие как RISC-V, смешанная точная арифметика и обучение на устройстве будут дополнительно встраивать возможности ML в DSP, позволяя новое поколение интеллектуальных, маломощных периферийных устройств, которые могут чувствовать, обрабатывать и адаптироваться в реальном времени.
Для дальнейшего чтения рассмотрите следующие внешние ресурсы: