Intel Nervana Neural Network Processor
 

Intel Nervana Neural Network Processor

Продукт
Разработчики: Intel
Дата премьеры системы: 2017/10/17
Технологии: Процессоры

Содержание

Как Intel покушается на лидерство Nvidia в процессорах для искусственного интеллекта

По состоянию на 2018 год практически все приложения, так или иначе связанные с нейронными сетями, работают на серверах компании Nvidia, а если иных, то все равно на GPU Nvidia. Как свидетельствует отчет Gartner[1], альтернатив нет. Но есть серьезный шанс на то, что усилиями Intel монополия Nvidia будет нарушена. Конкурентом, способным потеснить, а может быть даже и сместить GPU с позиции лидера, станут новые, не имеющие аналогов процессоры Intel Nervana Neural Network Processor (NNP). В них, как следует из названия, реализована интеллектуальная собственность, приобретенная Intel вместе с компанией Nervana в 2016 году.

Процессор Intel Nervana Neural Network Processor (NNP)

О серьезности намерений Chipzilla (так называют Intel за ее гигантизм) свидетельствует интервью генерального директора Брайана Кржанича, которое он дал Wall Street Journal в октябре 2017 года. В нем он сказал:

«
В наше время любая компания, любое серьезное приложение оказываются так или иначе связанными с искусственным интеллектом (ИИ). Например, мы выполнили совместную работу с производителем джинсовой одежды Levi Strauss. Используя методы ИИ мы смогли выяснить предпочтения в выборе покупателей, и теперь Levi может более адресно производить те товары, которые пользуются спросом. Это, как и многое другое из того, что наблюдаем, побудило нас серьезно заняться специализированными процессорами для нейронных сетей. Мы поставили своей задачей к 2020 году обойти на два порядка тех, кто сегодня лидирует в этом сегменте рынка. Мы нацелены, прежде всего, на таких гиперскейлеров как Google, Facebook, Amazon и Alibaba
»

Удача Nvidia

Чтобы оценить преимущества решений, заложенных в NNP, нужно сказать несколько слов о том, как и почему GPU от Nvidia заняли свое нынешнее привилегированное положение. Прежде компания Nvidia, наряду с ATI (брэнд этой компании сохранился в названии процессоров AMD Radeon), существовала в роли одного из двух ведущих производителей процессоров для игр, то есть процессоров, ориентированных на графику. Ее положение заметно изменилось в 2006 году с началом производства процессоров серии GeForce 8. Первый GPU G80 и последующие модели сохраняли не только требуемую для анимации шейдерную архитектуру с поддержкой DirectX 10, OpenCL и Shader Model 4.0, но к тому же оказались способны поддерживать программно-аппаратную архитектуру параллельных вычислений CUDA (Compute Unified Device Architecture). Так появилось новая ветвь компьютинга – GPGPU или General Purpose GPU. GPU и CUDA позволяют значительно ускорить параллельные вычисления, поскольку GPU, в отличие от классических CPU, состоят из большего числа мелких и относительно простых ядер.

Сочетание GeForce 8 с CUDA открыло Nvidia возможность изменить свою репутацию производителя оборудования для игр на более престижную позицию поставщика оборудования для вычислений на основе GPU (GPU-accelerated computing). Поначалу ни о каком машинном обучении речи не было. На тот момент оно как массовое явление еще не существовало, но к моменту наступления радикальных изменений в области ИИ «яичко» оказалась готовым. Начиная с 2011 года Nvidia смогла распространить область своих интересов и на ИИ, где за неимением конкурентов стала единоличным лидером.

Дебют GPU в приложении к ИИ был воистину сенсационным. Случилось это так. Для первого широко известного проекта Google Brain, ставившего своей задачей научиться распознаванию кошек и людей в роликах на YouTube, за неимением ничего иного использовались классические серверы на базе CPU. Их потребовалось более 2 000, поэтому не сложно представить во что эксперимент обошелся. Он оказался успешным, но уникальным. Подобную роскошь мало кто кроме Google может себе позволить. Однако ситуация радикально изменилась, когда смешанная команда, состоявшая из исследователей Nvidia Research и Стэнфордского университета, смогла добилась того же результата буквально за копейки. Им потребовалось всего-то 12 GPU. Неожиданная демократизация платформы открыла качественно новые перспективы для развития машинного обучения. В итоге GPU Nvidia на годы стали стандартом де-факто.

Проект Google Brain ставил своей задачей научиться распознавать кошек и людей в роликах на YouTube. Для этого использовадись классические серверы на базе CPU


Отдавая должное, журнал Nature писал: «Первые реальные достижения в области машинного обучения оказались возможны благодаря графическим процессорам, они открыли возможность повысить скорость обучение сетей в 10—20 раз». А на пару лет позже, по данным самой Nvidia, опубликованным в 2016 году, скорость тренировки сетей возросла в 50 раз. В ближайшие годы она увеличится еще на порядок.

С неожиданно возникшей заинтересованностью ее продуктами со стороны ИИ компании Nvidia несказанно повезло. Благоприятное стечение обстоятельств поставило ее в удачную позицию, как говорят «нужный товар оказался в нужное время и в нужном месте». Не будь GPU от Nvidia, не было бы стремительного старта машинного обучения, который мы наблюдаем. Но, как всегда не обходится без «но», и более поздние GPU всего лишь адаптированы к задачам машинного обучения. В этом типе процессора изначально не учтена специфика ИИ-приложений. И нет ничего удивительного в том, что десятки компаний занялись разработкой специализированных процессоров для машинного обучения.

Успех Nvidia побудил к началу активной гонки за лидером. Вариантов проектируемых процессоров для ИИ множество, спектр решений распространяется от нейроморфных процессоров, моделирующих поведение мозга, до GPU, являющихся усовершенствованием классических CPU. Состав участников гонки чрезвычайно разнообразен, тут и признанные процессорные вендоры, и гиганты-гиперскейлеры, и многочисленные китайские компании. Вариаций решений множество, но самое важное заключается в необходимости решить традиционную проблему инженерного компромисса – выбрать такой подход, который был бы достаточно консервативен, чтобы быть реализуемым и экономически оправданным, но при этом достаточно революционным, чтобы обеспечить качественные и количественные преимущества. С этой проблемой Intel справляется удачно и явно занимает первое место среди преследователей.

Подход Intel

Корпорация Intel с ее возможностями определила для себя сразу три различающихся по степени радикальности направления. Первое, само близкое, обещающее самые быстрые результаты – это специализированный процессор для нейронных сетей Intel Nervana Neural Network Processor (NNP). Второе рассчитано на среднесрочную перспективу – это нейроморфный процессор Loihi, названный «первым чипом, способным к самообучению» (First-of-Its-Kind Self-Learning Chip Codenamed). Кстати, Лоихи — это подводный действующий вулкан, расположенный в 35 километрах к юго-востоку от острова Гавайи. И третье, рассчитанное на более отдаленную перспективу – это совместная с голландской компанией QuTech разработка квантового чипа.

Технология Lake Crest была приобретена Intel вместе с компанией Nervana

В программе развития технологий для ИИ, объявленной Intel, ключевое место занимает технология Lake Crest, приобретенная в 2016 году вместе с компанией Nervana. Удивительная пропорция - Intel с почти 100 тыс. занятых (и это при той степени автоматизации, которой отличаются полупроводниковые производства) и Nervana со штатом менее 50 человек и купленная за «смешные» $360 млн.

Аналитик из компании Moor Insights & Strategy охарактеризовал смысл сделки следующими словами:

«
Это отнюдь не попытка конкуренции напрямую с Nvidia, которая стала лидером в использовании GPU в области нейронных сетей и глубинного обучения. У Intel есть многоядерные процессоры Xeon Phi, есть FPGA, но нет GPU. Приобретение Nervana — это совершенно иной способ вхождения в рынок технологий для глубинного обучения, не копирующий идею применения универсальных GPU для этих целей, а ориентированный на использование нового типа сопроцессоров, созданных специально для такого рода задач. Для целей глубинного обучения требуется меньшая точность, чем та, которую обеспечивают универсальные GPU, поэтому специализированный процессор теоретически может оказаться производительнее
»

Спустя два года, в 2018 году, обещания 2016 года приобретают зримые черты. Навин Рао, основатель Nervana, а ныне руководитель Intel Artificial Intelligence Products Group, охарактеризовал Intel Nervana NNP следующим образом:

«
Это чип, созванный для машинного обучения. Нашей целью была такая архитектура, которая сочетала бы гибкость с максимальным использованием всех компонентов. Мы проектировали Intel Nervana NNP с нуля, будучи свободными от любых ограничений, связанных с существующими архитектурами, исключительно для целей ИИ. Особое внимание уделено двум основным типам операций на матрицах – умножениям и сверткам, которые, по своим запросам к процессору, существенно отличаются от традиционных нагрузок, их действия и перемещения данных сложно прогнозировать. По этой причине в Intel Nervana NNP нет стандартной иерархии стеков и по иному организовано управлением памятью, находящейся на самом чипе
»

Новый формат представления данных Flexpoint и пространственная архитектура Spatial Architectures избавили Intel Nervana NNP от двух генетических недостатков, присущих GPU и CPU, которые, во-первых, слишком точно считают, бесполезно затрачивая транзисторы и энергию, и, во-вторых, сохраняют верность схеме фон-Неймана с ее «бутылочным горлом» между процессором и памятью[2], что ограничивает параллелизм.

Локальная революция

Десятилетиями развитие микропроцессоров сопровождалась ростом разрядности. Самый первый из них Intel 4004 был всего лишь 4-разрядным, потом появились 8-ми, 16-ти, 32-х (single float или FP32) и 64-х (double float или FP64) разрядные процессоры. Ускорители для HPC, в том числе на базе GPU, имеют разрядность 128 и даже 256. Такая точность счета требуется для многих приложений, но отнюдь не для машинного обучения, во всяком случае в подавляющем большинстве случаев. Поэтому Nvidia был предложен специальный укороченный формат FP16 (half precision), его достаточно на этапе обучения сети (training), а на этапе продуктивной работы с данными (inference) можно вообще ограничиться 8-мью разрядами[3].

Сравнение плавающих форматов FP32 с FP16 и соответственно целочисленных Int16 c Int32 показывает, что более длинные форматы затрачивают на 2 порядка больше энергии и требуют на порядок больше площади на кристалле, чем более короткие. Чем короче используемое слово, тем большее число операций, выполняемых в единицу времени, тем меньше удельные затраты энергии и быстрее выполняются операции над матрицами. Следовательно для машинного обучения, где для повышения производительности от процессоров требуется высокий уровень параллелизма, предпочтительнее процессоры, поддерживающие короткие форматы. В новых моделях Nvidia поддерживаются и 16-ти и 8-разрядные форматы, и есть соответствующие версии CUDA.

Если появление укороченных форматов можно назвать эволюционным шагом, то новации, внедренные в NNP, есть ни что иное, как локальная революция. Во-первых, новый формат данных в дополнение к двум привычным с фиксированной и плавающей точкой. Во-вторых, выполнение команд не в последовательности, приписываемой счетчиком.

В процессорах Intel Nervana NNP разработчики пошли дальше. Они предложили принципиально новый формат, который назвали Flexpoint. Из названия следует, что это гибкий и адаптивный формат, он сделан таким для оптимизации работы нейронных сетей. Разобраться с его сущностью далеко не просто. Для тех, кому интересно, есть подробнейшая статья «Flexpoint: An Adaptive Numerical Format for Efficient Training of Deep Neural Networks». Более популярное изложение философии Flexpoint можно найти в статье «Flexpoint: numerical innovation underlying the Intel Nervana Neural Network Processor».

Предельно же упрощая, можно сказать, что Flexpoint – это качественно новый формат тензорного типа (tensor format). Он создан на основе исследований, выполненных ранее в Корнельском университете, в которых была предложена методика работы с форматами Autoflex. Flexpoint сочетает в себе одновременно свойства целочисленного формата и плавающего формата, что делает его более эффективным, чем, например, FP16. Для узкого круга специалистов, разбирающихся во внутримашинном представлении данных, где все давным-давно сложилось и десятилетиями ничего не меняется, появление нового формата - настоящая сенсация. Можно с уверенностью сказать, что людей с математическим складом ума заинтересует головоломный анализ сути Flexpoint. Пользователю достаточно поверить в его эффективность.

Формат Flexpoint в сочетании с Autoflex открывают возможность автоматической настройки процессора на конкретный формат представления данных, который для них оптимален. На рисунке показана блок-схема работы Autoflex. Она разделена на два этапа. На первом выбирается предпочтительный формат, а на втором – работа с этим форматом.

Блок-схема работы Autoflex

Преодоление "бутылочного горла фон Неймана"

Между мозгом и компьютером, помимо многих других, есть еще одно важнейшее различие. В биологическом мозге нет разделения на процессоры и память, а в компьютере процессор и память – это две основные составляющие схемы фон-Неймана, третья - устройства ввода/вывода. Наличие канала между процессорами и памятью накладывает непреодолимые ограничения на эффектность этой схемы, его называют «бутылочным горлом» фон-Неймана[4][5]. Для преодоления этого в современных процессорах есть многоуровневые кэш-памяти, которые призваны компенсировать описанное ограничение. Однако возможностей кэшей достаточно для счетных задач, но они не справляются с потребностями машинного обучения, где приходится иметь дело с существенно большими объемами данных. По этой причине у GPU, в которых реализована схема фон-Неймана, долговременной перспективы нет.

В понимании ограниченности процессоров, созданных по схеме фон-Неймана, с 90-х годов разрабатываются схемы, наподобие мозга, совмещающие на одном кристалле и память, и процессоры. Например, одним из первых решений этого типа был асинхронный массив простых процессоров AsAP (Asynchronous Array of Simple Processors). Процессор Intel Nervana NNP создан по одной из современных схем этого типа, которая называется Coarse-Grained Spatial Architectures, где небольшие процессорные элементы PE образуют пространственную (Spatial) структуру. Архитектура слишком сложна для описания в коротком обзоре, желающим разобраться можно порекомендовать несколько статей:

17 октября 2017 года, когда генеральный директор корпорации Intel Брайан Кржанич (Brian Krzanich) объявил о выпуске процессора Intel Nervana Neural Network Processor[6], он пообещал, что продукт трансформирует ИТ-отрасль и весь мир.

В Intel отметили, что новый процессор должен совершить революцию в области искусственного интеллекта (ИИ) в самых различных отраслях. С помощью Intel Nervana компании смогут разрабатывать совершенно новые классы ИИ-приложений, позволяющих обрабатывать еще больше данных и трансформирующих бизнес.

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



Примечания



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

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

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

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

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

  Oracle (8, 6)
  МЦСТ (11, 5)
  ИНЭУМ им. И.С. Брука (1, 3)
  AMD (6, 2)
  Байкал Электроникс (Baikal Electronics) (4, 2)
  Другие (106, 3)

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

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

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

  AMD (1, 2)
  МЦСТ (1, 1)
  Байкал Электроникс (Baikal Electronics) (1, 1)
  Oracle (1, 1)
  Nvidia (Нвидиа) (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)
  Другие 0
Данные не найдены

  Эльбрус 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 Quadro - 1 (1, 0)
  Oracle SPARC - 1 (1, 0)
  Baikal-Т1 - 1 (1, 0)
  Эльбрус-4С - 1 (1, 0)
  Другие 0