цифровая обработка сигналов IIR-фильтры DDSP реальное время
arXiv eess.SP

Fluxion: дифференцируемая обработка звука от обучения на GPU до локального исполнения в реальном времени

ArXiv:2610.24622

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

Метод. Среда на Rust поддерживает каскады секций второго порядка, FIR и эффекты с линиями задержки. Для рекурсивных фильтров написаны аналитические сопряжённые вычисления, поэтому автоматическое дифференцирование не разворачивает каждый отсчёт в огромный граф. Потоковый тракт использует заранее выделенные буферы. Устойчивость проверяется по коэффициентам уже после преобразования в float32, а устройство повторяет проверку при загрузке. Это проверка динамики фильтра, не криптографическая подлинность файла. Общие петли обратной связи пока не поддерживаются обоими основными исполнителями.

Результаты. На i9-10900KF и RTX 3070 резидентный GPU-режим достигает 2990 млн отсчётов/с против 1580 у TorchFX и 1468 у torchaudio для точной рекурсии. Однако CPU на том же GPU-нагрузочном наборе даёт 2662 млн: дополнительный выигрыш GPU лишь около 12%. На Raspberry Pi 5 цепочка каскада 16-го порядка и реверберации обрабатывает 10 с за 46 мс при 11 МБ памяти. На рабочей станции p99 вычисления 128-отсчётного блока при глубине десять составляет 6,8 мкс при звуковом бюджете около 2,7 мс.

Ограничения. Блоки замерены без ожидания реального времени и специального приоритета: это стоимость вычисления, а не полная задержка с планировщиком ОС. CUDA проверена, другие GPU-среды нет. Обучение полностью изменяемых многосекционных каскадов остаётся на CPU; его шаг медленнее torchaudio и GRAFX. Приближённый частотный FLAMO нельзя напрямую ранжировать с точной рекурсией, а сертификация устойчивости не доказывает отсутствие всех звуковых артефактов.

Фишка из статьи. Один и тот же GPU-фильтр радикально меняет привлекательность в зависимости от владения памятью. Для нагрузки примерно 67 млн отсчётов статья отдельно раскрывает стоимость передачи.

РежимВремяГраница измерения
Данные уже на GPUоколо 23 мсВычислительное ядро
Однократный вызов, собственный входной буфер106 мсПередачи и вычисление
Заимствованный вход, как в Python-интерфейсе285 мсДополнительная копия на CPU

Как это читать: рекордная скорость резидентных тензоров не является задержкой обычного вызова из Python. Для однократной обработки здесь выгоднее CPU. Разделение исполнителей оказывается не только организационным решением: оно позволяет не переносить GPU-накладные расходы в короткий звуковой обработчик.

Источник. Оригинальное название: Fluxion: A Differentiable DSP Runtime from Training GPU to Real-Time Edge. arXiv:2610.24622; полный текст PDF.

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