?

Log in

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

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

Российские и украинские команды взяли верх над европейцами на европейском конкурсе Интела по FPGA [Aug. 12th, 2018|08:48 pm]
Yuri Panchul
Золото досталось России, серебро разделила Россия и Италия, бронза досталась Украине. Таковы результаты европейского финала престижного соревнования InnovateFPGA под эгидой Интела. Победители поедут в Калифорнию, где встретятся с финалистами из Америки и Азии. Надеюсь, теперь не нужно будет объяснять на Хабре, почему Verilog и ПЛИС/FPGA стратегически важны, несмотря на то, что "вакансий на джаву больше".

Студенты, которые сейчас делают проекты на ПЛИСах, через несколько лет будут делать массовые микросхемы для самоуправляемых автомобилей, ускорителей нейронных сетей, дополненной реальности и других приложений, в который обычный процессор не справляется. Именно поэтому Intel потратил 16.7 миллиардов долларов на покупку Altera и вход в рынок ПЛИС. А на днях Интел купил еще и компанию eASIC для дешевой конверсии дизайнов из ПЛИС в ASIC (в eASIC есть достаточно многочисленная российская команда).

Победа российских и украинских команд в интеловском конкурсе InnovateFPGA возникла не на пустом месте, а в результате работы конкретных людей в ЛЭТИ, ИТМО, КПИ и других местах, о которых уже были статьи на Хабре. Если продолжить эти начинания и расширить преподавание ПЛИС и языков описания аппаратуры во все технические вузы от Калининграда до Якутии, от Львова до Тбилиси и Астаны - то через пару десятилетий это может изменить расстановку сил в мировой электронной промышленности примерно так же, как работы Курчатова и Королева изменили расстановку сил в мировой атомной промышленности и освоении космоса.




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



Этот проект сделали Владислав Шаршин и Андрей Папушин, которые, как показывает гугление, связаны с питерским ЛЭТИ.

В ЛЭТИ ПЛИС преподают довольно давно, в нем в частности работают известные авторы учебников по ПЛИС Евгений Угрюмов, Ростислав Грушвицкий и Александр Мурсаев. Вот моя фотка Ростислава Грушвицкого (слева) на семинаре в питерском Университете ИТМО (см. пост на Хабре "Путешествие по микроэлектронной России (академическая часть)"). Справа Александр Филиппов из Макро Груп, официального представителя Xilinx в России:



Кстати про Xilinx. Xilinx - конкурент Altera/IntelFPGA по ПЛИС. В принципе, самые высокоскоростные ПЛИС всегда были у Xilinx, но в последнее время Xilinx установил очень сложную бюрократическую процедуру для покупки образовательных плат с Xilinx FPGA в России. С какой-то проверкой на неиспользование плат для двойного назначения, которая занимает 4 месяца (данные на 2016 год). Самое странное, что я проверял у юриста, что для образовательных плат с Xilinx Artix-7 FPGA никакой дополнительной экспортной лицензии американский экспортный контроль не требует. То есть это инициатива самой компании Xilinx. Ну что-ж, тогда Xilinx заслужил будущий проигрыш Интелу/Альтере на российском рынке: студенческие платы с Intel/Altera FPGA в России продаются свободно.

Серебро на европейском раунде InnovateFPGA получила команда из питерского Университета ИТМО: Максим Толкачев, Александр Насида, Дамир Закиров. Они сделали на ПЛИС ускоритель поиска по тексту в потоке сетевых пакетов:



Университет ИТМО выиграл тоже не на пустом месте: они все время проводят семинары и другие мероприятия по ПЛИС, высокоуровневому синтезу и ASIC. Сотрудники Университета ИТМО помогли перевести учебник Дэвида Харриса и Сары Харрис «Цифровая схемотехника и архитектура компьютера», который быстро адаптировали большое количество российских университетов как основу для изучения языков описания аппаратуры микроархитектуры, с лабами на ПЛИС/FPGA. Вот слева — Павел Кустарев из ИТМО, ключевой редактор 4-й главы этого учебника:



Бронзу на европейском InnovateFPGA, получила команда из Киевского Политехнического Института - Сергей Сачов и Евгений Короткий. Они использовали ПЛИС для аппаратного ускорения микроплатежей криптовалюты с устройства для интернета вещей.Кусок кода на языке описания аппаратуры Verilog из проекта КПИ на InnovateFPGA



До того, как выиграть интеловский InnovateFPGA, Сергей Сачов выиграл хакатон по MIPSfpga, который мы вместе проводили с Евгением Коротким. Вот фото из поста на Хабре "Хакатон нового типа испробован в Киеве, планируется повторить этот опыт в России". Слева направо на хакатоне в Киеве: Сергей Сачов, Валера Марченко, ваш покорный слуга и Евгений Короткий:



Сотрудники КПИ также участвовали в переводе слайдов для лекторов в качестве дополнения к учебнику Харрис & Харрис.

Если бы не все эти проекты (курсы в ЛЭТИ, Харрис & Харрис и MIPSfpga в ИТМО и КПИ), то выигрышей всех первых трех мест на европейском финале интеловского InnovateFPGA скорее всего бы не было, и в топе InnovateFPGA фигурировали бы французы, немцы и британцы, а не русские и украинцы. После чего люди бы говорили, что проектирование цифровой логики - это для Apple в Купертино с его айфонами, а не для России.

Кстати про Apple. Вот жил в Жуковском 25-летний выпускник Бауманки Илья Неганов. Он работал в Туполеве, разрабатывал устройства для тестирования авиационной аппаратуры с помощью ПЛИС/FPGA. В конце 2011 года я встретил его в Москве и вручил ему все тот же учебник Харрис & Харрис. Илья сделал по нему простой процессор (напоминающий один из вариантов schoolMIPS от Станислава Жельнио). Потом Илья устроился в Imagination Technologies и участвовал в проектировании процессорного ядра MIPS I6400/I6500. А сейчас Илья работает в Apple, делает графический процессор для будущих айфонов и айпадов. Вот наглядное доказательство тезиса ПЛИС + Харрис & Харрис = вход в микросхемы для массовых гаджетов.

Все эти технологии нужно внедрять в образование не только в топовых вузах (МГУ, МФТИ, МИЭТ итд), но гораздо шире, вплоть до физматшкол. И не стоит говорить "давайте сначала Ардуино/Расберри Пай/STM32". Программирование микроконтроллеров и встроенных микропроцессоров к использованию ПЛИС совершенно ортогонально. Никакое количество программирования Ардуино не заменит цифровую схемотехнику на ПЛИС, это разные вещи, как пение и рисование. И да, ПЛИС могут использовать продвинутые школьники 9 класса. Вот видео девятиклассника Арсения Чегодаева и девятиклассницы Дарьи Криворучко, которые сделали проекты на ПЛИС на Новосибирской Летней Школе Юных Программистов. На 10:40: девятиклассница добавила инструкцию в процессор, описанный на языке описания аппаратуры Verilog, синтезировала этот процессор для реализации на ПЛИС и сделала по этому поводу доклад на конференции в Томске (см. пост на Хабре "Суровая сибирская и казахстанская микроэлектроника 2017 года: Verilog, ASIC и FPGA в Томске, Новосибирске и Астане"):

https://www.youtube.com/watch?v=oqUf5yReDkM

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

Если (предположим) завтра Путин выпишет чек на $17 миллиардов долларов и купит у TSMC Фабрику 18, которая строится для производства микросхем на 7 и 5 нанометров, то эти деньги будут потрачены зря, так как в России сейчас нет персонала для ее обслуживания и российских компаний для размещения на ней заказов. А вот если научить много студентов разнообразным технологиям проектирования систем на кристалле, начиная с упражнений на ПЛИС/FPGA, то через некоторое время в России, Украине и других близких странах будет достаточно специалистов для формирования сотен компаний разного размера, которые будут проектировать умные микросхемы как для внутреннего рынка, так и на экспорт. Тогда и передовая фабрика пригодится.
LinkReply

Comments:
[User Picture]From: dom3d
2018-08-13 04:33 am (UTC)
Что такое ПЛИС?
(Reply) (Thread)
[User Picture]From: panchul
2018-08-13 04:44 am (UTC)
https://habr.com/post/250511/

https://habr.com/post/260069/



Я участвую в конференциях DAC c 1996 года и замечаю, когда те или иные темы становятся модными. Текущая мода - повышенный интерес к тематике ПЛИС / FPGA. Причем эта тематика популярна в этом году не только на DAC, но и среди нетехнических СМИ - в связи с покупкой Интелом компании по разработке FPGA под названием Altera. За $16.7 миллиардов долларов!

Когда в марте по интернету пошли слухи о сделке Intel-Altera, многие журналисты просто не поняли, чем занимается компания, за которую Интел решил уплатить такие бешенные деньги. Один домыслил, что Альтера якобы "главный конкурент интела по процессорам" (при том, что альтеровские FPGA - это вообще не процессоры, хотя процессор может стоять рядом с reconfigurable gates), другой - что Альтера якобы "производитель телекоммуникационного оборудования" (никакого телекоммуникационного оборудования Альтера не производит), третий - что Альтера якобы "контрактный производитель микросхем" аки TSMC (при том, что у Альтеры вообще нет своих фабрик).

Что такое ПЛИС / FPGA я на пальцах объяснил в другом посте на Хабре - Как начать разрабатывать железо, используя ПЛИС — пошаговая инструкция. Но повторим эту информацию снова:

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

ПЛИС-ы / FPGA - не процессоры, "программируя" ПЛИС (заполняя конфигурационную память ПЛИС-а) вы создаете электронную схему (хардвер), в то время как при программировании процессора (фиксированного хардвера) вы подсовываете ему цепочку написанных в память последовательных инструкций программы (софтвер).

Внизу - схема простейшего блока FPGA, в который входит look-up table (LUT) и flip-flop. Правда в этой схеме не показаны мультиплексоры, которые меняют функцию ячейки, и соединения с конфигурационной памятью.



Диаграммы, иллюстрирующие структуру FPGA:



И еще одна:



(Reply) (Parent) (Thread)
[User Picture]From: dom3d
2018-08-13 04:19 pm (UTC)
Спасибо.
(Reply) (Parent) (Thread)
[User Picture]From: red_army_1917
2018-08-13 04:56 am (UTC)
Интересно, а имеет смысл Intel Integrated Performance Primitives или OpenCV на ПЛИСах, или лучше (дешевле) просто выбрать топовый ЦП?
(Reply) (Thread)
[User Picture]From: panchul
2018-08-13 03:37 pm (UTC)
Зависит от приложения
(Reply) (Parent) (Thread)
[User Picture]From: radiotv_lover
2018-08-13 06:44 am (UTC)
"Если продолжить эти начинания и расширить преподавание ПЛИС и языков описания аппаратуры - это может изменить расстановку сил в мировой электронной промышленности примерно так же, как работы Курчатова и Королева изменили расстановку сил в мировой атомной промышленности и освоении космоса."

Нет работы Курчатова и Королева были освоением работ Оппенгеймера и фон Брауна. Как только подпитка прекратилось, ничего нового не появилось. В космонавтике был короткий прорыв, но с 1964 началось отставание, которое только увеличивалось.
Обучение ПЛИС это хорошо. Но завтра же будет что-то новое. Обучение ПЛИС и языкам - это наделение способностью покупать и применять американские разработки. Это только создание и расширение рынка сбыта.
(Reply) (Thread)
[User Picture]From: panchul
2018-08-13 03:39 pm (UTC)
Нет, это еще и тренировка в более общей технологии - проектировании на уровне регистровых передач, которая применима не только к ПЛИС-ам и верилогу, но и к массовым чипам общего назначения, процессорам, специализированным аппаратным ускорителям итд.
(Reply) (Parent) (Thread)
[User Picture]From: vic_nikob
2018-08-13 07:12 am (UTC)
спасибо за инфу, сориентирую внука, уже в восьмой перешёл
(Reply) (Thread)
[User Picture]From: norian
2018-08-13 07:35 am (UTC)
у королева и курчатова не было физической возможности свалить в нормальную страну и они делали оружие под угрозой для себя или семьи

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

(Reply) (Thread)
[User Picture]From: panchul
2018-08-13 03:42 pm (UTC)
В эмиграции есть плюсы и минусы, а в России появляется больше возможностей работать по гамбургскому счету. Некоторые уедут, другие не уедут.
(Reply) (Parent) (Thread)
[User Picture]From: everri
2018-08-13 07:49 am (UTC)
Он работал в Туполеве ... А сейчас Илья работает в Apple

За парня рад. А "Туполев" (и прочий Роскосмос) сам виноват, конечно.
(Reply) (Thread)
[User Picture]From: panchul
2018-08-13 03:40 pm (UTC)
Некоторые уедут, другие не уедут. Сейчас есть обе возможности, с плюсами и минусами.
(Reply) (Parent) (Thread)
[User Picture]From: ru_teacher
2018-08-13 08:23 am (UTC)
какие молодцы!
(Reply) (Thread)
[User Picture]From: duradulova
2018-08-14 01:55 am (UTC)
Панчул -- молодец!
(Reply) (Thread)
[User Picture]From: lrlay777
2018-08-14 02:06 pm (UTC)
И он тоже)
(Reply) (Parent) (Thread)
[User Picture]From: lrlay777
2018-08-14 02:05 pm (UTC)
Молодцы!
(Reply) (Thread)
[User Picture]From: os80
2018-08-19 03:21 am (UTC)
Юрий, дурацкий вопрос...
Есть ли возможность начать работать с этими ПЛИС, не занимая сотен мегабайт на жёстком диске и не имея десятков гигабайт оперативы? Т.е., грубо говоря, есть ли для этой работы не, так сказать, framework, а toolbox в стиле Unix (какой-нибудь commmand-line "компилятор", простая утилита для заливки "образа" в плату и т.п.)?
Понятно, что это неэффективно, неудобно, задротство и красноглазие — но на начальном этапе эффективно и удобно не особо нужно.
(Reply) (Thread)
[User Picture]From: panchul
2018-08-19 04:22 am (UTC)
Если вам хочется все в командной строке в Линуксе, то вот проект и три скрипта - setup, synthesize, configure. Правда софтвер все равно объемный, а также нужно 4GB оперативной памяти, хотя с трудом будет работать и на 2GB:

https://github.com/MIPSfpga/digital-design-lab-manual/tree/master/alt_boards/a_c4e6e10

#!/bin/sh
# setup.sh

set -e

export MODELSIM_ROOTDIR=${HOME}/intelFPGA_lite/17.1/modelsim_ase
export PATH=${PATH}:${MODELSIM_ROOTDIR}/linux

#export QUARTUS_ROOTDIR=${HOME}/altera/13.0sp1/quartus
export QUARTUS_ROOTDIR=${HOME}/intelFPGA_lite/17.1/quartus
export PATH=${PATH}:${QUARTUS_ROOTDIR}/bin

SIM_DIR=${PWD}/sim
SYN_DIR=${PWD}/syn


#!/bin/sh
# synthesize.sh

. ./setup.sh

rm -rf $SYN_DIR
mkdir -p $SYN_DIR
cp top.qsf $SYN_DIR
echo "# This file can be empty, all the settings are in .qsf file" > $SYN_DIR/top.qpf
cd $SYN_DIR

quartus_sh --no_banner --flow compile top | tee syn.log

cd ..
./configure.sh


#!/bin/sh
# configure.sh

. ./setup.sh

if [ ! -d "$SYN_DIR" ]
then
echo "Synthesis directory ${SYN_DIR} does not exist. Run synthesis first."
exit 1
fi

cd $SYN_DIR

quartus_pgm -l > cable_list

CABLE_NAME_1=`grep "1) " cable_list | sed 's/1) //'`
CABLE_NAME_2=`grep "2) " cable_list | sed 's/2) //'`

if [ "$CABLE_NAME_1" ]
then
if [ "$CABLE_NAME_2" ]
then
echo "Warning: more than one cable is connected: ${CABLE_NAME_1} and ${CABLE_NAME_2}"
fi

echo "Using cable ${CABLE_NAME_1}"
quartus_pgm --no_banner -c "$CABLE_NAME_1" --mode=jtag -o "P;top.sof"
else
echo "Cannot detect a USB-Blaster cable connected"
exit 1
fi
(Reply) (Parent) (Thread)
[User Picture]From: os80
2018-08-19 05:48 am (UTC)
>Если вам хочется все в командной строке в Линуксе
Нет, хочется именно в разумном (с моей точки зрения) объёме ресурсов.
За это можно немного заплатить качеством получаемого "объектного кода" (это же обучающий проект) и достаточно сильно заплатить удобством работы (напр., работа в командной строке, а код писать в vi :-).

Казалось бы — нужно-то всего 2 утилитки: "компилятор" (или синтезатор — не знаю, как правильно) и заливальщик прошивки. Неужели нет такого? Или я чего-то не понимаю, и НЕОБХОДИМЫХ утилит гораздо больше?
(Reply) (Parent) (Thread)
[User Picture]From: panchul
2018-08-19 05:56 am (UTC)
Да, есть: синтезатор называется quartus_sh, а заливальщик quartus_pgm. Но они тащут до фига всего, так как синтез, размещение и трассировка в FPGA сложнее, чем софтверные компиляторы. Кроме этого, в пакет входят библиотеки для большого количества FPGA, а также симулятор (но его можно не устанавливать). На 2 GB оперативки будет работать, хотя и тормознуто.
(Reply) (Parent) (Thread)
[User Picture]From: os80
2018-08-19 07:51 am (UTC)
Хм... 6 гигов инсталляшка...
А нельзя что-нибудь такое сделать: взять Icarus Verilog, синтезировать под ним (насколько я понял, оно это умеет), а потом залить какой-либо другой утилиткой, которая распространяется отдельно, не очень велика и не тащит за собой кучу зависимостей? (ну не может же быть, чтобы процедура заливки не была стандартизирована хотя бы для серий плат!)
(Reply) (Parent) (Thread)
[User Picture]From: panchul
2018-08-19 02:00 pm (UTC)
Нет, Icarus Verilog не умеет делать синтез - только симуляцию.

Точнее: когда-то умел, но это было что-то ограниченное - см. https://www.edaboard.com/showthread.php?238297-How-to-synthesis-the-verilog-code-using-icarus-verilog.

Синтез и p&r это обьективно тяжелый процесс.

Edited at 2018-08-19 02:04 pm (UTC)
(Reply) (Parent) (Thread)
[User Picture]From: os80
2018-09-06 08:23 pm (UTC)
"Нет покоя ебанутым" :-)
Что скажете об идее попробовать Olimex ice40hx8k-evb?
https://www.chipdip.ru/product/ice40hx8k-evb

Оно, конечно, дорого и обвес в разы хуже.
Но, типа, для чипа lattice ice40hx есть полностью Open Source Software:
https://eax.me/icestick/

Будете отговаривать? Или "раз ты такой идейный и сам видишь минусы, то попробуй, подводных камней, вроде, быть не должно"?
(Reply) (Parent) (Thread)
[User Picture]From: panchul
2018-09-07 12:28 am (UTC)
У меня у самого в планах попробовать Lattice, но никогда руки не доходили
(Reply) (Parent) (Thread)