?

Log in

No account? Create an account
Рождение крупного игрока в аппаратном AI, который ускоряет TensorFlow и конкурирует с NVidia - Юрий Панчул [entries|archive|friends|userinfo]
Money can buy bandwidth. Latency requires bribing God.

[ website | My Website ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Рождение крупного игрока в аппаратном AI, который ускоряет TensorFlow и конкурирует с NVidia [Jun. 15th, 2018|12:29 am]
Yuri Panchul


Завтра будут официальные пресс-релизы о слиянии старожила Silicon Valley, компании MIPS, с молодой AI компанией Wave Computing. Информация об этом событии просочилась в СМИ вчера, и вскоре CNet, Forbes, EE Times и куча хайтек-сайтов вышла со статьями об этом событии. Поэтому сегодня Derek Meyer, президент объединенной компании (на фото снизу справа), сказал "ладно, распостраняйте инфо среди друзей" и я решил написать пару слов о технологиях и людях, связанных с этим событием.

Главный инвестор в MIPS и Wave - миллиардер Dado Banatao (на фото снизу в центре слева), который еще в 1980-х основал компанию Chips & Technoilogies, которая делала чипсеты для ранних персоналок. В Wave+MIPS есть и другие знаменитости, например Стивен Джонсон (на фото справа вверху), автор самого популярного C-компилятора начала 1980-х годов. MIPS хорошо известен и в России. В руках дизайнерши Смрити (на фото слева) плата из Зеленограда, где находятся лицензиаты MIPS Элвис-НеоТек и Байкал Электроникс.

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

Объединенная компания создаст чип, который состоит из смеси таких вычислительных блоков и многопоточных ядер MIPS. Сейчас Wave продает свою технологию в виде ящика для дата-центров, для вычислений нейронных сетей в облаке. Следующие чипы будут использоваться во встроенных устройствах.


Нейронные сети традиционно представляют в виде dataflow-графа. Это граф, в узлах которого находятся константы, переменные и арифметические операции над скалярами, векторами и матрицами:



Компания Google создала библиотеку TensorFlow, которая является API-ем для строительства таких графов и запуска вычислений на сетке - как обычного inference, так и тренировки с помощью backpropfgftion. Этот API чаще всего используется вместе с питоном, код на котором выглядит вот так:



При этом питон в примере выше использует переопределение арифметических операций, которые на самом деле не вычисляют, а строят граф в памяти. На C код для строительства графа в TensorFlow выглядит так:



В Гугле у меня есть знакомый украинский программист Михаил Симбирский, который использует TensorFlow на питоне. Гугловские нейросети используются например для анализа поведения пользователей с целью таргетирования им рекламы. Некоторые вычисления для тренировки нейросетей в гугле занимают дни и недели, несмотря на то, что гуглы используют NVidia GPU и собственные гугловские акселераторы. Это дело непростое, так как передача данных между процессорами и GPU отнимает много времени:



Одна из проблем конструкции из процессоров и GPU заключается в том, что GPU подолгу простаивает:



Другая проблема - недостаточная пропускная способность интерфейсов к памяти. Wave в комбинации с MIPS собирается решить и одну и другую проблему. В новых изделиях не процессор будет использовать акселератор как сопроцессор, а они будут работать вместе.

Для этого ядра MIPS будут модифицироваться, чтобы в конечном итоге создать стандартную аппаратную платформу для AI. Преимущество ядер MIPS I6400/I6500 ("Самурай/Даймио") и MIPS I7200 (которое лицензировал MediaTek) - это многопоточность. Многопоточности у ARM нет. Вот как выглядит многопоточный конвейер у ядра MIPS I6400:



А теперь внимание вопрос к самым сообразительным комментаторам: какое, по-вашему, преимущество дает многопоточность для комбинации из CPU и аппаратного акселератора? В частности акселератора от Wave, который является вариантом так называемого CGRA - Coarse Grained Reconfigurable Array - крупнозернистых реконфигурируемых массивов.

Если вы знакомы с FPGA (Field Programmable Gate Array) / ПЛИС (Программируемые Логические Интегральные Схемы), то идея CGRA в чем-то похожа, но они работают не с отдельными битами, а с целыми шинами по 8-64 бита и в каждой ячейке есть ALU, а для нескольких ячеек - арифметический сопроцессор. Вот так выглядит все иерархия:



А вот так выглядит одна реконфигурируемая ячейка. У нее есть небольшой буфер с инструкциями, которые напоминают простые команды 8-битных аккумуляторных микроконтроллеров, например 6502 который стоял в первых компьютерах Apple. При этом, процессоры в древних Apple работали с частотой пару мегагерц, а ячейки в CGRA работают с частотой несколько гигагерц. Кроме этого в Apple процессор был один, а тут таких ячеек 16 тысяч:




Кристалл у Wave получается понятно огромный, поэтому приходится использовать локально-синхронные схемы с тактовым сигналом на каждую группу из ячеек. Но самая большая проблема - это не аппаратная, а программная. Граф для вычисления сетки приходится раскидывать на эту кучу устройств с точным знанием, в каком цикле будет что вычисляться. Это называется static scheduling. Поэтому Wave нанял кучу компиляторщиков, включая известнейшего зубра - Стивена Джонсона, который стоял у истоков вместе с Керниганом и Ричи. Вот что писал про Стивена Джонсона Деннис Ритчи:


В 1980-е Си быстро набирал популярность и компиляторы стали доступны практически на каждой машине и операционной системе; в частности, он стал популярным как язык программирования для персональных компьютеров, причем одновременно как для разработчиков коммерческого программного обеспечения для этих машин, так и для рядовых пользователей, увлекающихся программированием. В начале десятилетия практически каждый компилятор был основан на pcc Джонсона; к 1985 было уже много компиляторов, созданных независимыми разработчиками.


Когда мне было 18 лет (в 1988 году) и я был студентом МФТИ, Стивен Джонсон был моим Богом. Я участвовал в разработке двух компиляторов на основе его Portable C Compiler. Один компилятор был для Электроники СС БИС, "Красного Крея", советского аналога векторного суперкомпьютера Cray-1. Второй компилятор был для Орбиты 20-700, встроенного компьютера в советских истребителях МиГ-29 и других начала 1980-х годов.

Поэтому я просто обязан был сфотографироваться с Стивеном Джонсоном. Он рассказал мне про другие тулы, которые он делал как для Unix, так и для автоматизации проектирования, автоматического профилирования и т.д.



И разумеется сфотографировался и с инвестором во все это дело Дадо Банатао. Давным-давно Дадо Банатао создал чипсет для первых писишек. Он отлаживал драйверы вместе с Балмером. "Иногда в комнату заходил Билл Гейтс, который нам мешал" - говорит Дадо Банатао. Теперь у него, согласно интернету, пять миллиардов долларов. Он самый известный хай-тек филлипинец, создает центр AI и ведет другие образовательные программы на своей родине.



Больше всего денег Дадо Банатао сделал на компании Marvell. Вот ее офис в Санта-Кларе в лучах вечернего солнца:



В Wave работает много людей которые раньше работали в MIPS. А некоторые из MIPS было в Silicon Graphics, так как MIPS был частью Silicon Graphics в 1990-е годы. В те времена процессоры MIPS стояли в графических станциях, которые использовались в Голливуде для съемок первых реалистичных графических фильмов типа "Парк Юрского Периода". Вот эти графические станции вместе с сибирской девушкой Ириной в Музее Истории Компьютеров в Маунтин-Вью, Калифорния:



В конце сегодняшнего парти в честь завтрашнего официального объявления и вчерашних публикаций в прессе состоялось поедание тортов и распивание шампанского:




Завтра будет много работы - от Verilog RTL (моих прямых обязанностей) до обсуждения архитектуры, приложений и даже разговоров с data scientist-ами (они себя ощущают из другой Вселенной, причем это взаимно и с электронщиками, и с компиляторщиками).


Какие области искусcтвенного интеллекта вас интересуют больше всего?

Приложения для распознавания изображений
11(18.0%)
Приложения для анализа текста
3(4.9%)
Приложения для самоуправляемых автомобилей
4(6.6%)
Математика для AI
7(11.5%)
Написание библиотек AI-алгоритмов
4(6.6%)
Ускорение AI алгоритмов с помощью GPU
6(9.8%)
Компиляторы из алгоритмов в dataflow граф
3(4.9%)
Компиляторы из dataflow граф в конфигурацию CGRA
5(8.2%)
Архитектура систем из процессоров и ускорителей
7(11.5%)
Создание блоков ускорителей на уровне регистровых передач
3(4.9%)
Физика очень больших чипов для AI
7(11.5%)
Другое (рассказать в комментариях)
1(1.6%)
LinkReply

Comments:
[User Picture]From: balmerdx
2018-06-15 07:35 am (UTC)
Круто! Но цифры, нам нужны цифры. Количество операций, энергопотребление, ограничения на локальность данных в памяти.
(Reply) (Thread)
[User Picture]From: panchul
2018-06-15 07:42 am (UTC)
По текущему чипу см. https://wavecomp.ai/dataflow-whitepaper
По будущему - в процессе
(Reply) (Parent) (Thread)
[User Picture]From: abbat81
2018-06-15 07:51 am (UTC)
очередной бред)))
(Reply) (Thread)
[User Picture]From: exshvonder
2018-06-15 08:24 am (UTC)
Слишком сложно для вас?
(Reply) (Parent) (Thread)
[User Picture]From: kincajou
2018-06-15 08:01 am (UTC)
т.е. программа на пайтоне является своего рода компилятором, а не непосредственно вычисляющим кодом? Т.е. на выходе там - код для некоего специального железа, которое уже и считает?
(Reply) (Thread)
[User Picture]From: panchul
2018-06-15 08:07 am (UTC)
Программа на питоне строет другую программу (в виде графа), причем вызывая для этого строительства программу на си. После этого третья программа, компилятор, превращает базу данных (граф) построенный двумя первыми программами, в конфигурационный файл, который меняет функцию ячеек устройства (загружая им мини-программы в буфера инструкций).
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: ardelfi
2018-06-15 09:23 am (UTC)
Затрудняюсь с выбором. Либо "Компиляторы из алгоритмов в dataflow граф + Компиляторы из dataflow граф в конфигурацию CGRA", либо "Создание блоков ускорителей на уровне регистровых передач", а на самом деле интересует вот что. Есть теория, продуктом которой (удалось сделать так что) получается (вручную) весьма и весьма своеобразный VHDL, в котором нет даже std_logic, но без видимых препятствий для синтеза в огромную кучу конечных автоматов. В целом всё это решает одну важнейшую задачу робототехники, но это страшное слово лучше не говорить. :) Вопрос: как вообще старшие товарищи подходят к решению задач автоматического (рука устанет) синтеза из алгоритмов в датафлоу и потом в конфигурацию? Хочу отметить что никакого софта в результате не возникает: сугубо твёрдое, светлое и чистое, вроде прошивки для FPGA.

Edited at 2018-06-15 09:56 am (UTC)
(Reply) (Thread)
[User Picture]From: panchul
2018-06-15 04:15 pm (UTC)
*** как вообще старшие товарищи подходят к решению задач автоматического (рука устанет) синтеза из алгоритмов в датафлоу и потом в конфигурацию ***

У компиляторщиков Wave есть внутренний тул для mapping-а алгоритмов в dataflow, но он недостаточно готов для внешних клиентов, поэтому внешним клиентам продают использование Tensorflow.
(Reply) (Parent) (Thread)
[User Picture]From: Дмитрий Васильев
2018-06-15 03:21 pm (UTC)
Как я пропустил что MIPS тихо развелся с Imagination?
(Reply) (Thread)
[User Picture]From: panchul
2018-06-15 04:18 pm (UTC)
Это была длинная история, в которой главным участником был Apple (который кинул Imagination в апреле 2017 года) и Дональд Трамп (который наложил вето на сделку Lattice/китайцы, из-за чего при сделке Imagination/китайцы американский MIPS решили из сделки отделить, во избежание подобного вето).
(Reply) (Parent) (Thread)
[User Picture]From: alexey_zharikov
2018-06-15 10:58 pm (UTC)
Похоже я не следил за сюжетом. А что случилось с Imagination Technologies, которая уже купила MIPS? Почему уже купленный MIPS опять покупают?

У вас случайно в связи с покупкой специалистов по EDA не нанимают? Я по такому случаю могу даже Верилог выучить.

Edited at 2018-06-15 11:01 pm (UTC)
(Reply) (Thread)
[User Picture]From: panchul
2018-06-15 11:21 pm (UTC)
*** Похоже я не следил за сюжетом. А что случилось с Imagination Technologies, которая уже купила MIPS? Почему уже купленный MIPS опять покупают? ***

Там была целая эпопея, даже сериал, с Apple и Трампом в роли главных злодеев.

*** У вас случайно в связи с покупкой специалистов по EDA не нанимают? Я по такому случаю могу даже Верилог выучить. ***

Нанимают, но я не знаю, куда ты можешь вписаться. Можешь почитать список позиций на сайте Wave.
(Reply) (Parent) (Thread)
[User Picture]From: zack_broflovski
2018-06-16 01:16 am (UTC)
Пинчул, рассказал очередной анекдот про MIPS.
Не смеши публику,хотя в ЖЖ вряд ли поймут, что ты вешаешь им лапшу на уши :-)))
Не все знают, что MIPS это фирмрчка на уровне кружка юнных техников принадлежащая Пинчулу :-)
А об AI Пинчул имеет весьма отдаленное понимание, поэтому и пишет эту херню.

Edited at 2018-06-16 01:20 am (UTC)
(Reply) (Thread)
[User Picture]From: suvorow_
2018-06-16 10:29 am (UTC)
Юра, а тебе не кажется, что MIPS немножечко превратилась в чемодан без ручки, и её приютили из жалости?
(Reply) (Thread)
[User Picture]From: panchul
2018-06-16 02:44 pm (UTC)
В данном случае нет. У нас тут очень безжалостное общество. Совместный проект с смесью их CGRA от Wave и ядер MIPS I6500 планировали с осени. Из-за жалости такие вещи не делают - могли бы просто ядра ARM лицензировать или RISC-V взять.
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: stolbvoy_d
2018-06-17 02:34 am (UTC)
Меня интересует моделирование этических систем.
(Reply) (Thread)
[User Picture]From: Илья Евсеев
2018-07-25 10:59 pm (UTC)
> Он отлаживал драйверы вместе с Балмером.

Балмер отлаживал драйверы. Во как.

"Steve Ballmer joined Microsoft on June 11, 1980, and became Microsoft's 30th employee, the first business manager hired by Gates."
(Reply) (Thread)
[User Picture]From: panchul
2018-07-26 01:36 am (UTC)
Я просто передал слова Дадо Банатао как я их запомнил.

Возможно Дадо Банатао не отлаживал драйверы, а делал бизнес и высказал то что он сказал в форме художественного преувеличения, а возможно что Балмер отлаживал драйверы в начала 1980-х. В стартапах (а Микрософт тогда был стартапом) структура менеджмента и роли не такие жесткие, как в установившихся компаниях.
(Reply) (Parent) (Thread) (Expand)