Малобитное хранение и разреженное выполнение потокового улучшителя речи на FPGA
Работа показывает, почему число битовых операций плохо предсказывает ускорение на 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-блоки |
|---|---|---|---|---|
| 1 | 3,63 | 26,1 | 94,9 | 8 |
| 4 | 1,03 | 32,4 | 33,4 | 21 |
| 8 | 0,68 | 43,8 | 29,9 | 37 |
| 16 | Не достигнут интервал запуска 1 такт | Не измерена | Не измерена | 79 при отдельном синтезе |
Как это читать: больше параллельных линий повышает мощность, но до восьми уменьшает энергию за кадр за счёт сокращения времени работы. На шестнадцати ограничителем становится декодирование упакованных весов и логика сдвигов: линейного масштабирования уже нет. Это полезное предупреждение против оценки ускорителя только по разрядности весов или проценту нулей.
Источник. Оригинальное название: Realizing Low-Precision Storage and Sparse Execution in a Folded FPGA Speech Enhancer. arXiv:2610.35144; полный текст PDF.