До останніх часів засоби штучного інтелекту вимагали складного енергоємного обладнання у вигляді серверних ферм або коштовних програмованих вентильних матриць типу FPGA. Тому важливим є вирішення проблеми збільшення обчислювальної потужності із зменшенням при цьому енергії споживання та витрат на такі технології. Слід відзначити, що сьогодні додатки штучного інтелекту починають кардинально змінюватися завдяки новим потужним технологіям, які базуються на нейронних мережах. У порівнянні з традиційними обчисленнями на основі вбудованого програмного забезпечення апаратне прискорення, яке забезпечують, наприклад, згорткові нейронні мережі, відкриває нову еру продуктивності обчислень завдяки притаманній цим мережам швидкості та обчислювальній потужності.
Дозволяючи сенсорним вузлам приймати власні рішення, ці технології значно знижують необхідну швидкість передачі даних у мережах типу 5G. Це дає змогу використовувати нові інформаційні технології, які раніше не були забезпечені відповідними апаратними засобами. З’явилися, наприклад, можливості на основі згорткових нейронних мереж будувати «розумні» детектори диму чи вогню у віддалених місцевостях або аналізувати дані у реальному часі про стан аграрних культур чи стан навколишнього середовища безпосередньо на рівні сенсорів і сенсорних вузлів, аналізувати концентрацію різних речовин у харчових напоях тощо. Відповідні апаратні засоби для реалізації технології згорткових нейронних мереж вже починають з’являтися на світовому ринку електронних компонентів. Сімейство нових мікроконтролерів із вбудованим штучним інтелектом досліджується у цій статті.
Мікроконтролер із штучним інтелектом на основі нейромережевого прискорювача надмалої потужності MAX78000. Це мікроконтролер із вбудованим штучним інтелектом. Він забезпечує
роботу нейронних мереж із наднизьким енергоспоживанням для пристроїв з обмеженими обчислювальними ресурсами або для засобів Інтернету речей. Вбудовані вузли штучного інтелекту включають такі функціональні можливості, як виявлення та класифікацію об’єктів, обробку аудіосигналів, класифікацію звуку, шумозаглушення, розпізнавання обличчя, обробку часових рядів даних, наприклад, для аналізу частоти серцевих скорочень, мультисенсорний аналіз даних, прогнозне технічне обслуговування складних технічних об’єктів і т.і.
На рис.1 наведено структурну схему мікроконтролера з плаваючою комою MAX78000 з ядром Arm® Cortex® -M4F, який працює на частоті до 100 МГц. Ця версія з сімейства мікроконтролерів MAX7800х містить флеш-пам’ять на 512 КБ і SRAM пам’ять на 128 КБ. Мікроконтролер має кілька зовнішніх інтерфейсів, таких як I2C, SPI і UART, а також I2S для підтримки аудіододатків. Крім того, мікро- контролер містить вбудоване ядро RISC-V з частотою 60 МГц, яке виконує попередню обробку даних, отриманих від сенсорів, для прискорювача штучно- го інтелекту, тому центральне ядро Arm може пере- бувати в режимі глибокого сну протягом цього часу.
У разі потреби за отриманим результатом можна запустити центральне ядро процесора Arm через ре- жим переривання, і він передасть дані сенсора по бездротовій мережі або проінформує користувача.
Вузол апаратного прискорення для виконання логічних висновків згорткових нейронних мереж є відмінною ознакою мікроконтролерів серії
MAX7800x, що відрізняє їх від мікроконтролерів із традиційною архітектурою. Апаратний прискорювач може підтримувати повну архітектуру загорткових нейронних мереж із усіма необхідними параметра- ми (ваги та зміщення). Прискорювач містить 64 паралельних процесори та вбудовану пам’ять на 442 КБ для зберігання параметрів і на 896 КБ для вхідних даних. Оскільки модель мережі і параметри зберігаються в пам’яті SRAM, їх можна регулювати за допомогою мікропрограми, а мережу можна адаптувати в режимі реального часу. Залежно від того, чи використовуються в моделі 1-, 2-, 4- або 8-розрядні ваги, цієї пам’яті може бути достатньо для 3,5 мільйонів параметрів. Оскільки можливості пам’яті є невід’ємною частиною прискорювача, параметри не потрібно отримувати через структуру шин мікроконтролера з кожною наступною математичною операцією. Ця процедура є енергоємною і викликає досить значні затримки. Прискорювач нейронної мережі може підтримувати 32 або 64 рівні залежно від функції об’єднання. Програмований розмір вводу/виводу зображення становить до 1024×1024 пік- селів для кожного шару.
Апаратна реалізація загорткової нейронної мережі: порівняння енергоспоживання та швидкості отримання висновків. Висновок мережі – це складне обчислювальне завдання, яке містить ліній- ні рівняння в матричній формі. Під час отримання логічного висновку на основі вбудованого програмного забезпечення споживається багато енергії та часу, оскільки команди, необхідні для обчислення, разом із пов’язаними даними параметрів, потрібно отримати із пам’яті, перш ніж можна буде записати проміжні результати. У табл. 1 представлено порівняння швидкості отримання логічного висновку і споживання енергії у нейронній мережі з використанням трьох різних рішень. Цей приклад моделі було розроблено з використанням набору MNIST, що являє собою навчальний набір для розпізнавання рукописних цифр і класифікує цифри та літери із візуальних вхідних даних для того, щоб отримати точний вихідний результат. Для визначення різниці між споживанням енергії та швидкістю отримання результату було виміряне час отримання висновку, необхідний для кожного типу процесора.

Рис. 1. Структурна схема мікроконтролера MAX78000
У першому випадку процесор Arm Cortex-M4F, інтегрований у мікроконтролер MAX32630, який працює на частоті 96 МГц, використовувався для обчислення висновку. У другому випадку для обробки об- числень використовувався апаратний прискорювач згорткової електронної мережі у складі мікроконтролера MAX78000. Швидкість отримання логічного висновку, тобто час між представленням візуальних даних на вході мережі та виведенням результату, в 400 разів менша при використанні мікроконтролера з апаратним прискорювачем MAX78000. Крім того, енергія яка необхідна для отримання висновку, в 1100 разів нижча. У третьому порівнянні мережа MNIST була оптимізована для мінімального енергоспоживання на отримання одного висновку. Точність результату при цьому падає з 99,6% до 95,6%.
Однак мережа працює набагато швидше, вимагаючи лише 0,36 мс на отримання одного висновку, при цьому для отримання висновку енергоспоживання зменшено до 1,1 мкВт. Дані табл. 1 ілюструють високу потужність апаратно прискорених обчислень. Обчислення з апаратним прискоренням є потужним інструментом для додатків, які мають певні обмеження в енергоспоживанні. Мікроконтролер MAX78000 забезпечує обробку даних на рівні сенсорного вузла без потреби у потужному джерелі живлення або при тривалому часі отримання висновків без можливості заміни чи підзарядки джерела живлення.
Приклад використання мікроконтролера MAX78000. Задача полягає у розробці камери з автономним джерелом живлення, яка виявляє, коли домашня тварина, наприклад, кіт знаходиться в полі зору сенсора зображення. У цьому випадку мікро- контролер забезпечує доступ кота до будинку. На рис. 2 наведено функціональну схему такого при- строю. Ядро RISC-V вмикає сенсор зображення через задані проміжки часу, і дані зображення завантажуються в згорткову нейронну мережу. Якщо ймовірність розпізнавання кота перевищує попередньо визначений поріг, двері для кота відчиняються автоматично, після чого система повертається в режим очікування.

Рис. 2. Функціональна схема розумних воріт для домашніх тварин
Засоби розробки та програмування. Процес розробки додатків можна розділити на такі етапи: Етап1: Визначення завдання для штучного інтелекту, навчання та квантування мережі. (Під квантуванням нейронної мережі розуміємо процес зменшення точності ваг, зміщень і активацій таким чином, щоб вони потребували менший об’єм пам’яті).
Етап 2: Розробка програмного забезпечення для мікроконтролера Arm Cortex-M4F у складі згорткової нейронної мережі, включення у мережу параметрів, згенерованих на Етапі 1, наприклад, на мові C/C++, а також тестування створеної програми для мережі.
Таблиця 1. Час та енергія для отримання висновку загортковою нейронною мережею за трьома різними сценаріями із використанням набору даних MNIST для розпізнавання рукописних цифр
| Тип процесора та принцип реалізації мережі | Швидкість отримання висновку, мс | Енергія споживання на отримання висновку, мкВт |
| І.Мікроконтролер МАХ32630, мережа ММЗТ (програмна прошивка) | 574 | 22887 |
| 2. Мікроконтролер МАХ78000, мережа ММЗТ (апаратна реалізація) | 1.42 | 20.7 |
| 3. Мікроконтролер МАХ78000, мережа ММЗТ (апаратна реалізація), яка оптимізована для низького енергоспоживання | 0,36 | 1.1 |
Перший етап розробки включає моделювання, навчання та оцінку моделей штучного інтелекту. На цьому етапі використовуються такі інструментальні засоби, як PyTorch і TensorFlow. Репозиторій GitHub містить усі файли проєкту та історію переглядів кожного файлу. У репозитарії є можливість обговорювати та керувати роботою проєкту. Він надає вичерпні ресурси, щоб допомогти користувачам спланувати свій шлях у створенні та навчанні нейронної мережі штучного інтелекту за допомогою середовища розробки PyTorch, при цьому враховуються апаратні характеристики мікроконтролера MAX78000. У репозиторій включено кілька простих мереж штучного інтелекту та програм, таких, наприклад, як розпізнавання обличчя (Face ID).
На рис. 3 наведено типовий процес (алгоритм) розробки штучного інтелекту в середовищі PyTorch.

Рис. 3. Алгоритм розробки штучного інтелекту
Спочатку моделюється мережа. Слід зазначити, що не всі мікроконтролери сімейства MAX7800x мають апаратне забезпечення, що підтримує всі маніпуляції з даними, які доступні в середовищі PyTorch. З цієї причини файл ai8x.py, наданий компанією Analog Devices, спочатку має бути включений до проєкту. Цей файл містить модулі та оператори PyTorch, необхідні для використання у мікроконтролері MAX78000. На основі цього налаштування мережу можна побудувати, а потім навчити, оцінити та квантувати за допомогою даних навчання. Результатом цього кроку є файл контрольної точки, який містить вхідні дані для остаточного процесу синтезу. На цьому останньому етапі процесу проєктування мережа її параметри перетворюються у форму, яка придатна для роботи апаратного прискорювача згорткової нейронної мережі. Слід зазначити, що мережеве навчання можна виконувати за допомогою будь- якого ПК, ноутбука, сервера тощо. Однак без підтримки відеокарти CUDA це може зайняти багато часу – навіть для невеликих мереж це може потребувати від декількох днів до декількох тижнів.
На другому етапі процесу розробки мережі створюється програмне забезпечення з механізмом за- пису даних у прискорювач мікроконтролера і зчитування результатів. Файли, створені на першому етапі, інтегруються в проект, на приклад, на мові C/C++ за допомогою директив #include. Інструментальні засоби, такі як Eclipse IDE і GNU Toolchain, також використовуються у середовищі розробки для мікроконтролера. Компанія Analog Devices надає спеціальний набір для розробки програмного забезпечення (Maxim Micros SDK (Windows)) який виконує функції інсталятора і містить усі необхідні компоненти та конфігурації. Набір для розробки програмного забезпечення також містить драйвери периферійних пристроїв, а також приклади та інструкції для полегшення процесу розробки програм.
Після того як проєкт скомпільовано та зв’язано без будь-яких помилок, його можна перевірити та оцінити за допомогою спеціальних засобів. Для цього компанія Analog Devices розробила дві апаратні платформи. На рис. 4 показана плата MAX78000EVKIT, а на рис. 5 – плата MAX78000FTHR.

Рис. 4. Набір MAX78000EVKIT

Рис. 5. Набір MAX78000FTHR.
Кожна з них містить камеру VGA та мікрофон.
ВИСНОВКИ
Раніше засоби штучного інтелекту вимагали значного енергоспоживання та коштовного складного обладнання у вигляді серверних ферм або з реалізацією на ПЛІС типу FPGA. Зараз із появою мікроконтролерів сімейства MAX7800х, які містять спеціальний прискорювач згорткової нейронної мережі, задачі штучного інтелекту можуть розв’язувати комп’ютерні прилади та засоби різного призначення, працюючі при цьому тривалий час від автономного джерела живлення. Все це робить засоби штучного інтелекту доступними і розширює можливості для створення нових ефективних додатків, які раніш будувалися на потужних комп’ютерах та були обмежені у широкому використанні. Вони вже зараз знаходять застосування у БПЛА різного призначення, дистанційних медичних приладах, цифровому землеробстві, розумних домах та апартаментах і т.і.