?

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: art_f
2018-06-15 01:47 pm (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)
[User Picture]From: kincajou
2018-06-15 08:23 am (UTC)
теперь всё понятно

я втайне надеялся, что кто-то пытается осуществлять высокопроизводительные вычисления на пайтоне, но я снова не угадал
(Reply) (Parent) (Thread)
[User Picture]From: techwork
2018-07-05 03:55 pm (UTC)
Это не возможно в принципе - начнём с того что это интерпретируемый язык, продолжим тем что динамическая типизация , завершим тем что многие команды это по сути контейнеры с большой инкапсуляцией, контейнер в контейнере. Ну и вообще ООП плохо приспособлено именно под экстремальные режимы. ООП просто упрощает разработку. Нормальные экстремальные системы должны писаться на С ибо процедурный и со строгой типизацией. Да нуторно, да долго и да не прощает ошибок - но зато накладные ничтожны. Тем более что конкретно по теме поста не такие уж и большие обьёмы кода требуются для создания рабочей нейросети. Там главное не запутаться в определении вводных и обучение обучение обучение - что на столько повышает требования к производительности что даже при тех вычислялка что есть требуется строгая оптимизация кода. Чуть ли не куски на ASM
(Reply) (Parent) (Thread)
[User Picture]From: kincajou
2018-07-05 04:02 pm (UTC)
я в курсе, что это глупая затея. Но я смотрю на то, что щам мир весь строится на основе глупых затей - и мне страшно.
(Reply) (Parent) (Thread)
[User Picture]From: techwork
2018-07-05 04:44 pm (UTC)
Только в общественной жизни. И в перделках для ведроида и всяких порносетей типа твиттера и фейсбука.
Серьёзные вещи как делались по уму так и делаются достаточно посмотреть спрос на С программистов. Не коекак кодеров а именно программистов знающих математику.
Правда там как раз из пост СССР народа ничтожно мало. Больше всего скандинавов и индусов, ну и немцы.
У других математическая школа сильно деградировала - ну или они строят коммунизм в закрытом НИИ под Шанхаем.
(Reply) (Parent) (Thread)
[User Picture]From: craftwr
2018-06-15 08:40 am (UTC)
Мдя, чего так сложно-то? Разучились строить графы на месте и сразу писать куда надо ограничиваясь одной функцией?

Это не ai это фигня.
(Reply) (Parent) (Thread)
[User Picture]From: techwork
2018-07-05 03:56 pm (UTC)
Это математика - её учить надо и так что не каждый поймёт, а не просто научиться кодить и иметь лапу для пристройки.
(Reply) (Parent) (Thread)
[User Picture]From: craftwr
2018-07-05 05:42 pm (UTC)
Упокойся, все знают, что ты тупой.

Программирование без математики не существует. Иди жуй портянку.
(Reply) (Parent) (Thread)
[User Picture]From: vitaly_nasennik
2018-06-15 08:41 am (UTC)
Именно так. Если интересуют подробности, как устроена TensorFlow, при чём тут питон, и на кой ляд для этой задачи нужны векторные вычислители, то рекомендую отличную обзорную книжку «Глубокое обучение. Погружение в мир нейронных сетей» Николенко, Кадурин, Архангельская. (В интернетах уже есть в электронном виде.)
(Reply) (Parent) (Thread)
[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)
[User Picture]From: suvorow_
2018-06-16 03:36 pm (UTC)
Ну, не из жалости, но не из технических или экономических соображений. Что-то ядра МИПС всё меньше и меньше кого-то интересуют.
(Reply) (Parent) (Thread)
[User Picture]From: panchul
2018-06-16 03:48 pm (UTC)
Если нужна суровая кастомизация под заказчика, интересуют. Один пример - Mediatek и MIPS I7200 (я сейчас работаю в этом проекте). Это легкое dual-issue ядро с архитектурой nanoMIPS (которая лучше ARM и RISC/V по плотности кода) и многопоточностью (которой у ядер от ARM нет и которая им нужна). Mediatek использует это для массового чипа для мобильны модемов. Как ты понимаешь, в этом случае возможность кастомизированного вопрощения своих необычных требований пересиливает общую популярность у других клиентов.

Wave - тот же самый случай. Никто не станет тратить десятки миллионов долларов "из-за жалости", особенно если за существенно меньшие деньги можно взять off the shelf 64-битный ARM или (если нужен low-end housekeeping процессор) RISC/V.

Помимо многопоточности (которая полезна для взаимодействия CPU и CGRA), у MIPS есть такая фишка как официальная сертификация MIPS I6500-F в европейской автомобильной промышленности и использование японским лидером автомобильной электроники Denso. Это дает Wave вход на рынок автомобильной электроники.
(Reply) (Parent) (Thread)
[User Picture]From: techwork
2018-07-05 04:31 pm (UTC)
Тут немного две разных проблемы смешаны.
Ну и надо понимать Юрий никогда не скажет против компании.
А по факту .
1. Инвестор купил MIPS не потому что это лучший вариант а потому что это то что продали. А на ускорителях для нейросетей сейчас все пытаются заработать. Почему не RISK-V ? а потому что за ним нет команды которая будет допиливать его под нужды заказчика. AS IS
2. Рынок MIPS процессоров действительно падает. Denso для Toyota пока покупает но после того как Softbank купил ARM им всё меньше интересен MIPS - держатся только на наследуемом для TRON . Но всё дело в том что японцы от TRON отходят в ЭБУ уже стоят в основном АРМ в системах раcпознования дорожной обстановки MIPS ( собственно откуда и идея у инвестора купить MIPS) потому что софт там от одной конторы под крылом Luxsoft т.е. ФСБ РФ стоит. Спасибо Уфимскому Авиационному Институту и Павлову. Оно конечно же под MIPS по всем понятной причине.
Mediatek купила ядра MIPS и дала Юрию работу потому что альтернатив нет. Ядра для нейросетей есть у Интел, есть у АМД есть у nVidia, и у IBM Sony Toshiba на троих никто из них не продаст их для встройки в SoC. Есть проект у Qualcomm, Samsung и Imagination но это проекты. Risc-V тоже можно использовать но AS IS а это время и нужен штат разработчиков для адаптации. Т.е. тот же MIPS и все равно нужно нанимать специалистов желательно из MIPS . Есть ещё SW26010 но это оборонка китайская
В итоге при всём богатстве выбора у китайцев нет другого варианта. Да они понимают что он не самый лучший, но у других или конь не валялся или шлют лесом.
3. Архитектурно MIPS без всяких суперскаляров, классический весьма неплох для нейросетей хотя и уступает VLIW и TRIPS ну и возможно ZISC Опять таки в предельном развитии. Так что инвестор хоть и несёт риски, но если сможет выжать всё что сможет из MIPS Tec сейчас то он будет в плюсе. Что будет потом когда все обзаведутся TRIPS это уже не важно. В ИТ главное снять сливки сейчас - пока окончательно индустрия не рухнула. А это уже светит. Итеративная маркетинговая стратегия заходит в тупик у неё несколько лет осталось. Дальше компьютер и десять и двацать лет спустя будет всё тем же. И софт уже не получится писать коекак и при этом снимать со всего этого 300-500 долларов с изделия. Телевизор вспоминаем.
Да и конечно сравнение с ARM общих задач ядрами не корректное. Это не специализированные ядра. Тут надо сравнивать с Mali и Trillium

Edited at 2018-07-05 04:33 pm (UTC)
(Reply) (Parent) (Thread)
[User Picture]From: stolbvoy_d
2018-06-17 02:34 am (UTC)
Меня интересует моделирование этических систем.
(Reply) (Thread)