ExecuTorch получил поддержку CPU Arm Cortex-M для запуска PyTorch-моделей
Новый backend ExecuTorch позволяет запускать PyTorch-модели непосредственно на CPU Arm Cortex-M, используя ускорение CMSIS-NN. В тесте на Alif Ensemble E8 четыре модели MLPerf Tiny укладывались в 21,5 мс и использовали менее 90 KiB RAM.
PyTorch Foundation описала backend Cortex-M для ExecuTorch — инструмента развёртывания моделей PyTorch на устройствах с ограниченными ресурсами. Он позволяет запускать модели непосредственно на CPU Arm Cortex-M и использовать оптимизированные ядра Arm CMSIS-NN. Поддерживаются все три уровня возможностей Cortex-M: Scalar, DSP и MVE/Helium.
Раньше разработчикам, обучающим модели в PyTorch, для микроконтроллеров приходилось конвертировать их в форматы других фреймворков, поддерживать отдельные цепочки инструментов и разбираться с расхождениями численных результатов. Новый backend сохраняет экспорт, квантование и компиляцию в экосистеме ExecuTorch. Для систем с разнородными компонентами он также предоставляет путь выполнения на CPU наряду с делегированием на NPU Ethos-U.
В публикации приведены результаты на Alif Ensemble E8: команда протестировала четыре из пяти моделей набора MLPerf Tiny. Каждая модель выполнялась за 21,5 мс или быстрее и использовала менее 90 KiB оперативной памяти на одном ядре Cortex-M55. Это показатель конкретной тестовой платформы, а не универсальная гарантия для всех Cortex-M.
ExecuTorch рассчитан на заранее известную аппаратную конфигурацию. Компилятор заранее выбирает ядра, планирует память, упаковывает веса и удаляет ненужные операции. Базовый runtime занимает менее 20 KiB flash, а выборочная сборка подключает только операторы, необходимые конкретной модели.
Почему это важно
Поддержка снижает число преобразований между обучением и запуском модели на микроконтроллере. Для разработчиков это означает единую цепочку PyTorch—ExecuTorch для устройств, где ограничены память, размер прошивки и энергопотребление.
Источник: PyTorch Blog · По данным официальной публикации PyTorch Foundation.
