Компания Google представила открытую платформу Coral NPU (Neural Processing Unit), предлагающую отрытый аппаратный ускоритель моделей машинного обучения и программный инструментарий для его использования с типовыми AI-движками. Coral можно использовать в качестве основы для создания энергоэффективных систем на кристалле (SoC), пригодных для использования в системах интернета вещей, Edge-вычислений и платах сбора информации с датчиков, а также в потребительских носимых устройствах со сверхнизким энергопотреблением, таких как наушники, очки дополненной реальности и умные часы. Наработки проекта распространяются под лицензией Apache 2.0.
Coral NPU нацелен на выполнение на стороне портативных устройств постоянно работающих AI-приложений с минимальным потреблением энергии. Базовая реализация Coral NPU обеспечивает производительность в 512 миллиардов операций в секунду (GOPS) при потреблении всего нескольких милливатт энергии. NPU спроектирован для гибкой модификации архитектуры в зависимости от потребностей производителей SoC. Первым производителем, начавшим производство чипов на базе Coral NPU, станет компания Synaptics, которая анонсировала линейку процессоров для устройств интернета вещей Astra SL2610, включающую подсистему Torq NPU, реализованную на базе архитектуры Coral NPU.
Из типовых применений Coral NPU упоминается задействование AI для обработки изображений и звука, взаимодействия с пользователем и учёта контекста. Например, на устройствах могут выполняться большие языковые модели и приложения для распознавания лиц и объектов, визуального поиска, распознавания речи, живого перевода, транскрипции речи, выделения в речи ключевых слов, управления жестами и голосовыми командами, определения активности пользователя (хотьба, бег, сон) и типа окружения (дома, на улице).
В NPU задействована 32-разрядная архитектура набора команд RISC-V RV32IMF_Zve32x, шина AXI4, четырёхступенчатый конвейер обработки инструкций с упорядоченной диспетчеризацией, неупорядоченным завершением выполнения инструкций, четырёхпоточной скалярной и двухпоточной векторной диспетчеризацией. Процессор поддерживает SIMD-операции для одновременной обработки 128-битных векторов и оснащён 8 KB ITCM-памяти для инструкций и 32 KB DTCM-памяти для данных.

NPU включает в себя три совместно работающих процессорных компонента:
- Ядро для скалярных вычислений – легковесный программируемый на языке Си фронтэнд RISC-V, управляющий потоками данных к основным ядрам и использующий модель “выполнения до завершения” (run-to-completion) для обеспечения функциональности традиционных СPU и сверхнизкого потребления энергии.
- Векторный SIMD-сопроцессор, поддерживающий векторные расширения набора инструкций RISC-V (RVV v1.0) и позволяющий одновременно выполнять несколько операций над большими объёмами данных.
- Матричный сопроцессор, эффективно выполняющий операции совмещённого умножения-сложения (MAC) и разработанный для ускорения базовых операций нейронных сетей.

Для разработчиков приложений подготовлен набор компиляторов AI-моделей (IREE и TFLM), компилятор программ на языке Си и симулятор. Поддерживается компиляция моделей, используемых в AI-приложениях на базе фреймворков TensorFlow, JAX и PyTorch. Модель компилируется в универсальное промежуточное представление, которое затем при помощи LLVM преобразуется в низкоуровневый набор инструкций RISC-V, поддерживаемый в Coral NPU.
