С момента выхода первого в мире процессора Intel 4004 прошло больше 50 лет. За это время не только усложнилась архитектура: процессоры также начали обрастать различными модулями и дополнениями. Одно из последних нововведений — нейросетевой процессор, он же NPU. Что это такое, где встречается и зачем нужен?
CPU, GPU, APU и NPU
В основе почти любой вычислительной техники находится центральный процессор. CPU (Сentral Processing Unit) включает вплоть до нескольких десятков ядер, набор арифметико-логических устройств (ALU), кэш-память, контроллер-памяти и другое. CPU можно назвать универсальным вычислительным блоком. Благодаря своей архитектуре и высоким частотам он отлично справляется с разноплановыми задачами — начиная от работы ОС и заканчивая обработкой данных от всевозможных программ.
С развитием технологий перед техникой появилась новая задача — работа с графикой, в том числе 3D. Центральный процессор для этого подходил плохо. Требовалось выполнение однотипных инструкций, но с большим объемом разных данных. Так появился специализированный вычислительный блок — GPU (Graphics Processing Unit).
Ключевое отличие заключалось в том, что графические ускорители имели тысячи специализированных ядер, объединенных в мультипроцессоры и кластеры. Это открыло быструю параллельную обработку, что было важно для графических вычислений. А после — и для многих других задач, начиная моделированием физических процессов и заканчивая машинным обучением.
Первое время графические ускорители были исключительно в виде отдельных плат. Позже появились APU (Accelerated Processing Unit). Под этот термин сейчас попадают все процессоры со встроенным графическим ядром. Оно пусть и уступает в производительности отдельным PCIe GPU, но позволяет работать с графикой на базе одного лишь процессора.
Последние годы ознаменовались активным развитием машинного обучения и появлением нейросетей. Как и в случае с 3D графикой, для оптимальной работы требовалось специализированное решение. Одно из самых популярных названий – NPU (Neural Processing Unit). В общем смысле под этот термин попадают процессоры (сопроцессоры), используемые для ускорения операций нейронной сети и задач искусственного интеллекта.
Нейросетевые ускорители
Чтобы объяснить появление нейронных процессоров, необходимо слегка углубиться в особенности работы нейросетей.
Говоря о них, можно выделить два основных этапа: обучение (Training) и выполнение (Inference). Первый процесс самый объемный и сложный, поскольку идет работа с огромным набором данных и трудоемкие операции с плавающей запятой (floating-point). Именно поэтому для обучения нейросетей используются высокопроизводительные кластеры. Например, OpenAI для ChatGPT задействовала суперкомпьютер, который использовал десятки тысяч специализированных ускорителей Nvidia A100.
После тренировки получается готовая нейросеть, с которой можно работать. Например, распознавать образы с изображений или выделять команды из произносимого текста. Однако для этого процесса также нужно достаточно производительное «железо». Для несложных моделей подойдут и десктопные видеокарты.
Вот только видеокарты — достаточно массивные и дорогие устройства. И это не говоря об их энергопотреблении и тепловыделении. Решением этих недостатков стало появление так называемых нейронных ускорителей. Для выполнения нейросетей важна высокая производительность в операциях сложения и умножения.
На рынке начали появляться устройства в виде отдельных PCIe-плат. Выглядят они практически как видеокарты, но энергопотребление составляет всего 15–60 Вт, а соотношение цена-производительность в задачах выполнения нейросетей — во многих случаях выше. В сети можно встретить и другие обозначения: TPU (Tensor Processing Unit) и VPU (Vision Processing Unit).
Однако PCIe-плату все еще не назовешь мобильной. Поэтому следующим этапом развития нейронных ускорителей стали APU, в которых присутствовал отдельный сопроцессор. Именно это решение чаще всего подразумевается под термином NPU.
Архитектура и возможности NPU
Архитектура нейронных процессоров отличается в зависимости от решений конкретных производителей и поставленных задач. Однако в целом можно заметить сходство с теми же GPU. В основе лежит массив из множества процессорных юнитов (processing elements). Это так называемый массив умножения-накопления, который содержит определенное число MAC юнитов (Multiply-Accumulate). Эту аббревиатуру часто можно увидеть в описаниях параметров NPU-модулей.
Операции умножения-накопления лежат в основе рабочих нагрузок ИИ. В частности, для умножения матриц требуется две фундаментальных операции: умножение и сложение с аккумулированием. Соответственно, чем больше число MAC-юнитов, тем выше производительность.
Блоки аппаратного ускорения ориентированы не только на умножение матриц, но и свертку, и/или потоковые операции. Проще говоря — выполнение множества относительно простых параллельных задач.
Возможность установки NPU в качестве дополнительного блока на чипе центрального процессора открыла новые возможности для мобильных гаджетов: смартфонов, ноутбуков, умных колонок и не только. Какие именно? Например:
распознавание речи и преобразование в текст/команду;
определение лиц и предметов на фотографиях;
прорисовка дополненной реальности;
задачи перевода с одного языка на другой.
Но ведь смартфоны все это умеют и так, без встроенного NPU? Верно, но либо ограниченно, либо лишь с доступом в интернет.
Самый яркий пример — умные колонки с их голосовыми помощниками. Опробовав какую-нибудь «VK Капсулу» или «Яндекс.Станцию», вы заметите, что без доступа в интернет колонка не способна понять ваши слова и практически бесполезна. Все дело в том, что для распознавания речи данные передаются на удаленные серверы, там обрабатываются, а готовый результат уже приходит в колонку. Эта схема актуальна для всех голосовых помощников на смартфонах, ТВ и так далее.
Однако колонка с выделенным NPU частично обходит это ограничение. Пример – «Яндекс.Станция Миди». Разработчики натренировали небольшую нейросетевую модель, которая может локально (без доступа в интернет) распознавать в речи пользователя базовые команды управления умным домом и выполнять их. Как оказалось, при таком подходе обрабатывается запрос в шесть раз быстрее!
Таким образом, сопроцессор NPU в чипах позволяет запускать относительно простые нейросетевые модели локально на своем устройстве. Для пользователей это дает несколько преимуществ: как работу приложений без доступа в сеть, так и ускоренную обработку запросов, поскольку часть нагрузки переходит с CPU на NPU. Помимо этого NPU может работать в паре с CPU и GPU, предлагая еще большую суммарную производительность.
Где имеется NPU-модуль, и какой лучше?
В продаже уже выпускаются процессоры с NPU, а в ближайшие годы их ассортимент будет существенно расширен. Но прежде чем мы перейдем к существующим решениям, стоит затронуть вопрос производительности.
Для процессоров найдется немалый список бенчмарков. Для видеокарт показателем производительности может служить FPS в играх или терафлопы в секунду (TFLOS). А что по поводу NPU? Как оценить, какой из них работает быстрее?
Пока единственной сравнительной характеристикой являются триллионы операций в секунду — TOPS. Чем выше значение, тем более производительный NPU. Однако не забывайте, что в какой-то мере это «маркетинговые попугаи», которые не отображают в полной мере производительность процессора. Бренды могут указывать TOPS для всего процессора (NPU+CPU+GPU) или замерять его в конкретных задачах.
Еще один вариант — это оценка количества MAC-юнитов в чипе. Здесь работает формула:
TOPS = 2 * количество единиц MAC * частоту / 1 триллион
Apple. «Яблочные» гаджеты одними из первых начали использовать отдельные NPU – впервые сопроцессор Neural Engine появился в 2017 году в чипе A11. Разработчики заявили, что новинка будет использоваться для обработки в реальном времени алгоритмов функций Animoji и Face ID. Сейчас же в дополнение к этому NPU ускоряет распознавание речи, выявление фигур людей на фото и не только. Neural Engine стал неотъемлемой частью процессоров, в том числе для ноутбуков.
Intel. Компания уже анонсировала линейку новых Core Ultra под кодовым названием Meteor Lake. На борту всех моделей будет пара Neural Compute Engines, которые обеспечат производительность в 11,5 TOPS, а суммарно (NPU+CPU+GPU) — до 34 TOPS.
В качестве примера компания предлагает ускорить локальную работу со Stable Diffusion или языковыми моделями чат-ботов, а также улучшить активное шумоподавление при видеоконференциях. По времени обработки NPU проигрывает встроенному GPU. Однако за счет меньшего энергопотребления его эффективность выше.
Вычисления производятся двумя кластерами массивов MAC (Neural Compute Engines). Они могут работать отдельно каждый над своей задачей или совместно.
В следующем поколении процессоров Lunar Lake также ожидается встроенный NPU, причем с пиковой производительностью до 48 TOPS.
AMD. «Красные» анонсировали новейшее семейство гибридных процессоров Ryzen AI 300. Ключевая особенность — нейронный блок XDNA 2 с заявленной производительностью 50 TOPS. Пока в линейке представлены лишь две модели.
Среди мобильных чипов NPU (XDNA) получили Ryzen серии 7040 (10 TOPS на нейронный процессор и 33 TOPS суммарно), а также некоторые модели линейки 8040 (16 TOPS на нейронный процессор и 39 TOPS суммарно).
Qualcomm. Один из ведущих разработчиков мобильных чипов также следует тенденциям времени. Причем гигант объединился с Microsoft, представив набор функций Copilot+. В линейке Qualcomm встроенный NPU имеют чипы Snapdragon X Plus и Snapdragon X Elite. Модуль Hexagon NPU обеспечивает производительность в 45 TOPS и суммарную до 75 TOPS. На базе этих чипов уже анонсировано больше 20 ноутбуков.
Samsung. Корейский бренд имеет многолетнюю историю разработки собственной SoC. В топовых смартфонах компания ставит чипы серии Exynos. NPU-модуль по заявлениям разработчиков используется для распознавания объектов, оптимизации фотографий и повышения производительности (открытие приложений и другое).
Huawei. Китайский производитель впервые представил модуль NPU в мобильных процессорах Kirin. К сожалению, данных о производительности в TOPS не представлено:
NPU модуль 2+1 интегрирован со встроенным Kirin ISP 6.0 для функций камеры — синтез HDR-видео с экспозицией в реальном времени для достижения высоких результатов в условиях низкой освещенности.
Tesla. Автопроизводитель для нужд собственного автопилота создал отдельный процессор под названием FSD Chip. Помимо ARM-ядер в него встроены два сопроцессора, каждый производительностью 36,86 TOPS и суммарной в 73,7 TOPS.
В автомобиле стоит сразу два процессора FSD Chip. Однако они делают одинаковые вычисления и резервируют друг друга. В случае если результаты отличаются, возникает ошибка и автомобиль требует вмешательства водителя.
Другие. Производители встраиваемых процессоров также предлагают возможности работы с ИИ. Например, в линейке Amlogic имеются чипы A311D (NPU 5 TOPS) и A311D2 REV-C (NPU 3,2 TOPS).
У Rockchip можно найти решения RK3568J (NPU 1 TOPS), RK3399Pro (NPU 2.4 TOPS) и RK3588 (NPU 6 TOPS).
Все эти SoC могут использоваться в умных колонках, смарт-приставках, одноплатных компьютерах, сетевых хранилищах и другой технике.
В виду ограничения фотоматериалов