v1vas 0 11 февраля, 2015 Опубликовано 11 февраля, 2015 · Жалоба Приветствую всех! Я в плис полный новичок, кому несложно - подскажите пожалуйста. Есть алгоритм, для работы которого нужно: 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 12 11 февраля, 2015 Опубликовано 11 февраля, 2015 · Жалоба 1) Насколько эта задача подходит для реализации на плис ?Хорошо подходит. Что бы знать насколько хорошо нужно более подробное описание потока данных и зависимостей между чтениями и записями в массив 2) Сколько одновременно выполняющихся таких "алгоритмов" можно засунуть в самую навороченную FPGA ? Если исходить из размера памяти (в вашем случае потребуется 2048х32, т.к. нужно увеличить число портов до 3х), то в самый большой Virtex7 (XC7VX1140T) влезет 1000 шт. В Virtex Ultra Scale (XCVU190) в 2 раза больше На шаг алгоритма уйдет 2-4 тактов (надо смотреть data flow). Частота будет в районе нескольких сот мегагерц (100-200, может и больше) Стоят они в районе 25-40K$ (первый), сколько будет стоить второй - даже боюсь предположить :smile3046: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
olegras 0 11 февраля, 2015 Опубликовано 11 февраля, 2015 (изменено) · Жалоба Без описания Вашего алгоритма, параметров "входного массива", что такое "на процессорах - совсем плохо " и др. - подсказать что-то конкретное довольно сложно. Судя по всему можно добиться выполнения одного шага алгоритма за один такт (если например получится разбить 3 обращения к массиву на чтение - на 1 обращение к 3 массивам). Расчитывайте на такты в сотни МГц. В любом случае задача полностью "подходит для реализации на плис". По поводу сколько одновременно выполняющихся таких "алгоритмов" врядли Вам кто-то поможет (см. выше). Можно поступить примерно так: В среде разработки выбрать "самую навороченную FPGA", реализовать алгоритм и посмотреть сколько он занимает емкости камня в процентах от общей емкости. А если мало - поставить несколько FPGA (т.к. все алгоритмы параллельны). Кстати, самые навороченные FPGA стоят тысячи долларов... Пока набирал текст - XVR уже ответил, получилось почти одно и тоже... Изменено 11 февраля, 2015 пользователем olegras Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lmx2315 2 11 февраля, 2015 Опубликовано 11 февраля, 2015 · Жалоба Пока набирал текст - XVR уже ответил, получилось почти одно и тоже... ..так не думаю, по моему XVR ответил правильнее. з.ы. Память кстати - можно внешнюю использовать, тогда поместиться гораздо больше 1000. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
olegras 0 11 февраля, 2015 Опубликовано 11 февраля, 2015 · Жалоба Да ладно Вам, конечно правильнее. Я же написал "почти"... По поводу внешней памяти - если важнее количество параллельных блоков - внешняя память поможет. Если важнее скорость - внешняя память может стать узким местом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться