Intel Myriad

Продукт
Разработчики: Intel
Технологии: Процессоры,  Робототехника

Содержание

В 2017-2018 годах Машинное обучение выходит из исследовательских лабораторий в практику и пробивается в пользовательские устройства, как теперь говорят, «на границу». С подачи компании ARM такого рода решения называют edge machine learning (edge переводится как острие, ребро, граница).

Приобретенные Intel технологии калифорнийской компании Movidius открыли ей дорогу на рынок глубокого машинного обучения и компьютерного зрения, а процессор Movidius Myriad X, выпущенный в 2017 году, позволил корпорации войти в сегмент edge machine learning.

Movidius к моменту приобретения со стороны Intel более десяти лет производила интеллектуальную собственность (IP) в форме документации для производства процессоров ISAAC, Myriad 1, Myriad 2. Ее последнее достижение до перехода в состав Intel было связано с устройством в формате USB-флэшки Fathom с процессором Myriad 2, способным работать совместно с процессором ARM под управлением Linux.

Fathom стоит всего $79 и используется в дронах, роботах, устройствах IoT и видеонаблюдения.

Перед знакомством с Movidius следует отметить, что замыслы этой компании были детально описаны в документе, поданном в 2016 году в заявке на получение гранта от Еврокомиссии по проекту Horizon 2020 PROGRAMME.

Хронология разработок Movidius

2018

Выход Windows Machine Learning для Intel Movidius Myriad X

7 марта 2018 года на Windows Developer Day корпорация Microsoft объявила о новой версии Windows 10 - Windows Machine Learning (ML). Она как нельзя лучше соответствует интегрированной на чипе системе Intel Movidius Myriad X VPU. Их объединяет понятие «вывод» или inference - так специалисты по машинному обучению называют практическое использование готовых нейронных сетей в качестве инструмента на уровне edge machine learning. О соотношении процессов тренировки сети и вывода см. здесь.

Windows ML обеспечивает работу предварительно натренированных сетей на любых устройствах, поддерживаемых Windows 10 и, таким образом, позволяет разработчику применить натренированную сеть в каком-то конкретном приложении. До 2017-2018 годов для вывода, как правило, использовались локальные или облачные CPU или GPU, что крайне неэффективно и существенно ограничивает область применения, например, в тех автономных мобильных устройствах, где требуется работа с изображением.

Без жесткой привязки к машинному зрению сходная задача автономизации процессов вывода решается на базе процессора ARM в проекте Trillium, а Intel предлагает качественно новый процессор для работы исключительно с изображениями Intel Vision Processing Units (VPU) с именем собственным Movidius Myriad X.

Этот специализированный чип служит для ускорения работы нейронных сетей на этапе вывода, поэтому маркетинг относит его к ИИ, хотя интеллектуальность все еще весьма условна. Признать этот чип разумным сложно, он просто умный.

2017

Выпуск Myriad X

Если Myriad 2 VPU, выпущенный в 2012 году (см подробнее ниже), был изначально задуман для задач машинного зрения, а уже потом успешно приспособлен к машинному обучению, то процессор Myriad X изначально адаптирован непосредственно к этому классу приложений. Поэтому в Myriad X до 16 увеличено число процессоров SHAVE и появился совершенно новый ускоритель Neural Compute Engine, что, по словам представителя компании, привело к 10-ти кратному повышению производительности на операциях с плавающей точкой. Это утверждение звучит несколько странно, поскольку для ускорения процессов вывода на нейронных сетях критичнее скорость работы на целочисленных операциях и операциях с фиксированной точкой, причем с пониженной точностью. По всей видимости именно на эти операции ориентирован ускоритель Neural Compute Engine, устройство которого не разглашается. Известно лишь то, что Neural Compute Engine - это аппаратный ускоритель для глубинных нейронных сетей, в котором интеллектуальный интерфейс памяти освободится от хорошо известного бутылочного горла, возникающего при обмене данными между памятью и процессором. Neural Compute Engine отличается низким потреблением энергии.

Еще один ускоритель в составе Myriad X VPU, попадающий в категорию специализированного железа (fixed-function hardware), предназначен для работы со стереоскопическими эффектами и глубиной изображения.

Архитектура Myriad X VPU

Появление устройств типа Myriad X VPU интересно тем, что они открывают качественно новые возможности. Известно, что около 90% информации человек получает с помощью зрения, около 9% — с помощью слуха и только 1% с помощью других органов чувств. По всей видимости что-то подобное будет справедливо и для компьютеров, вступающих во взаимодействие с окружающим миром. Myriad X VPU – один из первых шагов в этом направлении.

Пакет Neural Compute SDK и процессор для обработки изображений Myriad 2

Пакет Neural Compute SDK (NCSDK) обеспечивает компиляцию и исполнение нейронных сетей, созданных с использованием фреймворков Caffe или TensorFlow, на устройстве Intel Movidius Neural Compute Stick (Intel Movidius NCS).

Основу Intel Movidius NCS составляет процессор для обработки изображений (Vision Processing Unit,VPU) Intel Movidiu Myriad 2.

VPU Myriad 2 включает 4 Гбит LPDDR3 DRAM, ускорители для обработки изображения и массив из 12 векторных процессоров с архитектурой сверхдлинного командного слова (Very Long Instruction Word, VLIW), называемых в данном случае SHAVE. Эти процессоры позволяют распараллеливать работу, повышая таким образом скорость работы.

Блок-схема Myriad 2 VPU

Movidius NCS подключается к процессору приложений (Application Processor, AP), в качестве которого можно использовать, например, Raspberry Pi и UP Squared board, подключаемый по интерфейсу USB.

Входящий в состав Myriad 2 VPU процессор LEON CPU, построенный по архитектуре SPARC, изначально пуст. При начале работы в него прошивается управляющее ПО. Это происходит при подключении Myriad 2 VPU к AP по USB. AP взаимодействует с Myriad VPU по интерфейсу Neural Compute API, AP открывает устройство и перекачивает управляющее ПО (firmware) из Neural Compute SDK в Movidius Neural Compute Stick. После чего хост-компьютер видит Movidius NCS как обычное устройство. Подключенное к USB 2.0 или USB 3.0, это устройство может загрузить в себя графы нейронных сетей и команды, управляющие работой нейронных сетей.

Наконец граф загружается в память DRAM по API, при этом процессор LEON координирует процесс получения графа и распределение его по процессорам SHAVE, служащим ускорителями нейронных сетей. Результат работы сетей возвращается по тому же интерфейсу. Кроме того LEON контролирует физику работы Movidius Neural Compute Stick.

В NCSDK входят средства для подготовки нейронных сетей на хосте – это mvNCCompile, mvNCCheck и mvNCProfile.

Примером использования Myriad 2 VPU могут служить:

Google Clips

До вхождения в Intel в 2016 году

Компания Movidius (урожденная Movidiа) в основном ирландская, причем настолько ирландская, что, выступая на ее 10-летнем юбилее в 2015 году, премьер-министр этой страны сказал, что Ирландия должна стать лидером в компьютерном зрении. Такое невинное преувеличение государственных возможностей простительно лидеру небольшой, но гордой страны.

Отцами-основателями Movidius стали научные сотрудники-математики из колледжа Святой Троицы в Дублине Дэвид Мэлони, Энди Нисбетт и Син Мител, а также Валентин Муросан из университета Тимишоара (Румыния). С 1994 по 2005 год их работа была ограничена исследованиями.

Успех Movidius заметно напоминает триумф Nvidia. Процессоры, принесшие этим двум компаниям, хотя и разных по своим масштабам, славу и деньги, в обоих случаях задумывались не совсем для тех целей, которым они стали служить. Компания Movidius было создана задолго до бума нейронных сетей. На первых порах целью было создание процессора, позволяющего ускорить решения задач игровой физики. Так называют симуляцию законов Ньютона в виртуальных средах.

Тайм-лайн Movidus
«Флэшка» Neural Compute Stick

Ядро последних самостоятельных разработок - мультиядерный векторный процессор SHAVE с низким энергопотреблением. В 2007 был произведен первый экспериментальный чип ISAAC, через год – второй SABRE, в 2010 первый серийный процессор, в 2012 году - Mуriad 2. Последней самостоятельной разработкой стал набор Deep Learning Development Kit и «флэшка» Neural Compute Stick.

Робототехника





Подрядчики-лидеры по количеству проектов

За всю историю
2015 год
2016 год
2017 год
Текущий год

Данные не найдены

  Mikrolar (1)
  Другие (0)

Распределение вендоров по количеству проектов внедрений (систем, проектов) с учётом партнёров

За всю историю
2015 год
2016 год
2017 год
Текущий год

  Nvidia (Нвидиа) (5, 5)
  Promobot (Промобот) (1, 5)
  SoftBank Robotics (2, 2)
  Mikrolar (1, 2)
  Лаборатория будущего (1, 1)
  Другие (65, 5)

Данные не найдены

  Mikrolar (1, 1)
  Другие (0, 0)

  SoftBank Robotics (1, 2)
  Promobot (Промобот) (1, 2)
  Nvidia (Нвидиа) (1, 2)
  Intuitive Surgical (1, 1)
  Durr (1, 1)
  Другие (3, 3)

Распределение базовых систем по количеству проектов, включая партнерские решения

За всю историю
2015 год
2016 год
2017 год
Текущий год
Данные не найдены

  Hexapod - 1 (1, 0)
  Другие 0

Подрядчики-лидеры по количеству проектов

За всю историю
2015 год
2016 год
2017 год
Текущий год

Данные не найдены

Распределение вендоров по количеству проектов внедрений (систем, проектов) с учётом партнёров

За всю историю
2015 год
2016 год
2017 год
Текущий год

  Oracle (8, 6)
  МЦСТ (13, 5)
  ИНЭУМ им. И.С. Брука (1, 3)
  Nvidia (Нвидиа) (11, 2)
  AMD (6, 2)
  Другие (106, 4)

Данные не найдены

  ИНЭУМ им. И.С. Брука (1, 2)
  Другие (0, 0)

  Байкал Электроникс (Baikal Electronics) (1, 1)
  Intel (1, 1)
  Другие (0, 0)

  Nvidia (Нвидиа) (2, 2)
  AMD (1, 2)
  МЦСТ (1, 1)
  Байкал Электроникс (Baikal Electronics) (1, 1)
  Oracle (1, 1)
  Другие (0, 0)

Распределение базовых систем по количеству проектов, включая партнерские решения

За всю историю
2015 год
2016 год
2017 год
Текущий год

  Oracle SPARC - 6 (6, 0)
  Эльбрус - 4 (1, 3)
  AMD EPYC (ранее Opteron) - 2 (2, 0)
  Baikal-Т1 - 2 (2, 0)
  Intel Xeon Scalable - 1 (1, 0)
  Другие 1
Данные не найдены

  Эльбрус 4.4 - 2 (2, 0)
  Другие 0

  Intel Xeon Scalable - 1 (1, 0)
  Baikal-Т1 - 1 (1, 0)
  Другие 0

  AMD EPYC (ранее Opteron) - 2 (2, 0)
  Nvidia Jetson - 1 (1, 0)
  Nvidia Quadro - 1 (1, 0)
  Oracle SPARC - 1 (1, 0)
  Baikal-Т1 - 1 (1, 0)
  Другие 1