?

Log in

No account? Create an account
Десятиклассница из Сибири хочет стать проектировщицей процессоров. А может и нейроускорителей? - Юрий Панчул [entries|archive|friends|userinfo]
Money can buy bandwidth. Latency requires bribing God.

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

Десятиклассница из Сибири хочет стать проектировщицей процессоров. А может и нейроускорителей? [Dec. 7th, 2018|10:25 am]
Yuri Panchul
Вчера мне пришло письмо от десятиклассницы из Сибири, которая хочет стать разработчицей микропроцессоров. Она уже получила некоторый результат в этой области - добавила инструкцию умножения в простейший процессор schoolMIPS, синтезировала его для ПЛИС Intel FPGA MAX10, определила максимальную частоту и повышение производительности простых программ. Все это она сначала делала в деревне Бурмистрово Новосибирской Области, а потом на конференции в Томске.

Теперь Даша Криворучко (так зовут десятиклассницу) переехала жить в московский интернат и спрашивает у меня, чего бы ей еще спроектировать. Я думаю, что на этом этапе карьеры ей стоит спроектировать аппаратный ускоритель нейросетей на основе систолического массива для умножения матриц. Использовать язык описания аппаратуры Verilog и ПЛИС Intel FPGA, но не дешевенький MAX10, а что-нибудь подороже, чтобы вместить большой систолический массив.

После этого сравнить производительность аппаратного решения с программой, работающей на процессоре schoolMIPS, а также с программой на Питоне, работающей на десктопном компьютере. В качестве тестового примера использовать распознавание цифр с небольшой матрицы.




Собственно все части этого упражнения уже разработаны разными людьми, но вся фишка в том, чтобы скомпоновать это в единое задокументированное упражнение, которое можно потом использовать как основу для онлайн курса и для практических олимпиад:

1) В онлайн-курсе такого рода (проектирование хардвера на уровне регистровых передач + нейросети) заинтересовано eNano, образовательное отделение РОСНАНО, которое в прошлом организовало семинары Чарльза Данчека по проектированию современной электроники (маршрут RTL-to-GDSII) для студентов и сейчас работает над облегченным курсом для продвинутых школьников. Вот мы с Чарльзом у их офиса:



2) В базе для олимпиад может быть заинтересованы Олимпиады НТИ, с которыми я затронул этот вопрос пару недель назад в Москве. К такому примеру участники олимпиад могли бы добавлять хардвер для разных функций активации. Вот коллеги из Олимпиад НТИ:



Так что если Даша это разработает, она теоретически может внедрить свой хорошо описанный акселератор и в РОСНАНО, и в Олимпиады НТИ. Я думаю, для администрации ее школы это было бы выгодно - можно было бы по телевизору показать или вообще на конкурс Intel FPGA отправить. Вот пара россиян из Санкт-Петербурга на финале конкурса Intel FPGA в Санта-Клара, Калифорния:



Теперь поговорим про техническую сторону проекта. Идея акселератора систолического массива описана в статье, которую перевел редактор Хабра Вячеслав Голованов @SLY_G Почему TPU так хорошо подходят для глубинного обучения?

Так выглядит dataflow граф нейросети для простого распознавания:



Примитивный вычислительный элемент, который выполняет умножения и сложения:



Сильно конвейеризованная структура из таких элементов, это систолический массив для умножения матриц и есть:



В интернете есть куча кода на Verilog и VHDL с реализацией систолического массива, например код вот
под этим блог-постом
:




Замечу, что этот код не оптимизирован и вообще корявый (и даже непрофессионально написан - исходник в посте использует блокирующие присваивания в @ (posedge clk) - я это поправил). Даша могла бы например использовать конструкции Verilog generate для более элегантного кода.

Кроме двух экстремальных реализаций нейросети (на процессоре и на систолическом массиве) Даша могла бы рассмотреть и другие варианты, которые быстрее чем процессор, но не такие прожорливые на операции умножение как систолический массив. Правда это уже скорее не для школьников, а для студентов.

Один вариант - это выполняющее устройство с большим количеством параллельно работающих функциональных блоков, как в Out-of-Order процессоре:



Другой вариант - это так называемый Coarse Grained Reconfigurable Array - матрица из квази-процессорных элементов, у каждого из которых есть небольшая программа. Эти процессорные элементы идейно похожи на ячейки ПЛИС/FPGA, но оперируют не с отдельными сигналами, а с группами бит / числами на шинах и в регистрах - см. Прямой репортаж с рождения крупного игрока в аппаратном AI, который ускоряет TensorFlow и конкурирует с NVidia".

Теперь собственно исходное письмо от Даши:

Доброго времени суток, Юрий.

Я в 2017 году в ЛШЮПе училась в у вас в мастерской и в октябре 2017 года участвовала в конференции в Томске в октябре того же года с работой посвящённой встраиванию блока умножения в процессор SchooolMIPS.

Я бы сейчас хотела продолжить эту работу. В данный момент мне удалось получить разрешение в школе взять эту тему в качестве небольшой курсовой. У вас есть возможность помочь мне с продолжением данной работы?

P.S. Поскольку работа делается в определенном формате, требуется написание введения и литературного обзора темы. Посоветуйте, пожалуйста, источники, из которых можно взять информацию по истории развития данной темы, по философиям архитектур и прочее, если у вас есть такие ресурсы на примете.

Плюсом, в данный момент я проживаю в Москве в школе-интернате, возможно, будет проще осуществлять взаимодействие.

С уважением,

Дарья Криворучко.
Даша учила Verilog и проектирование на уровне регистровых передач с помощью меня и книжки Дэвида Харриса и Сары Харрис "Цифровая схемотехника и архитектура компьютера". Однако если вы школьник/школьница и хотите понять основные концепции ну на совсем простом уровне, то для вас издательство ДМК-Пресс выпустило русский перевод японской манги 2013 года про цифровые схемы, созданной Амано Хидэхару и Мэгуро Кодзи. Несмотря на несерьезную форму изложения, книжка корректно вводит логические элементы и D-триггеры, после чего привязывает это к ПЛИС-ам:



Вот как выглядела Летняя Школа Юных Программистов в Новосибирской области, где Даша выучила Verilog, ПЛИС, методологию разработки на уровне регистровых передач (Register Transfer Level - RTL):





А вот выступление Даши на конференции в Томске вместе с другим десятиклассником, Арсением Чегодаевым:

https://youtu.be/oqUf5yReDkM
После выступления Даша со мной и с Станиславом Жельнио @sparf, главным создателем учебного процессорного ядра schoolMIPS для реализации на ПЛИС:



Проект schoolMIPS находится с документацией на https://github.com/MIPSfpga/schoolMIPS. В простейшей конфигурации этого учебного процессорного ядра всего 300 строк на Verilog, в то время как в промышленном встроенном ядре среднего класса примерно 300 тысяч строк. Тем не менее, Даша смогла почувствовать, как выглядит работа проектировшиков в индустрии, которые точно так же меняют декодер и выполняющее устройство, когда добавляют в процессор новую инструкцию:



В заключение приведем фотографии декана Самарского Университета Ильи Кудрявцева, который заинтересован в создании летней школы и олимпиад с процессорами на ПЛИС для будущих абитуриетов:



И фотографию сотрудников зеленоградского МИЭТ, которые уже планируют такую летнюю школу в следуюшем году:



И в одном, и в другом месте должны хорошо пойти как материалы от РОСНАНО, так и возможные материалы Олимпиады НТИ, а также наработки, которые сделаны в последние пару лет во внедрении ПЛИС и микроархитектуры в программу университетов ВШЭ МИЭМ, МГУ и казанского Иннополиса.


Как вы готовы помогать таким начинаниям?

Я готов писать материалы для онлайн-курсов
2(9.1%)
Я готов преподавать в летних школах
7(31.8%)
Я готов помогать проводить олимпиады
4(18.2%)
Я готов снабжать российских школьников FPGA платами
0(0.0%)
А если российские и украинские школьники сделают гиганских роботов, которые поработят мир?
9(40.9%)
LinkReply

Comments:
From: lugermaxotto
2018-12-07 06:40 pm (UTC)
Ну, у меня студент возится с датчиками и обработкой на лету сигналов них. Он задумал какую- то хитрую руку- ногу робота и в качестве устройства работы с датчиками и исполнительными механизмами пользуется Arty от Digilent (я ему выделил). Косвенным результатом его деятельности является то, что он начал работать в местной корпорации в направлении разработки библиотек для вычислений на ПЛИС.
Правда, корпоративный стандарт- Xilinx и VHDL :)
(Reply) (Thread)
[User Picture]From: panchul
2018-12-07 06:43 pm (UTC)
Ну хорошо!
(Reply) (Parent) (Thread)
[User Picture]From: gubervas
2018-12-07 09:09 pm (UTC)
Интересные деучёнки !
Степень вдувабельности - высокая. !
(Reply) (Thread)
[User Picture]From: tretiy3
2018-12-07 10:37 pm (UTC)
Юрий, это первый опрос у вас, в котором, мне показалось, нечего выбрать. увы. вы, похоже, забыли добавить "из за бугра плюете?". не настаиваю на такой формулировке, конечно, но нужно же давать людям альтернативный выбор. вариант с гигантскими роботами не оч

Edited at 2018-12-07 10:39 pm (UTC)
(Reply) (Thread)
[User Picture]From: tretiy3
2018-12-07 10:43 pm (UTC)
изменил коммент после публикации: поправил знаки препинания
(Reply) (Parent) (Thread)
[User Picture]From: panchul
2018-12-07 11:29 pm (UTC)
Да, бугр надо было! Был сонный, забыл!
(Reply) (Parent) (Thread)
[User Picture]From: b0p0h0k
2018-12-07 11:47 pm (UTC)
> ...в деревне Бурмистрово Новосибирской Области

О! А я бывал в той деревне лет 27 назад.
(Reply) (Thread)
[User Picture]From: move2winnipeg
2018-12-08 12:02 am (UTC)
Хорошая фотка, открытые лица. Не понимаю, чего народу на хабре не понравилось.
(Reply) (Thread)
[User Picture]From: musli_o_raznom
2018-12-08 04:14 am (UTC)
А им чего - не понравилось?!
Вот снобы...
Панчул - форева!!!! 😘
Сибирь - чемпион!!
(Reply) (Parent) (Thread)
[User Picture]From: move2winnipeg
2018-12-08 04:24 am (UTC)
Им бы лишь бы обосрать! :)
На самом деле, хвалили больше.
(Reply) (Parent) (Thread)
[User Picture]From: musli_o_raznom
2018-12-08 05:20 am (UTC)
//хвалили больше.

- вот в это верю )
Это ж не ФБ пугать астральными проекциями :-D

(Reply) (Parent) (Thread)
[User Picture]From: move2winnipeg
2018-12-08 07:23 pm (UTC)
А что там в фейсбуке с проекциями? Я знаю, что если взять проекции по ейгенвекторам, то получится анализ главных компонентов. Но это вряд ли об этом :)
(Reply) (Parent) (Thread)
[User Picture]From: musli_o_raznom
2018-12-09 03:02 am (UTC)
Это я про наш разговор на днях )


Первое, что я сделал, - это предупредил руководство Facebook о последствиях такого действия.
Но, если мои предупреждения не примут во внимание и не вернут мои материалы в сеть, я начну воздействовать на руководство с целью подчинения моему единоначалию.

Как это будет выглядеть?

Как я уже говорил, каждый человек соединен со мной неразрывной связью – энергоинформационным каналом.
Увеличивая напряжение этого канала и вводя в него необходимую информацию, я, Святослав Мазур, могу любого человека заставить подчиниться моей воли, где бы он не находился.

(Reply) (Parent) (Thread)
[User Picture]From: techwork
2018-12-08 01:28 am (UTC)
Я могу из хлама купленного через инет собрать литак который грохнет всех этих школьнегов.

Из сделанного в Китае. Из сделанного в РФ я могу только представить сферический наноболт. Ну а что школьники хотят понятно - либо свалить и богато жить в нормальной стране , либо тут стать привилегированными агентами какой нибудь спецслужбы и жить хорошо.

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

Куда интереснее другое - смотреть как все сейчас ринулись в машинное зрение, распознавание образов и псевдоАИ.

Ну раз с IoT не вышло и извращуг желающих что бы его куртка могла его убить по интернету не нашлось :).

При этом ведь если честно - алгоритмы то очень древние, мощностей на обучение уже десять лет назад хватало. Прикольно что с 2007 года скорость камней возросла только на 250% а за такой же предыдущий период с 1996 на 15000%. Все изображают активный бег на месте пока FinFET не стукнулся об плинтус - а до того одна итерация. Сейчас настоящие 12нм в серии потом ITRS 10/9 которые назовут 7 нм. А потом всё сначала GAAFET что уже скажется на себестоимости чипов - она вырастет в три раза и не будет падать потом когда стабилизируется. А на старте в 6 раз. Плюс долговечность их под вопросом.

И интересно тут то что и ваша организация тоже в этой лихорадке участвует.

А ведь она почти что криптовалютная лихорадка - конечно не такой тюльпанный график, но .... И как сдохла криптовалюта так и тут многих ждёт обломс. Хорошо если ваш начальник успеет скинуть кому Wave на пике.

Рынок по сути не такой большой как рисуется. Так как системы разпознования образов есть уже во многих антиаварийных системах тех же автомобилей. Особо внедрять уже как бы и некуда. Всё висит на хорошо обученном ПО. А тут лидер очевиден - у кого самые адские ресурсы для обучения машинных систем ? Как и ясно какая платформа победит.

Это вообще то nVidia (но они просядут сейчас после краха криптовалют и конца рождественских продаж, если не начнут манипулировать на рынке, и их может быть купит Apple) и AMD Radeon OpenCL и Intel. Т.е. те платформы где самые огромные вычислительные мощности и они имеют очень развитую экосистему. Никто экосистему эту не будет менять - она стоит триллионы. А освободившиеся ресурсы уже направлены на это - вычислительных центров то построили много под криптовалюты. Это те у кого сто видеокарт прогорели а у кого их сотни тысяч сейчас уже новой работой заняты. И да китайцы тут лидируют.

А на конечных мобильных устройствах ARM и его последователи Apple, Qualcomm, Huawei и Samsung.

Кроме того уже пару лет и Denso развивает ARM направление во встраиваемых системах.
Так что я вижу тут только одну причину Wave+MIPS - продать 16 декабря 2017 года. А убытки понечёт тот кто купит 16 декабря 2017 года.

В общем прикольно.

Ведь если честно то ARM не единственный производитель ARM совместимых IP у Apple, Huawei и Qualcomm они свои. Это Самсунг лицензирует потому что не сумел надёргать лохов из бывшего СССР и Индии - типа тех на которых он нажился когда патентовал гнущийся дисплей например или графеновый акуумулятор ( там вообще коллектив индусы) . Ну и другие вещи по меньше. И Mediatek который изначально задуман как тот кто собирает по сути chiplet. На большее и не претендует.

В итоге если x86 делают две компании Intel и AMD то ARM - ARM, Apple, Huawei (да он покупает лицензии но лишь потому что у него есть пока что хуже) и Qualcomm . Причём китайцы это их министерство обороны. Чья контора Huawei ? Кстати пример что могла быть и здесь если бы страной правили не чекисткие подонки. В итоге конкурентная среда есть. Самсунг со временем тоже чего нибудь свистнет, зафорчит или ещё как с японцев тряханёт то что ему надо. Ведь по структуре контроля это Япония, США, КНР и США. Тут нет места уже больше никому. Как и на рынке видеокарт - все помнят что произошло когда PowerVR c Kyro попыталась влезть - огромные убытки.
(Reply) (Thread)
[User Picture]From: techwork
2018-12-08 01:28 am (UTC)

Остаётся только рынок мобильных видеочипов это Mali - Япония, PowerVR - КНР, у него есть ещё два неудачных тупиковых - Vivante у которого скорость неплохая но адские проблемы с совместимостью и совсем кошмарный VideoCore покупка PowerVR для КНР огромная удача. Adreno бывший AMD который AMD продал за ненадобностью Qualcomm - но да США. Xavier от nVidia - США+Канада+КНР, у Intel GT и у AMD прекрасно масштабируется Radeon В планшет вполне становится так что и мобильный тоже не проблема. и у Apple видеядро в a11 подозрительно напоминает Xavier.
В итоге 1 японский, три китайских и 4 американских. Ну 5 если поверим что в Apple чисто с нуля разработка.

И всё. Есть правда ORACLE с SPARC и IBM с PowerPC но это скорее такие же Дредноуты только ещё не усохшие, я про архитектуры - другие сферы этих фирм пока что живут вполне нормально.

Китайцы скупали всё что могли скупить - но теперь у них есть своя молотилка для суперкомпа Sunway TaihuLight основанный на SPARC, все помнят уродца Loongson а ведь именно этот уродец был опробованием технологий для него - и дерективно административно так собрали деньги с населения на проект. А теперь он не хуже Oracle SPARC T-5 (может и свистнули его IP ну минобороны же) У Китая есть своё мобильное ядро - у Huawei и оно ARM совместимое. Т.е. вектор уже понятен. И есть мобильный видеочип Power VR. У Китая есть своё производство https://www.eetimes.com/document.asp?doc_id=1332462 . Да многое украдено - но у них есть полная экоситема всего. Свои диплеи своё всё. Они уже давно не просто сборочный цех. А тот кто вытеснил и корейцев и американцев и рынка мобильных телефонов - японцев вообще раздавили под ноль. Сколько у Самунг и Эпл мирового рынка по деньгам - 33% а по устройствам ...... 12%. Конечно из Японии с их пофигизмом и Эплами это не видно . Но остальной мир давно уже полностью китайская техника и лидер рынка у нас кто ? https://www.statista.com/statistics/271496/global-market-share-held-by-smartphone-vendors-since-4th-quarter-2009/ Дядюшка Ляо из подвала. NoName ну ли Zopo или Hui . Второе ещё и корейский косметический бренд ещё - но по смыслу подходит :).

Теперь они уже решили вопрос наличия теперь уже вопрос что бы у других не было.

И мне очень сложно представить того кто купит Wave+MIPS на пике. Китайцам этого уже не надо , разве что бы убить но они не будут брать на пике , ибо сами не дураки. Архитектура процессора уникальна, требует отдельного написания кода. OpenCL прокладка тут тоже не помощник - так как это же мобильные чипы - молотить как взрослые они не могут. Использоваться для мобильных - тоже нет. Близко к железу они не могут исполнять программы для ARM требуется прокладка как для x86 а это и дорого и медленно и пожирает энергию. Интелу и то пришлось умерить аппетиты именно из-за необходимости совместимости с ARM. И большими затратами на виртуализацию не родной среды. А у него молотилки лучшие в мире. Что уж говорить об изначально RISC и низкопроизводительных по сравнению с Intel чипами. Смысла брать это ядро для коммерческого проекта нет. Только если большое наследуемое ПО. Но сейчас бум и деньги на написание нового есть. Для пульнуть в кого нибудь ядрён батон - так у Китая SPARC есть. Пуляет как надо. А остальным - психов с деньгами в мире больше нет.

В итоге - все помнят Симбиан ? ОС отличная. Android хуже но победил. А почему ? А потому что он быстро стал стандартом для массовых и дешёвых устройств. Это тоже самое что стало с IBM PC изначально они были хуже Apple и не только. Но они были свободны. В итоге они стали стандартом а вот IBM от них получили очень мало.
Массовое побеждает. Невозможно сделать аналог ARM и победить ARM Ingenic это доказал.
Всегда рынок выбирает только один стандарт. И MIPS это проиграл давным давно



2008 год.
это первый гвоздь в гроб.

https://en.wikipedia.org/wiki/HTC_Dream
за этим началась цепочка ухода к ARM . больше ресурсов на разработку и более ранний выход новых версий. А также быстро много наследуемого. При этом архитектурно разница очень мала.


23 September 2008 RIP MIPS

Edited at 2018-12-08 02:03 am (UTC)
(Reply) (Parent) (Thread)
[User Picture]From: bftoday
2018-12-08 07:39 am (UTC)

забавные фото из России

называется - найди американца на фото :)
рад за то, что вы сохраняете оптимизим. давненько не было рассказов о походах по лесам калифорнии и прочей ... монтаны.
(Reply) (Thread)
[User Picture]From: unclegluk
2018-12-08 01:41 pm (UTC)
называется - найди американца на фото — так у него на всех фотографиях шаблонная улыбка. Посмотрите на фотки внимательно, на других людей. Даже, если рядом другие люди улыбаются, то у Панчула всегда дежурная шаблонная улыбка.
(Reply) (Parent) (Thread)
[User Picture]From: beaver_cherokee
2018-12-11 09:08 pm (UTC)
какая эталонная чушь
(Reply) (Parent) (Thread)
[User Picture]From: beaver_cherokee
2018-12-11 09:06 pm (UTC)
Юрий, Вы на фотке чисто в цветнике! ;))
И явно знаете об этом, чсх. XDDDD
(Reply) (Thread)