Перейти к содержанию
    

Ищу любые вычислительные проекты для FPGA

Здравствуйте.

Пишу диплом магистра. Тема - ускорение вычислений (реконфигурируемый сопроцессор на ПЛИС).

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

Проблема в том, что время уже ой как поджимает, а еще сам фреймворк не готов. Времени писать для ПЛИС решения каких-то практически значимых задач нет вообще. Может, кто-то поделится каким-нибудь проектом? Или кто-то где-то что-то видел и даст ссылку...

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

Изменено пользователем Alexium

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Смотрел, конечно. Мало там подходящих для меня проектов. В основном всякие небольшие модули, вроде сумматоров и умножителей, которые не решают конкретных задач.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Там есть как минимум (из законченного):

- CORDIC

- DCT

- AES

- SHA

- Reed-Solomon

- Twofish

- FIR, CIC, DDS, Hilbert

И еще куча похожего в процессе. Или вам это тоже кажется простоватым?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нет, шифрование и хэширование - это то, что надо. DCT, наверное, тоже. Насчет CORDIC не уверен, я не очень хорошо знаком с его функциями, но подозреваю все же, что посчитать то же самое на ЦП будет быстрее.

А вот DDS и Reed-Solomon, по-моему, не из той оперы совсем. Мне ведь нужны задачи, которые обычно решаются на компьютере, и в которых производительность ЦП является узким местом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

>Сейчас делаю собственно сопроцессор (фреймворк, в некотором роде).

А что такое фреймворк? Просто интересно.

 

Advanced Synthesis Cookbook: A Design Guide for Stratix II, Stratix III, and Stratix IV Devices

http://www.altera.com/literature/manual/cookbook.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мне ведь нужны задачи, которые обычно решаются на компьютере, и в которых производительность ЦП является узким местом.

Возьмите блок FFT

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Restricted Boltzmann Machines

Искал. Так, чтоб можно было скачать и запустить - не нашел. Только статьи находятся. :(

 

 

Возьмите блок FFT

Обязательно! Но во-первых - это банально, а во-вторых - в этой задаче мне вряд ли светит догнать GPU.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а во-вторых - в этой задаче мне вряд ли светит догнать GPU.

Да неужели???

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да неужели???

Честно - не знаю. Просто мне так кажется почему-то. Конечно, зависит еще от того, какой GPU и какая FPGA. У меня, например, плата на Spartan xc3s700A, не слишком вместительная и не слишком быстрая. Всякие Virtех 4-6 многомиллионные - другое дело, но у них и цена заоблачная...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Честно - не знаю. Просто мне так кажется почему-то. Конечно, зависит еще от того, какой GPU и какая FPGA. У меня, например, плата на Spartan xc3s700A, не слишком вместительная и не слишком быстрая. Всякие Virtех 4-6 многомиллионные - другое дело, но у них и цена заоблачная...

Я вот тоже - не знаю, может ли GPU FFT считать, а если может - то с цифрами какой разрядности оперирует и максимальным окном. Если у Вас задача стоит чего-нить наваять и сравнить, а насколько это быстрей будет подсчитано в ПЛИС, чем в процессоре, то сделать все довольно просто.

Сколько в Вашей ПЛИСке встроенных умножителей?

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

Ну и получится, что в ПЛИС результат на выходе будет через latency, но каждый такт, а процессор все вычислит если у него одна оперция за такт через Nx2-1 тактов минимум, N - порядок фильтра. При порядке 51 процессор должен сделать 51 умножений и 50 сложений.

Изменено пользователем bogaev_roman

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я вот тоже - не знаю, может ли GPU FFT считать, а если может - то с цифрами какой разрядности оперирует и максимальным окном. Если у Вас задача стоит чего-нить наваять и сравнить, а насколько это быстрей будет подсчитано в ПЛИС, чем в процессоре, то сделать все довольно просто.

Сколько в Вашей ПЛИСке встроенных умножителей?

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

Ну и получится, что в ПЛИС результат на выходе будет через latency, но каждый такт, а процессор все вычислит если у него одна оперция за такт через Nx2-1 тактов минимум, N - порядок фильтра. При порядке 51 процессор должен сделать 51 умножений и 50 сложений.

Отлично, спасибо за подсказку насчет FIR-фильтра!

Умножителей у меня, кажется, 20. Т.е. макс. порядок - 19 (если я правильтно понял). Процессор умножает, я думаю, тактов за 7, складывает - за 1 (мы ведь о целых числах говорим?). Итого - чуть больше 150 тактов на итерацию, или в 150 раз медленнее ПЛИС. При частоте ПЛИС 50 МГц ЦП с ней сравняется на частоте больше 7 ГГц. Но у процессора может быть 4 ядра, и он может пользоваться параллелизмом уровня команд. И у него быстрый доступ к памяти (узкое место моего проекта). Но можно ведь умножители и на LUT сделать. Конечно, тактовая частота упадет, но зато степень параллелизма вырастет...

 

Насчет GPU: FFT они считают вполне неплохо. Конкретных цифр не скажу (еще не изучал), но в принципе - GPU работают с целыми 32-битными числами, 32- и 64-битными с плавающей запятой.

Есть исследование производительности GPU NVidia GT200, дочитаю - опишу результаты, если интересно.

Кстати, я не учел, что процессор использует конвейер, так что для выполнения 20 умножений нужно гораздо меньше 20х7 тактов. Скорее, 7 + 19х(1 или 2).

UPD: посмотрел таблицу. Процессор Core 2, операция 32-битного умножения: latency - 5, throughput - 1.5. Так что даже в такой задаче небольшим ПЛИС приходится туго.

Изменено пользователем Alexium

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Честно - не знаю. Просто мне так кажется почему-то. Конечно, зависит еще от того, какой GPU и какая FPGA. У меня, например, плата на Spartan xc3s700A, не слишком вместительная и не слишком быстрая. Всякие Virtех 4-6 многомиллионные - другое дело, но у них и цена заоблачная...

Потом надо будет исследовать производительность разных задач на ПЛИС, сравнивать с чисто программной реализацией.

Насчет GPU: FFT они считают вполне неплохо. Конкретных цифр не скажу (еще не изучал), но в принципе - GPU работают с целыми 32-битными числами, 32- и 64-битными с плавающей запятой.

Есть исследование производительности GPU NVidia GT200, дочитаю - опишу результаты, если интересно.

Кстати, я не учел, что процессор использует конвейер, так что для выполнения 20 умножений нужно гораздо меньше 20х7 тактов. Скорее, 7 + 19х(1 или 2).

UPD: посмотрел таблицу. Процессор Core 2, операция 32-битного умножения: latency - 5, throughput - 1.5. Так что даже в такой задаче небольшим ПЛИС приходится туго.

сначала нужно определиться что с чем сравнивать. если Ваш Spartan с GPU - мало задач, которые можно сравнивать (но существуют).

если брать процы последних поколений, то и FPGA соответственно ... не Spartan :)

 

з.ы. Вы бы еще max3032 сравнили с четырехядерником :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...