По поводу цен на FPGA — не совсем ясно откуда (просто с сайта или закупочная цена у дилеров в России со всеми налогами и пр.) взяты цены и в какой момент времени.
Дело в том, что Альтера методично поднимает цены на старые семейства (наверно и Xilinx тоже). И это весьма логично: старый техпроцесс и надо как-то людей заставить пересаживаться на новые чипы. А новые чипы предлагаются по очень привлекательным ценам.
Хотелось бы узнать, как соединяют блоки на разных FPGA. Допустим используемая шина AXI, то её сигналы просто через GPIO пробрасываются и никакой магии нет? Или как-то хитро конвертируется в высокоскоростной поток с использованием трансиверов? Если из-за этого набегает задержка (в тактах) на общение между модулями, то пытаются ли это как-то компенсировать для симуляции прям точь-в-точь как это будет в ASICe, или на это закрывают глаза?
Я немного скептически отношусь к подобным маркетинговым словам и не уверен, что с использованием GUI IDE я стану продуктивнее, но подожду какого-нибудь релиза и видео с демонстрацией работы)
Мне это не особо интересно — я на VHDL не пишу)
Даже если вы сделаете поддержку Verilog/SystemVerilog, мне больше интересно, что «дополнительное» сможет IDEA, кроме подсветки кода?
Грубо говоря, чем IDEA с поддержкой VHDL/Verilog будет лучше связки vim + ctags? Автоматический рефакторинг? Автосоединение модулей? Автодокументирование?
Ух ты, не видел такой платы — значит я был не прав про гиперболизирование :)
Выглядит она немного устрашающе)
Если взять самый топовой чип, что туда можно поставить XC6SLX150, что дает 147443 * 25 = 3.6M Logic Cells.
В самом топовом Virtex UltraScale 5.5M Logic Cells, так что сейчас наверно целесообразнее будет поставить один, но большой чип (без учёта разницы архитектур между семействами).
P.S.
JetBrains не планирует смотреть в сторону FPGA?
Разработать удобное IDE, например ;)
mezastel, спасибо за интервью и упоминание про FPGA ;)
Правда в примере с 25 FPGA на одной плате вы явно гиперболизируете: вряд ли кто-то ставит такое количество чипов FPGA на одной плате :)
Можете в двух словах рассказать, как сына обучаете программированию под FPGA и что с ним удалось сделать?
Я чуть выше описал на каких платах гарантированно работает из коробки OpenCL, а так же что делать если плата не входит в этот список :)
В принципе, это обычный квартусовский проект (я ссылочку на гитхаб дал в статье), и под Stratix IV собрать можно, только придется поработать руками — изменить чип на нужный в проекте, возможно сделать виртуальные интерфейсы и т.п.
У меня дома 16 GB ОЗУ. Запустилось без проблем, но если будете компилировать под большие чипы (Stratix V, Arria 10) большие проекты, то оперативки может не хватить: на работе на сборочную машину мы докупали ОЗУ из-за этого.
Идеалогия предполагает, что программисты не будут брать в руки FPGA-шные инструменты (SignalTap и пр.):
есть возможность собрать ядро, которое можно запустить под эмулятором (x86)
оценить архитектуру и увидеть проблемные места по производительности получаемого решения можно БЕЗ компиляции квартусом
см. полный workflow:
Скрытый текст
Полная сборка (на несколько часов) рекомендуется тогда, когда кернел на эмуляторе прошел тесты.
Правда, если будет расхождение в поведении между эмулятором на x86 и исполнением на FPGA, то это будет очень невесело дебажить :)
Про симуляцию с потоком HD-видео ничего сказать не могу — никогда с этим не работал, но на создание очень простого тестового окружения для симуляции (в ModelSim'e) кернела vector_add ушло полчаса.
Там вообще интересная ситуация получается: код получается открытым, и его можно портировать на другие чипы (хоть Xilinx), правда придется настройку кернелов и пр. писать самому.
Хотя, наверно, никому это не надо: у Xilinx есть своя тулза (SDAccel) для OpenCL.
В презентации Harnessing the Power of FPGAs using Altera’s OpenCL Compiler приведены несколько бенчмарков (сравнение с Xeon'ом и Tesl'ой) на реальных задачах.
Ну, Stratix 10 выйдет после Arria 10, а Arria еще находится на стадии инженерных образцов. Посмотрим, что будет
Ultrascale+ Kintex? Уже коммерческие образцы? Какая цена? :)
Да, теперь предполагается, что вам не надо отлаживаться как обычному FPGA-разработчику используя Modelsim'e/SignalTap'e.
Насколько это реально, я не знаю — серьезных проектов на OpenCL под FPGA я не делал.
Буду признателен, если кто-то поделится реальным опытом применения Altera SDK for OpenCL в комментариях (или может в отдельной статье?), насколько всё радужно, как это рисуют маркетинговые буклетики)
А вообще, не надо забывать, что Интел купил Альтеру, и собирается выпустить серверные процессоры Xeon со встроенной FPGA. Если они это сделают, и цена будет на 100$ больше, чем на процессор без FPGA, а количество ресурсов будет большим, то такой вариант станет очень привлекательным.
В статье я дал ссылку на гитхаб, где лежит квартусовский проект с Verilog IP.
Сгенерированые файлы открыты и вы можете как-то совместить с другим кодом или даже модифицировать.
Но придется поработать ручками, т.к. из коробки это пока не предполагается (механизма я не нашел).
«Сложность делать» вылезает из-за управления низким уровнем) Это как на 8-битном контроллере писать перемножение float чисел на ассемблере. Да, сложно, но можно попытаться в интернете готовые примеры найти и пр.
Как это решать, когда внешняя оболочка OpenCL даже не предусматривает таких заморочек?
Не очень понял вопроса: почему внешняя оболочка не предусматривает?
Да, чипы FPGA дороже своих конкурентов, и если основное различие будет только в энергоэффективности, то, мне кажется, съэкономленные деньги на электроэнергию не отобьют разницу в чипах. Может быть только в тех странах, где дорогая электроэнергия?
Для перекачки данных с видеокамеры или сетевого порта Altera предлагает использовать I/O Channels.
Я глубо это не копал, но есть пример, где данные забираются с UDP-корки.
По поводу цен на FPGA — не совсем ясно откуда (просто с сайта или закупочная цена у дилеров в России со всеми налогами и пр.) взяты цены и в какой момент времени.
Дело в том, что Альтера методично поднимает цены на старые семейства (наверно и Xilinx тоже). И это весьма логично: старый техпроцесс и надо как-то людей заставить пересаживаться на новые чипы. А новые чипы предлагаются по очень привлекательным ценам.
Хотелось бы узнать, как соединяют блоки на разных FPGA. Допустим используемая шина AXI, то её сигналы просто через GPIO пробрасываются и никакой магии нет? Или как-то хитро конвертируется в высокоскоростной поток с использованием трансиверов? Если из-за этого набегает задержка (в тактах) на общение между модулями, то пытаются ли это как-то компенсировать для симуляции прям точь-в-точь как это будет в ASICe, или на это закрывают глаза?
Даже если вы сделаете поддержку Verilog/SystemVerilog, мне больше интересно, что «дополнительное» сможет IDEA, кроме подсветки кода?
Грубо говоря, чем IDEA с поддержкой VHDL/Verilog будет лучше связки vim + ctags? Автоматический рефакторинг? Автосоединение модулей? Автодокументирование?
Выглядит она немного устрашающе)
Если взять самый топовой чип, что туда можно поставить XC6SLX150, что дает 147443 * 25 = 3.6M Logic Cells.
В самом топовом Virtex UltraScale 5.5M Logic Cells, так что сейчас наверно целесообразнее будет поставить один, но большой чип (без учёта разницы архитектур между семействами).
P.S.
JetBrains не планирует смотреть в сторону FPGA?
Разработать удобное IDE, например ;)
Правда в примере с 25 FPGA на одной плате вы явно гиперболизируете: вряд ли кто-то ставит такое количество чипов FPGA на одной плате :)
Можете в двух словах рассказать, как сына обучаете программированию под FPGA и что с ним удалось сделать?
Нет, я такой информации в отчете не видел
В принципе, это обычный квартусовский проект (я ссылочку на гитхаб дал в статье), и под Stratix IV собрать можно, только придется поработать руками — изменить чип на нужный в проекте, возможно сделать виртуальные интерфейсы и т.п.
см. полный workflow:
Полная сборка (на несколько часов) рекомендуется тогда, когда кернел на эмуляторе прошел тесты.
Правда, если будет расхождение в поведении между эмулятором на x86 и исполнением на FPGA, то это будет очень невесело дебажить :)
Про симуляцию с потоком HD-видео ничего сказать не могу — никогда с этим не работал, но на создание очень простого тестового окружения для симуляции (в ModelSim'e) кернела vector_add ушло полчаса.
Хотя, наверно, никому это не надо: у Xilinx есть своя тулза (SDAccel) для OpenCL.
В презентации Harnessing the Power of FPGAs using Altera’s OpenCL Compiler приведены несколько бенчмарков (сравнение с Xeon'ом и Tesl'ой) на реальных задачах.
Слайды из презентации под спойлером:
Ultrascale+ Kintex? Уже коммерческие образцы? Какая цена? :)
Насколько это реально, я не знаю — серьезных проектов на OpenCL под FPGA я не делал.
Буду признателен, если кто-то поделится реальным опытом применения Altera SDK for OpenCL в комментариях (или может в отдельной статье?), насколько всё радужно, как это рисуют маркетинговые буклетики)
Сгенерированые файлы открыты и вы можете как-то совместить с другим кодом или даже модифицировать.
Но придется поработать ручками, т.к. из коробки это пока не предполагается (механизма я не нашел).
Не очень понял вопроса: почему внешняя оболочка не предусматривает?
Да, чипы FPGA дороже своих конкурентов, и если основное различие будет только в энергоэффективности, то, мне кажется, съэкономленные деньги на электроэнергию не отобьют разницу в чипах. Может быть только в тех странах, где дорогая электроэнергия?
Вы используете 40G карточки? Если да, то какие? :)