|
Ищу любые вычислительные проекты для FPGA, помогите, кто чем может |
|
|
|
Mar 10 2011, 21:24
|
Частый гость
 
Группа: Участник
Сообщений: 88
Регистрация: 3-03-10
Пользователь №: 55 790

|
Здравствуйте. Пишу диплом магистра. Тема - ускорение вычислений (реконфигурируемый сопроцессор на ПЛИС). Сейчас делаю собственно сопроцессор (фреймворк, в некотором роде). Потом надо будет исследовать производительность разных задач на ПЛИС, сравнивать с чисто программной реализацией. Проблема в том, что время уже ой как поджимает, а еще сам фреймворк не готов. Времени писать для ПЛИС решения каких-то практически значимых задач нет вообще. Может, кто-то поделится каким-нибудь проектом? Или кто-то где-то что-то видел и даст ссылку... Понимаю, что вряд ли кто-то поделится со мной своей интеллектуальной собственностью, но если вдруг - конфиденциальность я, разумеется, гарантирую. В отчет пойдет только краткое описание решаемой задачи и графики производительности.
Сообщение отредактировал Alexium - Mar 10 2011, 21:27
|
|
|
|
|
 |
Ответов
(15 - 29)
|
Mar 11 2011, 15:25
|
Профессионал
    
Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082

|
Цитата(Alexium @ Mar 11 2011, 17:34)  UPD: посмотрел таблицу. Процессор Core 2, операция 32-битного умножения: latency - 5, throughput - 1.5. Так что даже в такой задаче небольшим ПЛИС приходится туго. Ну где туго. Берите порядок под 100, влезть должно, умножители по лутам раскидайте, промежуточные результаты - в регистры, частоту в 50МГц всяко получите. Процессору 100 умножений за 150 тактов плюс еще 100 сложений. Выгода - 250 раз, частота для одного ядра - 50МГц*250=7,5ГГц. Сравнивать уже можно. PS/ Почему 50МГц? Максимальная тактовая же для spartan 3a - 320МГц вроде, ну понятно что ее не получить, но 150 то можно думаю будет выжать при полной конвейеризации? PSS/Попробуйте реализовать какой-нить FIR 10 порядка и посмотреть во что это выльется в процентном соотношении к полной площади и частоте (только отключите использование аппаратных умножителей). Дальше можно будет рассчитать примерный максимальный порядок фильтра.
Сообщение отредактировал bogaev_roman - Mar 11 2011, 15:28
|
|
|
|
|
Mar 11 2011, 15:29
|
Частый гость
 
Группа: Участник
Сообщений: 88
Регистрация: 3-03-10
Пользователь №: 55 790

|
Во-первых: с GPU, конечно, спавнивать тяжело. А вот процессор современный обогнать, я надеюсь, удастся. А во-вторых - можно ведь сравнить со Спартаном на 50 МГц и экстраполировать на впятеро больший Виртекс на 200 МГц. Стоимость сравнить, опять же... Сказать, что в таких-то задачах такие-то FPGA выгоднее, чем современные ЦП (надеюсь, что где-то все-таки выгоднее). Цитата(bogaev_roman @ Mar 11 2011, 17:25)  Ну где туго. Берите порядок под 100 Да, так гораздо интереснее. А 50 МГц потому, что такой кварц на плате. Если и не 150, то 100-120 точно можно выжать, но нужно будет внешний генератор изготовить. Хотя я где-то читал, что вдвое частоту умножить можно с помощью ресурсов платы.
|
|
|
|
|
Mar 11 2011, 15:47
|
Знающий
   
Группа: Свой
Сообщений: 693
Регистрация: 21-06-05
Из: Санкт-Петербург
Пользователь №: 6 184

|
Цитата Сказать, что в таких-то задачах такие-то FPGA выгоднее, чем современные ЦП (надеюсь, что где-то все-таки выгоднее). чип, оптимизированный под определенную задачу по определению справится лучше, чем универсальный процессор. Цитата можно выжать, но нужно будет внешний генератор изготовить точно не помню, но в спартане есть pll
|
|
|
|
|
Mar 11 2011, 15:53
|
Частый гость
 
Группа: Участник
Сообщений: 88
Регистрация: 3-03-10
Пользователь №: 55 790

|
Цитата(bav @ Mar 11 2011, 17:47)  чип, оптимизированный под определенную задачу по определению справится лучше, чем универсальный процессор. Конечно, на то и расчет! Только нужно теперь, чтобы кто-то поделился проектами для ПЛИС, чтобы я мог именно в своей системе. со своими накладными расходами проанализировать производительность. Цитата(bav @ Mar 11 2011, 17:47)  точно не помню, но в спартане есть pll Я посмотрел документацию - DCM (digital clock manager) умеет удваивать частоту. Выходит, что с одного DCM можно получить 100 МГц, а с двух - любую частоту от 100 до 200. Не знаю, правда, рассчитаны ли они на последовательное соединение.
|
|
|
|
|
Mar 11 2011, 16:29
|
Знающий
   
Группа: Свой
Сообщений: 693
Регистрация: 21-06-05
Из: Санкт-Петербург
Пользователь №: 6 184

|
Цитата Не знаю, правда, рассчитаны ли они на последовательное соединение. читайте или пробуйте  Цитата Конечно, на то и расчет! Только нужно теперь, чтобы кто-то поделился проектами для ПЛИС, чтобы я мог именно в своей системе. со своими накладными расходами проанализировать производительность. может, я не врубаюсь, но сравнивать автобус и грузовую машину тяжело. дело в том, что на защите у Вас спросят: "и что Вы хотите доказать? что на ПЛИС можно считать?" к примеру, есть потоковые процессоры (SPI), в них несколько АЛУ, из которых можно сделать конвейер. многие задачи решаются быстрее чем на х86 и не хуже чем на ПЛИС.
|
|
|
|
|
Mar 11 2011, 19:08
|
Частый гость
 
Группа: Участник
Сообщений: 88
Регистрация: 3-03-10
Пользователь №: 55 790

|
Цитата(bav @ Mar 11 2011, 18:29)  может, я не врубаюсь, но сравнивать автобус и грузовую машину тяжело. дело в том, что на защите у Вас спросят: "и что Вы хотите доказать? что на ПЛИС можно считать?" Может, я не врубаюсь, но по-моему, сравнение все-таки имеет смысл при определенных условиях. А защита, все-таки, не суд, чтобы там что-то доказывать. А если мне зададут такой вопрос - я отвечу, что анализировал применимость ПЛИС для решения некоторых классов задач в сравнении с ЦП.
|
|
|
|
|
Mar 11 2011, 20:23
|
Знающий
   
Группа: Свой
Сообщений: 574
Регистрация: 9-10-04
Из: FPGA-city
Пользователь №: 827

|
>Во-первых: с GPU, конечно, спавнивать тяжело. Сейчас GPU часто используют для не графических вычислений, а там ПЛИС бывает лучше, чем GPU. >Сказать, что в таких-то задачах такие-то FPGA выгоднее, чем современные ЦП (надеюсь, что где-то все-таки выгоднее). Выгоднее, даже при большой разнице в частотах. Некоторые классы задач прямо перечислены в http://www.altera.com/literature/manual/cookbook.zip. Я бы ещё добавил генетические задачи http://www.timelogic.com/. Железка простая, а выигрыш в сотни раз.
|
|
|
|
|
Mar 11 2011, 20:46
|
Частый гость
 
Группа: Участник
Сообщений: 88
Регистрация: 3-03-10
Пользователь №: 55 790

|
Цитата(jojo @ Mar 11 2011, 22:23)  Сейчас GPU часто используют для не графических вычислений, а там ПЛИС бывает лучше, чем GPU. Так я о неграфических и говорю. Цитата(jojo @ Mar 11 2011, 22:23)  Я бы ещё добавил генетические задачи http://www.timelogic.com/. Железка простая, а выигрыш в сотни раз. Да, в этой области FPGA сильны. Но, опять же, проектов в свободном доступе нет, чтоб пощупать... Спасибо за книгу!
|
|
|
|
|
Apr 12 2011, 19:52
|
Частый гость
 
Группа: Участник
Сообщений: 88
Регистрация: 3-03-10
Пользователь №: 55 790

|
Доделал базовый функционал сопроцессора, а что ускорять - так и не придумал  (DSP-задачи оставил на крайний случай, я там ничерта не смыслю) Может, еще идей подкинете?..
|
|
|
|
|
Apr 12 2011, 20:52
|
вопрошающий
    
Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436

|
Цитата(bogaev_roman @ Mar 11 2011, 17:53)  Я вот тоже - не знаю, может ли GPU FFT считать, а если может - то с цифрами какой разрядности оперирует и максимальным окном. На нвидишных графических картах от CUDA 1.3 и выше наш соотечественних Волков, сидящий у Деммеля смог пол аппаратного пика для FFT сделать. То есть если у Вас 4к чисел, то на дешевой карте полное преобразование можно посчитать за 0.4 мкс в двойной точности и примерно за 0.1 мкс в одинарной. Чтобы такое же получить на плиске, минимум пятый стратикс надо взять на 4к умножителей, и то не факт, что влезет. У АТИ-АМД еще круче, недавно видел инфу, что FFT для 1к на одном ядре модернового Радеона можно получить за 20нс, а на карте два ядра, то есть два FFT по 1к за 20нс - боюсь, что ни одна плиска не потянет. Цитата(bogaev_roman @ Mar 11 2011, 17:53)  Если у Вас задача стоит чего-нить наваять и сравнить, а насколько это быстрей будет подсчитано в ПЛИС, чем в процессоре, то сделать все довольно просто. Сколько в Вашей ПЛИСке встроенных умножителей? Создаете FIR фильтр с порядком, равным кол-ву аппаратных умножителей и распаралеливаете структуру фильтра, а процессору даете формулу для расчета в лоб - пусть загибается. Ну и получится, что в ПЛИС результат на выходе будет через latency, но каждый такт, а процессор все вычислит если у него одна оперция за такт через Nx2-1 тактов минимум, N - порядок фильтра. При порядке 51 процессор должен сделать 51 умножений и 50 сложений. А если по-честному, распараллелить по всем ядрам проца, попользовать SSE2-SSE3 то проц очевидно в 4-16 раз быстрее будет все это выплевывать, а если все сидит в кеше, то есть если взять 3-ий стратикс, который результат будет плевать с частотой 400МГц, и квад-кор с 3ГГц, то последний с легкостью сделает по 4 FIRа с частотой 250МГц, ессно что стратикс будет серьезно не дешевле квад кора... Короче я к тому, что задачу подобрать, чтобы плиска была лучше - не совсем-то и просто, особенно если с процессора (а тем более с ГПУ) снимать то, что реально снять можно. ИМХО: у процев и ГПУ очень логические операции хромают, так как АЛУ все на плавующую точку заточены, а у ПЛИСки как раз на оборот. посмотрите в эту сторону, криптография, и тд. Возможно что-то и найдется. У меня у самого есть только одна задача, где плиска больше флопов показывает, но только из-за того, что в плиску удается очень быстрый (2ГБайт в секунду) поток завести, а, то же самое с обычным процем потребовало бы больших габаритов.
Сообщение отредактировал iiv - Apr 12 2011, 23:45
|
|
|
|
|
Apr 12 2011, 23:55
|
вопрошающий
    
Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436

|
Цитата(jojo @ Mar 11 2011, 23:23)  Сейчас GPU часто используют для не графических вычислений, а там ПЛИС бывает лучше, чем GPU. Уважаемый jojo, не первый раз вижу, что Вы утверждаете, что ПЛИС лучше или быстрее GPU. Простите меня покорнейше, не ради стеба, а реально сильно интересуюсь на какой же все-таки задаче (не притянутой за уши) такое происходит? ИМХО. Я сам знаю одну такую задачу, но только одну... Во всех остальных, при одинаковой цене, GPU делает плис как тузик грелку, обычно в 10 и более раз. Ессно я не рассматриваю графические карты лаптопов или очень дешевые GPU, но и вычислительные плиски (а борды тем более) редко меньше пары сотен зеленых стоят.
|
|
|
|
|
Apr 13 2011, 05:20
|

я только учусь...
     
Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839

|
Цитата(iiv @ Apr 13 2011, 02:55)  не первый раз вижу, что Вы утверждаете, что ПЛИС лучше или быстрее GPU. Простите меня покорнейше, не ради стеба, а реально сильно интересуюсь на какой же все-таки задаче (не притянутой за уши) такое происходит?
ИМХО. Я сам знаю одну такую задачу, но только одну... Во всех остальных, при одинаковой цене, GPU делает плис как тузик грелку, обычно в 10 и более раз. Ессно я не рассматриваю графические карты лаптопов или очень дешевые GPU, но и вычислительные плиски (а борды тем более) редко меньше пары сотен зеленых стоят. Да ПЛИС быстрее... Из-за возможности выполнения параллельно нескольких задач, а процессор все делает последовательно. Например задача: a+b+c+d процессор это будет делать последовательно, а в ПЛИС можно это посчитать за 3 такта.
--------------------
If it doesn't work in simulation, it won't work on the board.
"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
|
|
|
|
|
Apr 13 2011, 05:54
|
Частый гость
 
Группа: Участник
Сообщений: 88
Регистрация: 3-03-10
Пользователь №: 55 790

|
Рискну предположить, что современная емкая ПЛИС типа Stratix/Virtex сможет стравняться с GPU среднего уровня в арифметических задачах с меньшей разрядностью, чем разрядность ГП (скажем, 16 бит, или даже 12), а также в задачах, не являющихся арифметическими или арифметически интенсивными, например - работа со строками (поиск подстроки и т.п.). Цитата(Maverick @ Apr 13 2011, 08:20)  Например задача: a+b+c+d процессор это будет делать последовательно, а в ПЛИС можно это посчитать за 3 такта. Увы, не будет. Процессор это тоже посчитает за 3 такта (дурацкий ОоО!  ), только такты у него раз в 10 короче. Какие вычисления требуют много итераций над небольшим объемом входных данных?
|
|
|
|
|
Apr 13 2011, 06:41
|
Профессионал
    
Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082

|
Цитата(Alexium @ Apr 13 2011, 09:54)  Увы, не будет. Процессор это тоже посчитает за 3 такта (дурацкий ОоО!  ), только такты у него раз в 10 короче. А если требуется подсчитать сумму тысячи элементов? Типичный, кстати, согласованный фильтр (простейший коррелятор), с одноразрядным коэффициентом. Например требуется подсчитать сумму 16384 элементов (одноразрядных), сколько тактов потребуется? Я на virtexIIpro за один такт подсчитаю, правда с latency в несколько тактов на частоте этак в 150-200МГц.
Сообщение отредактировал bogaev_roman - Apr 13 2011, 06:44
|
|
|
|
|
Apr 13 2011, 06:48
|
Частый гость
 
Группа: Участник
Сообщений: 88
Регистрация: 3-03-10
Пользователь №: 55 790

|
Цитата(bogaev_roman @ Apr 13 2011, 09:41)  Например требуется подсчитать сумму 16384 элементов (одноразрядных) Что значит одноразрядных? Сколько бит каждый элемент? Они целые?
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|