Neural Processing Unit (NPU)
Нейропроцессор (NPU) — процессор, предназначенный для вычислений в нейросетях. Он эффективно запускает квантованные модели на смартфонах, ПК и камерах.
Нейропроцессор (NPU) — это процессор, предназначенный для запуска нейронных сетей и построенный на основе крупных массивов блоков умножения с накоплением, данные в которые поступают из встроенной памяти. Большинство NPU — это блоки на кристалле системы-на-кристалле рядом с CPU и GPU. Они выполняют инференс для функций камеры, речи и компьютерного зрения, потребляя лишь малую долю энергии, необходимой двум другим процессорам. В 2017 году NPU появились в телефонах: их использовали Kirin 970 от Huawei и A11 Bionic от Apple, нейронный движок которого обеспечивал 600 миллиардов операций в секунду. Затем появились NPU Hexagon от Qualcomm, NPU Intel в процессорах для ноутбуков Core Ultra с декабря 2023 года и чипы Ryzen AI от AMD. Для Copilot+ PC от Microsoft требуется NPU производительностью свыше 40 триллионов операций в секунду (TOPS). Этим термином также называют чипы для центров обработки данных: Huawei называет свои ускорители Ascend NPU и использует их для обучения больших моделей.
Чем NPU отличаются от CPU и GPU#
Инференс глубокого обучения в основном состоит из умножений матриц и свёрток над предсказуемыми данными. Поэтому NPU обходится без большей части логики управления и кэширования, необходимых CPU для выполнения произвольного кода, и гибкости, которую GPU сохраняет для графики. Вместо этого NPU используют кремниевую площадь для вычислительных массивов специализированного назначения, а веса и активации хранят в локальной памяти, поскольку перемещение данных требует больше энергии, чем вычисления. NPU также выполняют вычисления с низкой точностью, в основном INT8 и FP16. Поэтому перед запуском модели на NPU обычно требуется квантование, а производительность NPU указывают в INT8 TOPS. Например, Google Coral Edge TPU выполняет 4 TOPS при мощности 2 TOPS на ватт.
- CPU: Выполняет любой код и обрабатывает операции, которые NPU не поддерживает, но медленнее двух других процессоров выполняет большие матричные операции.
- GPU: Программируемый параллельный процессор, который обучает и запускает модели с высокой пропускной способностью в арифметике с плавающей точкой, но потребляет больше энергии, чем NPU.
- TPU: Семейство матричных ускорителей Google. Облачные TPU обучают модели и обслуживают запросы в центрах обработки данных, а Edge TPU по сути является NPU, пусть и называется иначе.
- Нейроморфные чипы: Обрабатывают импульсы спайковых нейронных сетей и подходят для событийных датчиков. Это другая вычислительная модель, не похожая на плотные матричные вычисления NPU.
Запуск модели на NPU#
NPU запускает скомпилированную программу, а не граф PyTorch или ONNX. Компилятор производителя преобразует сеть заранее или при загрузке средой выполнения, часто квантирует её до INT8 с помощью калибровочных изображений, обычно фиксирует форму входных данных и распределяет каждый слой по аппаратным компонентам. Слои, которые NPU не поддерживает, передаются обратно CPU или GPU, а при каждой передаче тензоры копируются между процессорами:
Каждый переход к другому процессору требует передачи данных и заставляет один процессор ждать, пока занят другой, поэтому в архитектурах для периферийных устройств предпочитают стандартные операторы, например свёртки, активации семейства ReLU и пулинг. Среды выполнения, такие как ONNX Runtime, Core ML от Apple, LiteRT от Google и OpenVINO от Intel, управляют распределением операций и выбирают NPU, если он доступен.
Где применяются NPU#
Смартфоны используют NPU для вычислительной фотографии, распознавания речи на устройстве, распознавания лиц и перевода в реальном времени. Это позволяет хранить изображения и аудио на устройстве и обеспечивает защиту данных. На компьютерах с ИИ Windows Studio Effects выполняет на NPU размытие фона, коррекцию направления взгляда и автоматическое кадрирование для видеозвонков, оставляя CPU и GPU свободными. В области периферийного ИИ NPU от Rockchip, Hailo и DEEPX выполняют обнаружение объектов непосредственно в камерах видеонаблюдения, дронах и роботах, не подключённых к сети.
Ultralytics YOLO26 экспортирует модели в скомпилированные форматы, необходимые этим NPU. Для этого используется режим экспорта: OpenVINO для NPU Intel, Core ML для нейронного движка Apple, QNN для NPU Hexagon от Qualcomm, RKNN для Rockchip и формат .om для Huawei Ascend. Модель также обучается на NPU Ascend: выбери device="npu:0" или device="npu:0,1" для обучения на нескольких NPU.










