Улучшение речи FPGA Квантование и разреженность
arXiv eess.AS

Малобитное хранение и разреженное выполнение потокового улучшителя речи на FPGA

ArXiv:2610.35144

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

Метод. Причинная Conv-FSENet с примерно 0,66 млн весов оценивает спектральную маску в девяти TCN-блоках. Для Kria KV260 при 100 МГц реализован один общий вычислитель, упакованная лента весов переменной разрядности, кольцевое состояние свёрток и общий переквантователь. Групповой lasso создаёт нулевые выходные каналы; после 50-й эпохи их маска фиксируется, чтобы стабилизировать обучение и расписание. Проверяется побитовое совпадение промежуточной арифметики, C-модели и выходов платы. STFT, sigmoid и обратное преобразование остаются на Cortex-A53.

Результаты. SKIP-PLAIN исключает 47,3% свёрточных MAC и при четырёх вычислительных линиях обрабатывает кадр за 1,03 мс с динамической энергией 33,4 мкДж и PESQ 2,78. Плотный UNIFORM-6 требует 1,77 мс, 64,5 мкДж и даёт PESQ 2,64. Переход от восьми к шести битам снижает динамическую мощность на 27%, но время меняется меньше чем на 5%. Обычный групповой lasso здесь лучше взвешенного по стоимости тактов: последний даёт 1,09 мс и PESQ 2,69.

Ограничения. Опыты ограничены VoiceBank-DEMAND, одной платой и конкретным разделяемым трактом; вывод не переносится автоматически на GPU или полностью пространственную FPGA-схему. Динамическая энергия вычислена как активная мощность минус простой, а не полная энергия устройства. Простой платы составляет около 3,12 Вт, поэтому указанная добавочная энергия меньше 0,2% общего расхода при реальном времени. Нулевой просмотр вперёд сети не отменяет окна STFT 32 мс; другой опубликованный DEN16 быстрее по первому отсчёту, хотя использует больше ресурсов.

Фишка из статьи. Таблица II меняет только число MAC-линий одного и того же разреженного решения. Выходы побитово одинаковы, так что это чистый аппаратный компромисс, а не смена качества модели.

MAC-линииВремя кадра, мсДобавочная мощность, мВтЭнергия кадра, мкДжDSP-блоки
13,6326,194,98
41,0332,433,421
80,6843,829,937
16Не достигнут интервал запуска 1 тактНе измеренаНе измерена79 при отдельном синтезе

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

Источник. Оригинальное название: Realizing Low-Precision Storage and Sparse Execution in a Folded FPGA Speech Enhancer. arXiv:2610.35144; полный текст PDF.

Оригинальная статья на arXiv