Mobile ML: машинное обучение в кармане. Часть 1 — Железо

e6ioid6xhgm4eyhguqihwbbphiy.jpeg
Автор: Андрей Батутин, Senior iOS Developer в DataArt

Сегодня все делают Machine Learning, включая наши телефоны. Да, скоро ваш телефон станет по настоящему смарт. Ну или по крайней мере, умнее нас с вами. Почему? Сейчас разберемся. Начнем с железа, уже установленного в мобильных устройствах.

TL; DR


Все основные производители мобильных System-on-chip (SoC) уже 3–4 года активно добавляют ML-specific hardware в свои решения. Если у вас топовый андроид или айфон, рядом с GPU у вас почти гарантированно есть чип, специально заточенный под ML-задачи.

В основном ML-чипы предназначены для Computer Vision, Audio, Camera/Photo/Video. Основные задачи: уменьшение шума на фото, лучшее качество при зуме, распознавание лиц и животных, распознавание речи и синтез текста.

К тому же, основные вендоры предоставляют SDK, которая дает доступ к этому ML-чипу сторонним разработчикам. Так что вы вполне можете сделать свой Snapchat или Siri, все равно вы наверняка сидите дома (Когда все это кончится?! Как я хочу в KFC!).

Железо


Основные вендоры мобильных чипов активно расширяют свои SoC-архитектуры с помощью Neural Processing Unit (NPU), Digital Signal Processor (DSP) и специализированных AI-ядер. Компоненты эти специально заточены для работы ML-моделей.

Qualcomm


ML Hardware: DSP + GPU
SDK: Qualcomm Neural Processing SDK

Предоставлен Qualcomm Neural Processing SDK, которая обеспечивает аппаратное ускорение ML-моделей на связке DSP + GPU + CPU для Snapdragon чипов. DSP заточен под работу с аудио/видео: умная камера, очистка картинки от шумов, лучшее качество при зуме и схожие инструменты для повышения качества звука.

HiSilicon/Huawei


ML Hardware: NPU
SDK: HiAI SDK

Da Vinci NPU состоит из трех ядер: двух высокопроизводительных, и одного энергоэффективного ядра для ML-вычислений.

HiAI SDK дает доступ к заточенному под операции над матрицами NPU.Т. е. NPU идеально подходит для Deep Neural Network моделей. Из плюшек — плагин к Android Studio.

HiAI заточена под:

  • Computer Vision;
  • Automatic Speech Recognition;
  • Natural Language Understanding.

MediaTek


ML Hardware: APU + GPU
SDK: NeuroPilot SDK

NeuroPilot SDK позволяет решать ML-задачи с помощью AI Processing Unit (APU) + GPU. APU заточен под Deep Neural Network модели. Обеспечивает аппаратное ускорение для convolutions, fully connected layers, activation functions, и т. д.

NeuroPilot 2.0 позволяет в реальном времени:

  • Multi-person pose tracking;
  • 3D pose tracking;
  • multiple object identification;
  • semantic segmentation;
  • image enhancement.

Samsung


ML Hardware: NPU
SDK: Samsung Neural SDK / EDEN SDK
Samsung добавил в Exynos SoC специализированный NPU. Состоит он из двух Multiply–accumulate units, заточенных под операции над матрицами.

Также он предоставляет Samsung Neural SDK, которая обеспечивает аппаратное ускорение для ML-моделей с помощью связки CPU + GPU + NPU.

Apple


ML Hardware: NPU
SDK: CoreML SDK

Начиная с Apple A11, Bionic использует NPU. В A13 NPU разросся уже до восьми ядер. Одна из killer-features нового NPU — Deep Fusion image processing: делаем 9 снимков и комбинируем их в один. Особенно актуально для ночной съемки.

Предоставляет CoreML SDK. Также, как в других SDK, обеспечивает аппаратное ускорение для ML-моделей. Из плюшек — Create ML — UI-only среда для тренировки ML-моделей. Позволяет тренировать:

  • Object detection/classifier;
  • Sound classifier;
  • Motion classifier;
  • Text classifier/word tagging;
  • Tabular Classifier;
  • Recommendation engine.

Полезные ссылки


ML-бенчмарк для Андроид смартфонов;
Qualcomm Neural Processing SDK;
HUAWEI HiAI SDK;
Apple CoreML

В продолжении материала подробнее разберемся в том, как работает NPU. Поговорим о нужном для мобильного ML софте и способах его использования.

© Habrahabr.ru