FPGA научили ловить гипоксию в пульсе светодиодов — спайками
Пульсоксиметрия начинается с очень физического эксперимента: светодиоды по очереди зажигают ткань красным и инфракрасным светом, а фотодиод ловит крошечную модуляцию поглощения на каждом ударе сердца. Обычно из неё извлекают отношение каналов и получают число SpO2. В работе Drexel University этот временной след вместе с признаком оттенка кожи подают в сеть, где сигнал распространяется редкими импульсами, а пороговый нейрон копит заряд и «срабатывает» как цифровая модель мембраны.
Пульсовой сигнал попадает в спайковую топологию
Авторы реализовали такую гибридную spiking CNN–FC сеть в FPGA как реконфигурируемое ядро. Для задачи гипоксии используются три входа — Red PPG, IR PPG и Skin Tone, две свёрточные стадии, развёртка в 288 признаков и два полносвязных слоя 64→3. Геометрия свёрток, stride, число каналов, fixed-point разрядность и параметры LIF-нейронов настраиваются; параметры нейронов меняются через регистры уже во время работы. Число самих CNN- и FC-слоёв фиксируется при синтезе проекта.
В свёртке одно ядро весов обслуживает все пространственные позиции: для каждой пары входного и выходного каналов выделены память и MAC-ресурс. Коэффициенты K×K обходятся за K² тактов memclk, а все выходные позиции рассчитываются параллельно. Затем результаты пересекают границу тактовых доменов в spkclk, где LIF-логика обновляет мембранный потенциал и выдаёт спайки. Такая разрезка превращает нейроморфную метафору в вполне проверяемую микроархитектуру: память, умножители, CDC-синхронизаторы и пороговая арифметика видны в RTL.
Свёртка в памяти, нейрон в другом тактовом домене
На 16-битной конфигурации таблица результатов даёт среднюю точность 88.26% по пяти фолдам для трёх классов SpO2. Снижение разрядности до 12 бит оставляет 86.24%, до 8 бит — 78.62%: здесь квантизация уже заметно меняет решение сети. Набор мал: 12 участников контролируемого эксперимента UCSF Hypoxia Laboratory, где насыщение снижали примерно со 100% к 70%. MAX30101 оцифровывал каналы 660 и 880 нм с частотой 400 Гц; после усреднения 16 отсчётов поток уходил на MCU с частотой 25 Гц, а перед классификацией проходил отсев артефактов движения, контроль качества и полосовую фильтрацию 0.5–3.0 Гц.
Именно здесь красивая идея упирается в масштаб железа. Авторы приводят для SpO2-конфигурации на Virtex UltraScale+ при 100 кГц 674353 LUT, 2246 DSP, 313.5 BRAM и 1.455 Вт dynamic power; также заявлены 727.5 мкДж на инференс. Это post-implementation оценка, для которой не описаны плата, точки питания и методика измерения. Такой ускоритель нельзя выдавать за готовый постоянно работающий браслет: ваттный FPGA-ресурс находится совсем в другой энергетической лиге. Зато он позволяет менять форму вычислительного тракта без изготовления ASIC и показывает, какие именно узлы придётся ужать, если спайковую обработку PPG переносить в специализированный кремний.
Ватты FPGA против обещания edge-устройства
Есть и причины не превращать демонстрацию в медицинское заявление. В таблице указано 88.26%, тогда как текст раздела с результатами и заключение называют 85.8%. Описание границ трёх классов также расходится между разделами, а методика пяти subject-level фолдов раскрыта недостаточно для оценки обобщаемости на новых людей. Код ядра, тестбенчи, constraints и ноутбуки опубликованы под MIT-лицензией, однако сырых физиологических данных и полного клинического протокола в репозитории нет. Поэтому работа ценна прежде всего как открытый аппаратный эксперимент: пульсовой оптический сигнал уже можно прогонять через программируемую спайковую машину, но путь от этой машины до носимого медицинского прибора ещё требует отдельной инженерии и клинической проверки.