Ускорение глубокого обучения на Dsp процессорах: возможности и ограничения

Глубокое обучение трансформировало отрасли, начиная от компьютерного зрения до распознавания речи, но вычислительные требования современных нейронных сетей продолжают опережать обычные процессоры. Для решения этой проблемы аппаратные ускорители — графические процессоры, FPGA, ASIC и DSP — вводятся в эксплуатацию. Среди них процессоры цифровых сигналов (DSP) занимают уникальную нишу: они предлагают высокую энергоэффективность и детерминированную обработку в реальном времени, что делает их привлекательными для встроенных и краевых приложений. Однако DSP не являются заменой для графических процессоров, и их пригодность для глубокого обучения в значительной степени зависит от рабочей нагрузки и требований к производительности. Эта статья обеспечивает всесторонний анализ возможностей и ограничений ускорения глубокого обучения на процессорах DSP, охватывающих архитектуру, реальные варианты использования и компромиссы, которые должны учитывать системные дизайнеры.

Понимание DSP процессоров

Цифровые процессоры сигналов - это специализированные микропроцессоры, оптимизированные для повторяющихся, математически интенсивных операций, в частности, многократных накоплений (MAC), которые образуют основу обработки сигналов. В отличие от процессоров общего назначения, DSP используют модифицированные гарвардские архитектуры, которые позволяют одновременно выполнять инструкции и данные, уменьшая задержки трубопроводов. Ключевые архитектурные особенности включают:

DSP развились далеко за пределы своего происхождения в аудио и телекоммуникациях. Современные ядра DSP (например, Texas Instruments C66x, Qualcomm Hexagon, CEVA-XM) интегрируют блоки с плавающей запятой, большие кэши и даже специализированные сопроцессоры нейронных сетей. Тем не менее, их основная сила остается детерминированной, с низкой задержкой выполнения потока образцов данных.

Случай для DSP в глубоком обучении

Энергоэффективность и энергетические бюджеты

В сценариях встроенных и IoT первостепенное значение имеют ограничения по тепловой и энергетической мощности. DSP обычно достигают 10-100× лучшей энергоэффективности (в TOPS / W) по сравнению с процессорами общего назначения и часто лучше, чем мобильные GPU для вывода при меньших размерах пакетов. Это связано с их эффективными блоками MAC, минимальным контролем над расходами и возможностью работать на более низких тактовых частотах, все еще соблюдая крайние сроки в реальном времени. Например, DSP с фиксированной точкой, выполняющий вывод INT8, может обрабатывать небольшой сверточный слой при рисовании только 50 мВт, тогда как GPU может потребовать несколько ватт для одной и той же задачи.

Детерминированная обработка в реальном времени

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

Преимущества затрат и интеграции

DSP часто интегрируются в системы на чипах (SoC) вместе с микроконтроллерами, RF-интерфейсами или процессорами приложений. Эта интеграция снижает затраты на материалы, площадь печатной платы и сложность распределения мощности. Один чип, такой как Qualcomm Snapdragon, содержит несколько ядер DSP Hexagon вместе с CPU и GPU; использование DSP для всегда включенного обнаружения вейк-слов освобождает процессор приложения, продлевая срок службы батареи. Кроме того, DSP являются товарными частями с десятилетиями производственной зрелости, что делает их намного дешевле, чем пользовательские AI ASIC или высокопроизводительные GPU.

Настройка и оптимизация

Вендоры DSP предоставляют обширные библиотеки программного обеспечения, оптимизированные для общих операций (FIR-фильтры, FFT, умножение матриц). Для глубокого обучения они могут быть дополнены нейронными сетевыми ядрами , которые используют параллелизм VLIW и SIMD. Например, библиотека CMSIS-NN для микроконтроллеров ARM Cortex-M (которые часто включают инструкции DSP) обеспечивает оптимизированную свертку, объединение и функции активации, которые могут ускорить небольшую модель на 4-5 × по сравнению с чистым C. Некоторые современные DSP также включают специализированные ускорители нейронных сетей - гибридный подход, который сочетает общую программируемость DSP с проводными двигателями свертки.

Технические соображения для вывода на основе DSP

Матричные операции и извилины

Ядром вывода глубокого обучения является свертка или полностью подключенный слой. MAC-массив DSP может эффективно обрабатывать эти операции, если данные подходят на чипе. Поскольку DSP обычно имеют небольшие локальные воспоминания (от десятков до сотен килобайт)] (десятки до сотен килобайт), дизайнеры должны тщательно раскручивать плитку и буферные веса и активации. Например, свертка 3×3 с 8-битными входами может быть развернута в последовательность MAC, которые используют SIMD, но большие карты функций требуют нескольких пропусков. ширина полосы памяти между SRAM на чипе и внешней DRAM становится ограничивающим фактором - особенно для глубинных извилин, которые включают много небольших ядер.

Квантизация и точность

Большинство DSP изначально поддерживают арифметику с фиксированной точкой (целое или дробное) с настраиваемыми длинами слов: 8, 16 или 32 бита. Многие также поддерживают плавающую точку (IEEE 754 с одноточностью и некоторую полуточность). Для глубокого обучения 8-битное целое число квантования является приятным местом, потому что оно вдвое меньше памяти по сравнению с FP32 и удваивает пропускную способность на SIMD-блоках. DSP с аппаратной поддержкой продуктов INT8 точек (например, с помощью инструкции SMLAD в расширениях ARM Cortex-M DSP) может достигать скорости около 1-цикла на MAC. Однако обучение с учетом квантования может быть необходимо для поддержания точности, а некоторые DSP не имеют прямой поддержки асимметричного квантования или масштабирования по каналам, требуя обходных программ.

Поддержка Framework и Toolchain

В то время как TensorFlow, PyTorch и ONNX Runtime ориентированы на GPU, несколько встроенных фреймворков нацелены на DSP: TensorFlow Lite для микроконтроллеров (TFLM), Arm CMSIS-NN, TensorFlow Lite с XNNPACK backend (для DSP на мобильных устройствах) и проприетарные SDK-серверы (например, процессор TI SDK RTOS, Qualcomm Hexagon NN). Эти фреймворки обрабатывают преобразование модели, квантование и делегирование опций ядрам DSP. Однако набор поддерживаемых операторов часто ограничен (например, отсутствие слияния BatchNorm, отсутствие расширенного изменения размера) и пользовательские опции могут потребовать ручного сборочного ядра. Усилия по разработке портирования модели из GPU в DSP нетривиальны и должны быть сопоставлены с преимуществами.

Ограничения и вызовы

Ограниченная параллель

GPU достигают массивного параллелизма через тысячи простых ядер, исполняющихся в SIMT (Single Instruction, Multiple Thread) моде. DSP, напротив, обычно имеют от 2 до 8 скалярных или SIMD-единиц. Даже при использовании VLIW пиковые теоретические MAC за цикл часто на два порядка меньше, чем современный GPU. Например, высокопроизводительный DSP, такой как CEVA-XM6, достигает 1,2 ТОП при 1,5 ГГц, в то время как мобильный GPU, такой как Adreno 740, может превышать 10 ТОП. Это означает, что DSP подходят только для моделей с несколькими сотнями тысяч параметров, которые требуют низких размеров партии (batch=1). Крупномасштабное обучение просто недостижимо.

Ограничения пропускной способности памяти

DSP обычно полагаются на общую внешнюю память (DDR3/4, LPDDR), доступную через одну шину, с ограниченным кэшем на чипе. ширина полосы пропускания к внешней памяти часто составляет 4-8 ГБ/с, в то время как GPU использует широкие шины (например, 512-бит с HBM, обеспечивающим более 1 ТБ/с). Для моделей с большим весом DSP тратит большую часть своего времени на извлечение параметров, а не на вычисления - классический сценарий, связанный с памятью. Tiling может смягчить это, но сверточный слой с большими ядрами (например, 7×7) или полностью подключенные слои с тысячами активаций будут сильно отставать.

Рамочные и экосистемные пробелы

Основные фреймворки глубокого обучения имеют первоклассную поддержку GPU с автоматической дифференциацией, распределенным обучением и обширными библиотеками операторов. Для DSP цепочка инструментов часто является Собственной, фрагментированной и менее зрелой. Разработчикам может потребоваться писать пользовательские драйверы, обрабатывать задержку прерывания и вручную управлять копиями данных между общей памятью и локальной памятью DSP. Более того, инструменты отладки и профилирования для DSP отстают от инструментов для CPU и GPU. Это увеличивает время разработки и ограничивает переносимость моделей в разных семействах DSP.

Точность и численная точность

Хотя квантование хорошо работает для многих моделей, некоторые архитектуры (например, трансформаторы на основе внимания) чувствительны к пониженной точности. DSP с только фиксированной арифметикой могут требовать смешанных точечных рабочих процессов или резервного копирования в плавающую точку на сопроцессоре. Кроме того, режимы насыщения и округления отличаются в разных вариантах DSP, вызывая результаты, которые расходятся с ссылкой на GPU. Инженеры должны проверять численную эквивалентность и, возможно, переобучить модели с методами, учитывающими квантование. Для критически важных приложений (например, восприятие автомобиля) это добавляет накладные расходы на сертификацию.

Используйте случаи и демонстрации

Несмотря на ограничения, DSP доказали свою эффективность в нескольких четко определенных задачах:

  • Споттинг ключевых слов (KWS) — небольшая сверточная или повторяющаяся модель (50-500K параметры), непрерывно работающая на DSP, может обнаруживать бодрствующие слова, такие как «Hey Siri» на скорости менее 10 мВт, с задержкой менее 100 мс.
  • Обнаружение человека на микроконтроллерах — Используя MobileNet v1 (0,25 множителя глубины) с квантованием INT8, Cortex-M7 с расширениями DSP может обнаружить человека на изображении 96×96 в серой шкале при 3-5 FPS при потреблении 30 мВт.
  • Обнаружение аномалий для промышленных датчиков — DSP могут обрабатывать вибрационные или акустические сигналы через небольшой автокодер для обнаружения неисправностей машины в режиме реального времени, разгружая основной ЦП.
  • Сенсорное слияние в дронах — объединение ИДУ, камеры и радиолокационных данных с мультимодальной моделью, достаточно маленькой, чтобы вписаться в память DSP на чипе, что позволяет избежать препятствий с низкой задержкой.

Эти примеры имеют общие черты: небольшой размер модели, размер партии 1, низкая точность приемлема и детерминированная задержка критическая.

Сравнение с другими ускорителями

Выбор между DSP, GPU, FPGA или ASIC зависит от целевого приложения. Ниже приведены краткие компромиссы:

  • GPU: Наиболее высокий пик TOPS, поддерживает обучение и большой вывод партии, но высокая мощность (10-300+ Вт) и стоимость. Не подходит для устройств с батарейным питанием или с тепловым ограничением.
  • FPGA: Высокая энергоэффективность и реконфигурируемый путь передачи данных, но сложность разработки значительно возрастает. Лучше для низкозадерживаемой произвольной точности и потоковой топологии.
  • ASIC (например, NPU): Предлагает максимальную производительность на ватт, с матричными двигателями фиксированной функции, но потерю программируемости общего назначения.
  • DSP: Хороший баланс программируемости, малой мощности и возможностей реального времени, но ограниченный параллелизм и пропускная способность памяти. Лучше всего для небольших, всегда включенных моделей во встроенных системах.
  • CPU: Наиболее гибкая, но худшая эффективность для глубокого обучения.Однако современные процессоры с AVX-512/VNNI могут приблизиться к DSP-подобной производительности для вывода INT8.

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

Текущие исследования и будущие направления

Эволюционирует аппаратно-программная экосистема глубокого обучения на основе DSP. Ключевые тенденции включают:

  • Гетерогенные вычислительные архитектуры, где DSP тесно интегрированы с небольшими ускорителями нейронных сетей. Например, серия TDA4x от TI сочетает в себе DSP, ускоритель CNN (C7x) и ускоритель глубокого обучения (C66x) для покрытия различных рабочих нагрузок.
  • Улучшенные наборы инструментов с автоматической квантованием, разделением моделей и генерацией кода для DSP. Google TensorFlow Lite для микроконтроллеров теперь нацелен на ARM Cortex-M с инструкциями DSP, и предпринимаются усилия по поддержке векторных расширений RISC-V.
  • Разрезное ускорение модели — DSP с поддержкой нулевого пропуска могут уменьшить вычисления для обрезанных моделей, но для этого требуются пользовательские наборы команд или сопроцессоры, активная область в таких компаниях, как Synopsys и Cadence.
  • Низкая точность за пределами INT8 — исследуется суббайтное квантование (4-бит, 2-бит) и бинаризация; некоторые DSP могут изначально упаковывать несколько 4-битных значений в одно 32-битное слово, достигая более высокой пропускной способности для чрезвычайно квантованных сетей.

Поскольку краевой ИИ продолжает требовать как низкой задержки, так и низкой мощности, DSP, особенно дополненные легкими нейронными вычислительными блоками, вероятно, останутся жизнеспособным вариантом для длинного хвоста задач вывода в реальном времени.

Заключение

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