реклама на сайте
подробности

 
 
> Ищу любые вычислительные проекты для FPGA, помогите, кто чем может
Alexium
сообщение Mar 10 2011, 21:24
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 88
Регистрация: 3-03-10
Пользователь №: 55 790



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

Сообщение отредактировал Alexium - Mar 10 2011, 21:27
Go to the top of the page
 
+Quote Post
4 страниц V   1 2 3 > »   
Start new topic
Ответов (1 - 14)
DmitryR
сообщение Mar 11 2011, 06:14
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



На Opencores посмотрите - там математики всякой хватает.
Go to the top of the page
 
+Quote Post
Alexium
сообщение Mar 11 2011, 06:44
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 88
Регистрация: 3-03-10
Пользователь №: 55 790



Смотрел, конечно. Мало там подходящих для меня проектов. В основном всякие небольшие модули, вроде сумматоров и умножителей, которые не решают конкретных задач.
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Mar 11 2011, 06:58
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Там есть как минимум (из законченного):
- CORDIC
- DCT
- AES
- SHA
- Reed-Solomon
- Twofish
- FIR, CIC, DDS, Hilbert
И еще куча похожего в процессе. Или вам это тоже кажется простоватым?
Go to the top of the page
 
+Quote Post
Alexium
сообщение Mar 11 2011, 07:33
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 88
Регистрация: 3-03-10
Пользователь №: 55 790



Нет, шифрование и хэширование - это то, что надо. DCT, наверное, тоже. Насчет CORDIC не уверен, я не очень хорошо знаком с его функциями, но подозреваю все же, что посчитать то же самое на ЦП будет быстрее.
А вот DDS и Reed-Solomon, по-моему, не из той оперы совсем. Мне ведь нужны задачи, которые обычно решаются на компьютере, и в которых производительность ЦП является узким местом.
Go to the top of the page
 
+Quote Post
jojo
сообщение Mar 11 2011, 07:39
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 574
Регистрация: 9-10-04
Из: FPGA-city
Пользователь №: 827



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

Advanced Synthesis Cookbook: A Design Guide for Stratix II, Stratix III, and Stratix IV Devices
http://www.altera.com/literature/manual/cookbook.zip
Go to the top of the page
 
+Quote Post
Alexium
сообщение Mar 11 2011, 08:06
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 88
Регистрация: 3-03-10
Пользователь №: 55 790



Цитата(jojo @ Mar 11 2011, 09:39) *
А что такое фреймворк? Просто интересно.


Что-то такое
Go to the top of the page
 
+Quote Post
Kirill_Good
сообщение Mar 11 2011, 11:38
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 217
Регистрация: 10-12-10
Из: Москва
Пользователь №: 61 528



Restricted Boltzmann Machines sm.gif
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение Mar 11 2011, 12:24
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



Цитата(Alexium @ Mar 11 2011, 10:33) *
Мне ведь нужны задачи, которые обычно решаются на компьютере, и в которых производительность ЦП является узким местом.

Возьмите блок FFT
Go to the top of the page
 
+Quote Post
Alexium
сообщение Mar 11 2011, 13:09
Сообщение #10


Частый гость
**

Группа: Участник
Сообщений: 88
Регистрация: 3-03-10
Пользователь №: 55 790



Цитата(Kirill_Good @ Mar 11 2011, 13:38) *
Restricted Boltzmann Machines

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


Цитата(bogaev_roman @ Mar 11 2011, 14:24) *
Возьмите блок FFT

Обязательно! Но во-первых - это банально, а во-вторых - в этой задаче мне вряд ли светит догнать GPU.
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение Mar 11 2011, 13:16
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



Цитата(Alexium @ Mar 11 2011, 16:09) *
а во-вторых - в этой задаче мне вряд ли светит догнать GPU.

Да неужели???
Go to the top of the page
 
+Quote Post
Alexium
сообщение Mar 11 2011, 13:35
Сообщение #12


Частый гость
**

Группа: Участник
Сообщений: 88
Регистрация: 3-03-10
Пользователь №: 55 790



Цитата(bogaev_roman @ Mar 11 2011, 15:16) *
Да неужели???

Честно - не знаю. Просто мне так кажется почему-то. Конечно, зависит еще от того, какой GPU и какая FPGA. У меня, например, плата на Spartan xc3s700A, не слишком вместительная и не слишком быстрая. Всякие Virtех 4-6 многомиллионные - другое дело, но у них и цена заоблачная...
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение Mar 11 2011, 13:53
Сообщение #13


Профессионал
*****

Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



Цитата(Alexium @ Mar 11 2011, 16:35) *
Честно - не знаю. Просто мне так кажется почему-то. Конечно, зависит еще от того, какой GPU и какая FPGA. У меня, например, плата на Spartan xc3s700A, не слишком вместительная и не слишком быстрая. Всякие Virtех 4-6 многомиллионные - другое дело, но у них и цена заоблачная...

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

Сообщение отредактировал bogaev_roman - Mar 11 2011, 14:04
Go to the top of the page
 
+Quote Post
Alexium
сообщение Mar 11 2011, 14:34
Сообщение #14


Частый гость
**

Группа: Участник
Сообщений: 88
Регистрация: 3-03-10
Пользователь №: 55 790



Цитата(bogaev_roman @ Mar 11 2011, 15:53) *
Я вот тоже - не знаю, может ли 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 - Mar 11 2011, 14:40
Go to the top of the page
 
+Quote Post
bav
сообщение Mar 11 2011, 14:49
Сообщение #15


Знающий
****

Группа: Свой
Сообщений: 693
Регистрация: 21-06-05
Из: Санкт-Петербург
Пользователь №: 6 184



Цитата
Честно - не знаю. Просто мне так кажется почему-то. Конечно, зависит еще от того, какой 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 sm.gif

з.ы. Вы бы еще max3032 сравнили с четырехядерником sm.gif
Go to the top of the page
 
+Quote Post

4 страниц V   1 2 3 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 07:36
Рейтинг@Mail.ru


Страница сгенерированна за 0.0148 секунд с 7
ELECTRONIX ©2004-2016