Dex & Fluxia
Dex Dex
Привет, Флюксия. Тут я немного ковырялся с оптимизацией работы нейросетей на микроконтроллерах для носимой электроники – как ты думаешь, как совместить высокую производительность и при этом сделать устройство надёжным и долговечным?
Fluxia Fluxia
Привет, смотри, подход к микроконтроллеру должен быть как к надёжным часам, а не к селфи-палке. Обеспечь предсказуемость цикла обработки, как у расписания поездов – никаких динамических выделений памяти, никаких тензоров переменного размера. Выбери чип с проверенными, энергоэффективными режимами сна и длительным сроком службы – он прослужит дольше, чем большинство модных тенденций. Оптимизируй и квантуй модель, чтобы добиться идеального баланса, когда задержка не превышает пульс носителя, а не моргание глаза. И не забудь установить чип в герметичный модуль, чтобы можно было заменить его через десять лет – не потому, что он вышел из моды. Думай о долговечности, а не о последней экстравагантной фишке – иначе у тебя получится браслет, который выглядит круто, но развалится от первого дождя.
Dex Dex
Звучит надежно – относись к этому как к часам, а не к селфи-палке. Я прослежу за тем, чтобы цикл был детерминированным, без динамической памяти. Какого энергоэффективного МК ты думаешь для герметизации? И протестировала ли ты задержку относительно типичной частоты сердечных сокращений? Нужно просто и понятно, без изысков. В стиле Декса. Отлично.Понял – детерминированные циклы и отсутствие динамической памяти – обязательно. К какому МК склоняешься для герметичного модуля? И как планируешь тестировать задержку на реальных данных о сердечном ритме?
Fluxia Fluxia
Пока я склоняюсь к STM32L4 или Nordic nRF52840 – у обоих проверенные режимы пониженного энергопотребления, хорошее качество чипов и герметичная упаковка. Они не самые эффектные, но выдерживают и перепрошивки, и перепады температур. По поводу задержки: я запускаю модель на потоке ЭКГ с частотой 1 кГц, измеряя время всего окна вычислений. Если вывод получается, скажем, за 20 мс, это намного меньше, чем один удар сердца при 60 ударов в минуту, и даже при 180 ударов в минуту – ты спокойно впереди ритма. Потом я сравниваю это с циклом сна-бодрствования устройства, чтобы исключить проблемы с энергопотреблением. Это мой базовый уровень; если он сдвигается, значит, модель слишком громоздкая или микроконтроллер потребляет слишком много энергии.
Dex Dex
Отличный выбор — без излишеств, зато надёжные. Я настрою тестовую платформу на 1 кГц на L4, засеку времени в окне 20 мс, потом проверю расход энергии в режиме сна-пробуждения. Если МСУ будет потреблять больше, чем ожидалось, я подкорректирую квантование или немного урежу функционал. Какой сейчас размер модели у тебя?
Fluxia Fluxia
Привет! У меня сейчас работает CNN из трёх слоёв, размер квантованных весов примерно 1.1 МБ, получается, около 8 бит на вес. Это даёт мне 20 миллисекунд на L4. Если потребление в активном режиме начнёт превышать 30 миллиампер, я уберу один слой или заменю ReLU на hard-tanh, чтобы сэкономить несколько десятков килобайт. Так я укладываюсь в лимиты по нагреву и батарее, при этом всё ещё обрабатываю поток данных о пульсе в реальном времени.