OpenCL на FPGA

Недавно побывал на Altera SoC Developers Forum, и там заинтересовала тема OpenCL на FPGA.
Вопрос к тем, ктo в теме: какие реально проекты на этом сейчас крутят?

👍НравитсяПонравилось0
В избранноеВ избранном0
LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

1. В Украине за FPGA платят редко и мало. Xilinx вообще запрещен у нас (экспортные ограничения.)
2. Для FPGA есть VHDL, Verilog. Остальное — дичайшие костыли.
3. Для FPGA есть масса применений, всякие там CDMA, 3G, 4G... Громадное кол-во применений в милитари.. Короче всего того что в Украине или разрабатывалось или никогда не будет.

В общем забудьте. Это не WWW.

Смотрите шире, мир не ограничивается Украинским рынком

Неа. Это не веб сайт склепать. Так что жестко ограничен Украиной.

Львівський офіс Global Logic має якісь розробки пов’язані з OpenCL на FPGA (перша презентація):
www.globallogic.com/…​mbedded-techtalk-summary

Вот меня всегда радуют подобные презентации, куча слайдов и ни одного теста.

це сарказм, чи справді вам подобаються такі презентації ?

Конечно, сарказм. Без чисел вообще непонятно зачем они это делали. Есть подозрение, что это замедлитель, а не акселлератор.

Спікер коментував кожен слайд, тоді все було зрозуміло. Погоджуюсь, якщо дивитись презентацію після заходу, буде багато не зрозумілого.

Абсолютно всё понятно, если это собственная разработка, то нужны цифры, если это вольный пересказ: www.altera.com/…​pers/opencl/overview.html , тогда в чём смысл?

це просто розповідь про те що таке FPGA та технологію OpenCL на FPGA. Тобто загальні речі, що воно таке, як працює і для чого потрібно. Мета розповісти в загальному, щоб люди дізнались що таке є. А кому буде потрібно той знайде собі детально.

Берите на уровень выше, не деревьев, а леса, тогда поймёте собеседника.

Продолжение habrahabr.ru/...ompany/intel/blog/282570

Первыми потребителями гибрида станут крупнейшие облачные сервисы и дата-центры.

Молодцы интел и альтера. Правда чего Арию 10 выбрали? Чего не стратикс?

Сложно сказать, я за семействами давно не слежу. Но что-то мне кажется, что они эгот гибрид интела и FPGA таки похоронят.

Кортекс А53 выглядит перспективнее.

OpenCL в embedded только входит, за пределами embedded FPGA будет выглядеть бледно и дорого на фоне GPU. Идея соптимизировать kernel для работы на FPGA выглядит интересным (я так понимаю, что это не рантайм загрузка, а написал kernel, отладил и залил), но только для узкого круга задач, где буду молотиться числа. Например, декодирование звука и видео. Но если будет идти обработка потоковых данных, оно сдуется только так. Я видел в описании тестовой платы, что они подключаются напрямую к AXI Bus — это интересно и перспективно, но хотелось бы видеть бенчмарки по памяти, да и по вычислениям тоже. Например, встроить в ARM Xtensa LX4 процессор проще паренной репы, что все и делают, собственно, предлагают они тоже самое, что и FPGA (С/C++ компилятор для этого процессора в процессоре), только в рантайме можно менять пре-компилированные firmware очень быстро, что даёт несомненный плюс и гибкость в разработке новых продуктов, а не один раз откомпилил и залил. С другой стороны — это хорошая возможность для программеров войти в схемотехнику с минимумом знаний.

Интересно куда это все повернется (и повернется ли). Насколько я понял, Интел прикупил Альтеру, чтобы делать именно сверхбольшие FPGA по 10 нм технологии. И одно из направлений — это датацентры, бигдата, OpenCL и подобные базворды. Там как раз рассказывали что-то невнятное про комманду из майкрософтовского Бинга, которые пытаются натянуть FPGA для ускорения поискового движка.
А пока все, что встречается — одна тоска (аудио и видео).

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

Интел купил Альтеру для того что бы пихать FPGA’шки в Xeon’ы и иметь возможность перешивать сам процессор по мере допилки микрокода, особенно это касается систем предсказания ветвлений. Сделано это для того что бы не повторять факапов с Broadwell’ом, когда сами процессоры с Августа 2014 по Февраль 2015г стояли в собранных устройствах и ждали своего «обрезания» — сначала выпилили TSX а потом и кучу бажных конвейеров. Такая муть характерна сейчас для 10-14нм — выхлоп юзабельного кремния стремится к нулю, и прикладные FPGA вменяемого качества точно не для простых смертных.

Не согласен. Думаю что уперлись в производительность процессора на больших скоростях потока данных. Для того чтобы разобрать поток в 100G уже никакого камня не хватит.

Да, сейчас большая часть микрокода грузится материнкой с UEFI, и загрузчиком во время загрузки ядра ОС. Касательно обработки трафика — пока аппаратных средств для этого в x86’ых нет, да и оптимизация использованием существующих SIMD инструкций полна сюрпризов... для обработки трафика есть TileGX и прочее, но и там тоже используется DPDK с соответствующими подходами.

На 40Gbit в 24 ядра надо уместиться в 600 тактов — любой TLB miss довольно сильно ударит по производительности, да и кэшем надо вручную жонглировать, менеджмент памяти в больших страницах с RDMA и афинностью процессора ... в общем сложность разработки и ограничения существующих систем делают sw подход при обработке трафика довольно слишком сложным и не всегда уместным. Сам уже успел настрадаться с DPDK/SPDK, но если использовать их для прикладных решений — можно получить очень больший прирост в производительности. Ну там чего только стоит холиварное сравнение ScyllaDB и Cassandra.

Тот микрокод, не более чем набор битов вкл или выкл какой-то блок. Там особо не напрошиваешся.
SIMD насколько я понимаю совершено для другого сделан — то для DSP и прочей мультимедии.

В общем выход только один — часть разбора трафика с помощью FPGA перекинуть на другие компы. Но тогда тот ксенон особо и не нужен. Какогонить кортекса с головой хватит, что Альтера и делает.

В 100G наверняка процессор используется только для высокоуровневой логики, все нюансы протоколов, вычисления контрольных сумм и т.д. делается аппаратно, иначе 100G не имеет смысла.

Всё что нужно перепрошивать в CPU Интел может сделать и сейчас, FPGA им нужны для более гибкого решения в серверном сегменте. ПЛИС прекрасны когда надо сделать очень много простой работы, вычисления просто разделяют на две разные аппаратные платформы так, что каждая используется там где эффективна, что даёт хороший суммарный выход. Итого, FPGA нужны для ускорения вычислений, чтобы не тратить процессорное время на «тупую» работу.

А зачем? OpenCL хорош в задачах с фиксированным конвейером и изменчивыми данными, FPGA расчитан на противоположную ситуацию.

Аргументацию Altera прочитал, неубедительно.

Да, аналогично — не понял зачем оно вообще надо.
Это типа для хомячков которые не хотят ничего знать, а просто запихнуть «что бы работало» хоть как-то, мне и с моим GPGPU уютненько, а выхлоп, думаю, не будет сильно отличаться.

FPGA это первый шаг на пути к ASIC’ам, в противном случае лучше ити в сторону более простых программных решений на прикладном, казуальном железе.

мне и с моим GPGPU уютненько, а выхлоп, думаю, не будет сильно отличаться.
На притянутых за уши примерах (типа БПФ) они показывают минимум двукратное ускорение по сравнению с GPU. Но в основном за счет того, что данные в конвеер загружаются непосредственно с интерфейсов, минуя CPU и RAM.
FPGA это первый шаг на пути к ASIC’ам, в противном случае лучше ити в сторону более простых программных решений на прикладном, казуальном железе.
От концепта FPGA — прототип ASIC, как мне кажется, рынок постепенно уходит (хотя эта ниша никуда не денется). Если посмотреть на девайсы со встроенным ARMом, то именно FPGA дает приемущество своей гобкостью. Во всяком случае для промышленной автоматизации это очень хорошо работает, когда нужно встраивать хитрые свичи для Ethernet протоколов. Но это уже лирика, и с OpenCL не имеет ничего общего...

Азик не дорого только если их делать мильён. Если нада тыща, то плис дешевле.

Подписаться на комментарии