Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопрос по FPGA
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
v1vas
Приветствую всех!
Я в плис полный новичок, кому несложно - подскажите пожалуйста.

Есть алгоритм, для работы которого нужно:
700 32 битных слова памяти (массив)
3 32 битных константы

На каждый шаг работы алгоритма делается:
3 обращения к массиву на чтение
Два битовых сдвига и одно суммирование
Две операции XOR
Три сравнения.
Одно обращение к массиву на запись.

Примерно раз в 4 миллиарда операций нужно пробросить два двойных слова наверх.

Требуется обработать огромное количество таких данных (тот же алгоритм, разный входной массив).
А теперь собственно вопросы:
1) Насколько эта задача подходит для реализации на плис ?
2) Сколько одновременно выполняющихся таких "алгоритмов" можно засунуть в самую навороченную FPGA ?

Текущие тесты пока показывают, что
1) Вычислять на процессорах - совсем плохо
2) Xeon Phi - быстрее, но далеко от желаемой производительности
3) CUDA - Kepler K10 практически в шесть раз быстрее одного Intel Core i7 3.33 Ghz, но хочется большего.

Интересует на что можно рассчитывать на плис.
XVR
Цитата(v1vas @ Feb 11 2015, 14:38) *
1) Насколько эта задача подходит для реализации на плис ?
Хорошо подходит. Что бы знать насколько хорошо нужно более подробное описание потока данных и зависимостей между чтениями и записями в массив
Цитата
2) Сколько одновременно выполняющихся таких "алгоритмов" можно засунуть в самую навороченную FPGA ?

Если исходить из размера памяти (в вашем случае потребуется 2048х32, т.к. нужно увеличить число портов до 3х), то в самый большой Virtex7 (XC7VX1140T) влезет 1000 шт. В Virtex Ultra Scale (XCVU190) в 2 раза больше
На шаг алгоритма уйдет 2-4 тактов (надо смотреть data flow). Частота будет в районе нескольких сот мегагерц (100-200, может и больше)

Стоят они в районе 25-40K$ (первый), сколько будет стоить второй - даже боюсь предположить smile3046.gif
olegras
Без описания Вашего алгоритма, параметров "входного массива", что такое "на процессорах - совсем плохо
" и др. - подсказать что-то конкретное довольно сложно.
Судя по всему можно добиться выполнения одного шага алгоритма за один такт (если например получится разбить 3 обращения к массиву на чтение - на 1 обращение к 3 массивам). Расчитывайте на такты в сотни МГц.
В любом случае задача полностью "подходит для реализации на плис".
По поводу сколько одновременно выполняющихся таких "алгоритмов" врядли Вам кто-то поможет (см. выше). Можно поступить примерно так:
В среде разработки выбрать "самую навороченную FPGA", реализовать алгоритм и посмотреть сколько он занимает емкости камня в процентах от общей емкости. А если мало - поставить несколько FPGA (т.к. все алгоритмы параллельны).
Кстати, самые навороченные FPGA стоят тысячи долларов...
Пока набирал текст - XVR уже ответил, получилось почти одно и тоже...
Lmx2315
QUOTE (olegras @ Feb 11 2015, 16:55) *
Пока набирал текст - XVR уже ответил, получилось почти одно и тоже...

..так не думаю, по моему XVR ответил правильнее.
з.ы.
Память кстати - можно внешнюю использовать, тогда поместиться гораздо больше 1000.
olegras
Да ладно Вам, конечно правильнее. Я же написал "почти"...
По поводу внешней памяти - если важнее количество параллельных блоков - внешняя память поможет. Если важнее скорость - внешняя память может стать узким местом.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.