Помните мою колонку TinyML эффективен, опубликованную пару недель назад? Это представило концепцию развертывания технологий искусственного интеллекта (ИИ) и машинного обучения (МО) на небольших процессорах с низким энергопотреблением, таких как микроконтроллеры, которые расположены на краю Интернета — точке, где Интернет встречается и приветствует реальный мир. .

Что ж, после этой колонки кажется, что редко проходит день без того, чтобы что-то, связанное с TinyML, не проходило перед моими глазами, например, тот факт, что Любой разработчик встраиваемых систем может создавать системы AI/ML, фактически не имея знать AI/MI. Более того, эти системы будут обучаться в полевых условиях (в отличие от обучения в облаке), после чего они смогут выявлять закономерности, обнаруживать аномалии и прогнозировать проблемы и результаты.

В рамках всего этого я в настоящее время поглощаю книгу TinyML: машинное обучение с TensorFlow Lite на Arduino и микроконтроллерах сверхмалого энергопотребления Пита Уордена и Дэниела Ситунаяке (я буду писать обзор этого тома в будущей колонке).

Происходит так много захватывающих вещей, что мы избалованы выбором, но одно недавнее событие действительно заставило меня сесть и обратить внимание…

Интересный маленький процессор AI/ML

Пару недель назад я общался с людьми из XMOS, когда они готовились представить свой новый процессор xcore.ai на недавнем саммите tinyML (12–13 февраля 2020 г.). По сути, это уже третье поколение их техники. Первое поколение было небольшим лакомым кусочком, ориентированным на управление и функциональность ввода-вывода (сейчас вы поймете, что я имею в виду); второе поколение добавило огромное количество функций цифровой обработки сигналов (DSP), которые облегчают такие приложения, как возможность прослушивать звуковое пространство с несколькими говорящими людьми и разбирать его на отдельные голоса в режиме реального времени; а третий добавляет шведский стол возможностей, связанных с AI/ML.

Самый простой способ разобраться в xcore.ai — посмотреть на его блок-схему, как показано выше. Вверху мы видим до 128 контактов ввода-вывода и аппаратных портов, которые можно запрограммировать в программном обеспечении для реализации широкого спектра протоколов связи и периферийных функций. Внизу мы видим две аппаратные функции PHY (физический уровень) для реализации интерфейсов USB и MIPI, если это необходимо.

По бокам две плитки, которые соединены скоростным переключателем. Каждая плитка может похвастаться RISC-процессором с тесно связанной SRAM и блоком векторной обработки целых чисел и чисел с плавающей запятой. Выполнение распределено между восемью логическими ядрами — т. е. параллельными аппаратными потоками, — каждое из которых может запускать программные задачи, выполняющие ввод-вывод, управление, DSP и обработку ИИ, где каждая задача может взаимодействовать с другими задачами.

Когда вы создаете приложение (устройство полностью программируется на C, а специальные функции для DSP, AI и ML доступны через оптимизированные библиотеки C), одно или несколько логических ядер могут использоваться для реализации интерфейсных функций (например, I2C, SPI). , USB, MIPI), еще одна группа логических ядер может использоваться для выполнения обработки данных микрофонов и датчиков в дальней зоне, а еще одна группа ядер может использоваться для реализации модели нейронной сети для выполнения задач AI/ML.

При цене всего около 1 доллара я легко вижу, как чипы xcore.ai используются практически во всем: от выключателей света до электрических тостеров, детекторов дыма, интеллектуальных уличных фонарей и… как обычно, мы ограничены только нашим воображением.