Человеческие возможности, связанные с анализом визуальных, аудио и других сенсорных данных, а также быстрой реакцией на внешние раздражители оказываются очень ограниченными. В этой области на помощь приходят микроэлектронные устройства и ЭВМ. Для анализа сложных данных, таких как, например, видео, разрабатываются методы и подходы с элементами искусственного интеллекта и нейронных сетей. Наиболее универсальным вариантом для таких реализаций являются мощные серверы со специальными графическими или тензорными ускорителями, на которые передается вся сенсорная информация с датчиков. Обработка происходит «в облаке», а принятие решений происходит по результатам этой обработки. Однако очень часто такой подход оказывается неприменим, потому что он сопряжен с необходимостью передачи больших объемов данных, а время на передачу и обработку оказывается неприемлемо высоким.
Ответом на данную проблему стало возникновение нового направления, связанного с так называемыми граничными вычислениями. Это направление подразумевает распределенную обработку данных, где непосредственные вычисления происходят на границе среды – рядом с сенсорами и датчиками. В частности, в случае видео обработки – это означает что непосредственно с камерой может быть расположен нейрочип, который выполняет первичную обработку данных по обнаружению или классификации и отправляет данные на сервер только в случае необходимости. Другим вариантом может быть сокращение потока данных за счет передачи только координат объектов, вплоть до полной автономности устройства за счёт принятия решений прямо на месте.
Аппаратная поддержка граничных вычислений в настоящее время представляет очень большой научный и практический интерес. Исследуются и разрабатываются универсальные и специализированные нейропроцессоры и ускорители с разными архитектурами и разными возможностями по перепрограммированию. Основной подход связан с реализацией Системы-на-Кристалле (System-on-Chip), в состав которой входит графический процессор или нейроускоритель с большим числом вычислительных ядер, которые могут работать параллельно для быстрой реализации тензорных вычислений, присущих нейронным сетям. Такой подход можно встретить в множестве вариантов одноплатных компьютеров от Nvidia (Jetson), Intel (Movidius), Google (Coral) а также в отечественных чипах от компании Элвис (СКИФ, RoboDeus). Такие решения обладают высоким уровнем универсальности, так как могут реализовать любую архитектуру нейронной сети. Управление памятью и подача данных производится на программном уровне с помощью микроконтроллера, а массивные вычисления отправляются на аппаратный ускоритель.
В компании AlphaCHIP исследуется другой подход к реализации нейрочипов для граничных вычислений. Основная идея заключается в том, чтобы вынести часть универсальности на уровень проектирования, тем самым делая конечные устройства более специализированными, и вследствие этого – более подходящими для граничных вычислений. Идет разработка программных средств для генерации аппаратных описаний специализированных нейрочипов, оптимизированных для решения конкретных задач. Универсальность на уровне проектирования подразумевает возможность реализации различных архитектур нейронных сетей при заданных ограничениях на быстродействие, площадь, тип используемой памяти и т. д. Универсальность на уровне конечного устройства (при необходимости) ограничена возможностью перепрошивки весовых коэффициентов, что позволит решать различные задачи одного класса. Такой подход сулит большие преимущества в технико-экономических показателях для конечных устройств по критериям цены, энергоэффективности, быстродействия и площади. Кроме того, существенно снижаются требования к уровню компетенции конечных пользователей – специализированное ПО для потребителей позволяет прошивать новые весовые коэффициенты обеспечивая возможность переобучения или дообучения устройства на новых данных.
Пользователь сможет выбрать модель из списка и устанавливать различные настройки и параметры, такие как глубина нейросети, число и разрядность параметров, особенности архитектуры и т. д. Также можно будет выставить пользовательские установки и приоритеты на мощность, площадь и быстродействие – программа автоматически сможет их учесть в процессе синтеза архитектуры нейрочипа. В результате синтеза будет получено аппаратное описание нейрочипа на уровне RTL кода, которое впоследствии может быть синтезировано на различной элементной базе (ПЛИС, ASIC). Структура устройства в общем виде представляет собой взаимосвязь трех основных компонентов – память, устройство управления и систолический матричный умножитель, который берет на себя львиную долю всех вычислений модели.
Также будут разработаны дополнительные программные средства прошивки нейрочипа для решения различных задач обнаружения объектов и других задач граничных вычислений.
Вычислительным ядром нейрочипа служит систолический матричный умножитель. Матричные умножения – это основа всех моделей нейронных сетей, поэтому эффективная аппаратная реализация такого модуля сама по себе имеет ценность и потенциал для коммерциализации среди разработчиков аппаратуры и дизайн центров. В проекте будет реализован эффективный и универсальный генератор аппаратных описаний (soft IP) и САПР для автоматизации и оптимизации умножителя для определенных задач и пользовательских ограничений.