Нейронный процессор
Нейро́нный проце́ссор (англ. Neural Processing Unit, NPU или ИИ-ускоритель, англ. AI accelerator) — специализированный класс микропроцессоров и сопроцессоров (часто реализуемых как специализированные интегральные схемы), используемых для аппаратного ускорения алгоритмов нейронных сетей, компьютерного зрения, распознавания речи, машинного обучения и других методов искусственного интеллекта[1].
Описание
Нейронные процессоры относятся к вычислительной технике и применяются для аппаратного ускорения эмуляции работы нейронных сетей и цифровой обработки сигналов в режиме реального времени. Обычно нейропроцессор включает регистры, магазинные блоки памяти, коммутатор и вычислительное устройство, в составе которого — матрица умножения, дешифраторы, триггеры и мультиплексоры[2].
На современном этапе (по состоянию на 2017 год) к классу нейронных процессоров относят различные по устройству и назначению типы чипов, например:
- Нейроморфные процессоры — построенные по кластерной асинхронной архитектуре, разработанной в Корнеллском университете (существенно отличающейся от фон-Неймановской и Гарвардской архитектур, применявшихся последние 70 лет в IT-отрасли). Логика нейроморфных процессоров изначально специализирована под создание и развитие различных видов искусственных нейронных сетей. Используются обычные транзисторы для построения вычислительных ядер, каждое из которых содержит планировщик, собственную память SRAM и маршрутизатор, а ядро эмулирует работу сотен нейронов, что позволяет одной микросхеме с тысячами ядер имитировать поведение сотен тысяч нейронов и гораздо большего числа синапсов. Типично применяются для алгоритмов глубокого машинного обучения[3].
- Тензорные процессоры — обычно реализуются как сопроцессоры под управлением центрального процессора, обрабатывают тензоры (многомерные массивы чисел, удобные для вычислений в машинном обучении)[4]. Для повышения производительности операции выполняются над числами сниженной точности (8 или 16 бит), ускоряя такие задачи, как матричное умножение и свёртка, используемые для эмуляции свёрточных нейронных сетей[5].
- Процессоры машинного зрения — схожи с тензорными, но специализированы для ускорения алгоритмов машинного зрения, включая методы свёрточных нейронных сетей (CNN) и SIFT. Акцент делается на распараллеливание потоков данных между многочисленными ядрами, в том числе с использованием блокнотной памяти, а также на обработку с пониженной точностью, характерную для обработки изображений[6].
Области применения
- Беспилотное транспортное средство: автомобиль, корабль, поезд, трамвай, летательный аппарат — это направление развивает компания Nvidia с серией Drive PX[7][8]. А навигационная система на базе чипов Movidius Myriad 2 успешно управляет автономными беспилотниками[9].
- Диагностика в здравоохранении.
- Машинный перевод.
- Обработка естественного языка.
- Поисковая система — NPU повышают энергоэффективность центров обработки данных и позволяют использовать более сложные запросы.
- Промышленный робот — NPU расширяют спектр автоматизируемых задач, повышая адаптивность к изменяющимся условиям.
- Распознавание по голосу — например, в смартфонах применяется технология Qualcomm Zeroth[10].
- Сельскохозяйственный робот — например, автоматизированная борьба с сорняками без применения химикатов[11].
Примеры
- Процессоры машинного зрения:
- Intel Movidius Myriad 2 — многоядерный ИИ-ускоритель на архитектуре VLIW с дополнительными модулями для обработки видео[6].
- Mobileye EyeQ — специализированный процессор для ускорения алгоритмов машинного зрения в беспилотных автомобилях[12].
- Тензорные процессоры:
- Тензорный процессор Google — ускоритель для TensorFlow компании Google, применяется для свёрточных нейронных сетей, поддерживает 8-битную точность вычислений[5].
- Huawei Ascend 310 / Ascend 910 — первые чипы линейки Ascend, оптимизированные под задачи искусственного интеллекта[13].
- Intel Nervana NNP — первый коммерческий тензорный процессор для глубокого обучения[14][15][16].
- Qualcomm Cloud AI 100 — ИИ-ускоритель для облачных платформ, поддерживающий PyTorch, Glow, TensorFlow, Keras и ONNX[17].
- Нейроморфные процессоры:
- IBM TrueNorth — построен по принципу взаимодействия нейронов. Частота импульсов кодирует интенсивность сигнала. На 2016 год не существует однозначного мнения в ИИ-сообществе о перспективности этого подхода, однако отмечается высокая энергоэффективность для задач машинного зрения[18].
- AltAI — российский нейроморфный вычислитель компании «Мотив Нейроморфные Технологии». Первое поколение предназначено для задач искусственного интеллекта. Второе — позволяет исполнять импульсные нейронные сети и решать задачи общего назначения[19].
- Adapteva Epiphany — сопроцессор с блокнотной памятью и сетевой архитектурой внутри кристалла, ориентирован на обработку потоков данных для задач машинного обучения.
- ComBox x64 Movidius PCIe Blade board — плата расширения PCI Express с большим числом VPU Intel Movidius (MyriadX) для инференса высокоточных нейронных сетей в ЦОД.
- Cambricon MLU100 — карта расширения PCI Express с ИИ-процессором: 64 TFLOPS в режиме FP16 или 128 TOPS для INT8[20].
- Cerebras Wafer Scale Engine (WSE, CS-1) — экспериментальный суперпроцессор Cerebras: 1,2 трлн транзисторов, 400 000 ИИ-оптимизированных ядер и 18 Гбайт распределённой SRAM, соединённых ячеистой сетью с производительностью 100 петабит/с. Ядра SLAC (Sparse Linear Algebra Cores) — программируемые и оптимизируемые под любые нейросети[21].
- KnuPath — процессор компании KnuEdge для систем распознавания речи и машинного обучения; использует соединение LambdaFabric и масштабируется до 512 тысяч процессоров[22].
- Nvidia Tesla — серия GPGPU-ускорителей Nvidia[23]:
- Nvidia Volta — GPU архитектуры Volta (2017), напр. GV100, содержат до 640 тензорных ядер[1].
- Nvidia Turing — GPU архитектуры Turing (2018), напр. TU104, до 576 тензорных ядер[24].
- Nvidia DGX-1 — специализированный сервер из двух ЦП и 8 GPU Nvidia Volta GV100 (5120 тензорных ядер), связанных через быструю NVLink[25]. Архитектура памяти системы оптимизирована для глубокого обучения[26][27].
- AMD Radeon Instinct — специализированные GPGPU от AMD для глубокого обучения[28][29].
- Cambricon-1A — NPU в ARM-чипах Huawei Kirin 970, разработан компанией Cambricon Technologies[30].
- CEVA NeuPro — семейство лицензируемых ИИ-процессоров для глубокообучающих задач компании CEVA[31].
- Apple Neural Engine — ИИ-ускоритель внутри ARM-чипов от Apple A11 до Apple A18 SoC[32].
- PowerVR 2NX NNA (Neural Network Accelerator) — семейство лицензируемых IP-модулей для машинного обучения компании Imagination Technologies[33].
- Индийский технологический институт в Мадрасе разрабатывает ускоритель на импульсных нейронах для новых систем RISC-V, нацеленных на обработку больших данных в серверах[34].
- Eyeriss — разработка для свёрточных нейронных сетей с применением блокнотной памяти и сетевой архитектуры в пределах кристалла.
- Fujitsu DLU — многоблочный сопроцессор для глубокого машинного обучения, использует вычисления с низкой точностью[35].
- Intel Loihi — нейроморфный процессор Intel, объединяющий обучение, тренинг и принятие решений в одном чипе, работает автономно, без подключения к облаку. На MNIST Loihi превосходит типовые спайковые нейросети более чем в миллион раз[36].
- Kalray — компания разработала MPPA[37] и сообщила о повышении эффективности СВНС по сравнению с GPU.
- SpiNNaker — массово-параллельная архитектура с ARM-ядрами и оптимизированной сетевой структурой для моделирования крупных нейронных сетей.
- Zeroth NPU — разработка компании Qualcomm для добавления функций распознавания речи и изображений в мобильные устройства[38].
- TPU H — тензорный процессор, разрабатываемый компанией «ХайТэк». В октябре 2020 опубликованы результаты[39][40] тестирования архитектуры TPU H консорциумом MLPerf (создан в 2018 году Baidu, Google, Гарвардский университет, Стэнфордский университет и Калифорнийский университет в Беркли)[41][42].
Примечания
Ссылки
- Популярность машинного обучения влияет на эволюцию архитектуры процессоров. Servernews. (31 августа 2017). Дата обращения: 17 ноября 2017.