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

 
 
> Обращение матриц на ПЛИС
jojo
сообщение Feb 3 2006, 18:29
Сообщение #1


Знающий
****

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



Обращение матриц на ПЛИС

Тут надо комплексную матрицу 16x16 обратить (эрмитову). Формат исходных данных int32, результат - не хуже float, лучше - double. Есть ли готовые мегафункции, не обязательно нелицензионные?

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

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

Хочу уменьшить нагрузку на DSP и разместить обращение матрицы в относитильно защищенной от взлома ПЛИС.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Harbour
сообщение Feb 9 2006, 14:48
Сообщение #2


Местами Гуру
*****

Группа: Validating
Сообщений: 1 103
Регистрация: 5-12-04
Пользователь №: 1 323



Цитата(dxp @ Feb 9 2006, 12:57) *
Цитата(Harbour @ Feb 9 2006, 15:34) *

Это правда если сравнивать современные DSP с доисторическими FPGA - сейчас получить >200Mhz/такт на каком-то cyc2 не проблема.

В плане быстродействия cyc2 от cyc не особенно отличается, даже кое-где проигрывает. И на обоих можно и на 300 МГц разогнать. Только вот сложность логики, работающей на такой частоте, будет очень малой - не более одного уровня. Если же логику усложнить, то или тактовая сильно упадет, или конвейер придется городить, оптимизировать его. Тоже задача еще та.

Цитата(Harbour @ Feb 9 2006, 15:34) *
Даже в случае отсутствия параллелизма, в FPGA pipeline более эффективный получится, так как нет лишних накладных расходов, которые присутствуют в заточенном под универсальные задачи DSP конвейере.

Какие такие универсальные задачи? Там заточенность под пересылку данных и арифметические операции - именно то, что и нужно. Что-то я очень сомневаюсь, что без параллелизма любой Cyclone обгонит тот же Blackfin@600MHz.

Ну-ну ... хотите contest ? Алгоритм в студию (исходник на С например), я делаю на FPGA , Вы на фине. Учтите что данные еще в CPU ввести надо и вывести - а это в пересчете на наны - уйма времени, а FPGA не нуждается в прерываниях и ping-pong буферах, можно и через HPI, но что тогда с пайплайном будет ?
Универсальность, то бишь окаменелость, DSP конвейера в том что данные движутся кажный такт в строго определенных направлениях со строго определенной пропускной способностью, т.е. имеем например в каком-нить DSP 2 datapath'а по 256 бит да конвейер на 8 инструкций и кирдык - и вот берем мы наш несчастный алгоритм и под эту arch точим и кромсаем., т.е. негде развернутся в нашем DSP, не до конца он, так сказать, программируемый. В FGPA же совсем другое дело, может чуть помуторней, но это дело привычки.

TIA
Go to the top of the page
 
+Quote Post
dxp
сообщение Feb 10 2006, 05:25
Сообщение #3


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(Harbour @ Feb 9 2006, 20:48) *
Ну-ну ... хотите contest ? Алгоритм в студию (исходник на С например), я делаю на FPGA , Вы на фине. Учтите что данные еще в CPU ввести надо и вывести - а это в пересчете на наны - уйма времени, а FPGA не нуждается в прерываниях и ping-pong буферах, можно и через HPI, но что тогда с пайплайном будет ?
Универсальность, то бишь окаменелость, DSP конвейера в том что данные движутся кажный такт в строго определенных направлениях со строго определенной пропускной способностью, т.е. имеем например в каком-нить DSP 2 datapath'а по 256 бит да конвейер на 8 инструкций и кирдык - и вот берем мы наш несчастный алгоритм и под эту arch точим и кромсаем., т.е. негде развернутся в нашем DSP, не до конца он, так сказать, программируемый. В FGPA же совсем другое дело, может чуть помуторней, но это дело привычки.

Знаете, пиписками мериться что-то неохота, да и времени нет. А если хочеться убедиться, то возьмите например простой КИХ фильтр тапа скажем на 32 и сравните. На блекфине это будет два тапа на такт, т.е. при 600 МГц 1200 мегатапов. Да, конечно, еще есть накладные расходы на настройку хардваре луп и дата адрес генератора, но это порядка 5-10 тактов. Такт 1.67 нс, таким образом вычисление очередного отсчета сигнала займет порядка (считаем по наихудшему случаю 10 тактов на инициализацию + 5 тактов на вызов функции и столько же на возврат): (10 + 5 + 5 + 32/2)*1.67нс = 36*1.67нс = 60 нс. И что?! Какая ПЛИС без параллелизма сможет такое?

Что касается пересылки данных, то сведения об аппаратной поддержке этого процесса, в частности, у черного фина у Вас несколько неверные. Там есть 12-канальный DMA, который позволяет делать пересылки на максимальной скорости совершенно без участия CPU. Хоть с последовательного порта наливайте, хоть с PPI, хоть из внешней памяти во внутреннюю и обратно. Типично, скорость обмена с внешней SDRAM 133 МГц. Т.е. отнимем примерно 1% накладных на рефреш и получим (133-1.33)*16 или порядка 260 мегабайт в секунду (если непрерывно лить, а там все можно так организовать - DMA можно настроить один раз и он будет лить по дескрипторам по кругу).

И если учесть что младший BF-531 стОит меньше $10 в розницу, то тут множно и подумать, на чем выгоднее делать. Особенно, если учесть, что сложность реализации подобных фильтров на процессоре на порядок (как минимум) меньше, чем на ПЛИС.

Резюмируя. Никто не оспаривает того тезиса, что на ПЛИС, при возможности распараллелить и не ограничиваясь по стоимости, всегда можно сделать быстрее. Сказно было лишь то, что последовательлно на проце штатные операции выходят быстрее. И это логично - ведь там тоже железа нехило навернуто - умножитель-аккумулятор, толстые и быстрые шины, быстрое АЛУ и т.д., все это аппаратно на кристале, а не разведено на универсальной логике в ПЛИС. Никакой узел в ПЛИС не может работать быстрее аналогичного узла в аппаратном процессоре, это естественно. Поэтому у ПЛИС преимущества только возможности параллелить и на нестандартных операциях - типа, развернуть слово (чтобы младшие биты стали старшими, а старшие младшими), если проц не поддерживает это на уровне инструкций.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- jojo   Обращение матриц на ПЛИС   Feb 3 2006, 18:29
- - cdg   ИМХО если не за 1 такт надо, то с ПЛИС и не стоит ...   Feb 7 2006, 08:58
- - jojo   Да, я все больше убеждаюсь, что ПЛИС "дороже ...   Feb 7 2006, 10:46
- - cdg   В пору аспирантской юности, помнится сталкивался с...   Feb 7 2006, 15:26
- - Harbour   На плис проект будет работать все равно быстрее че...   Feb 8 2006, 07:35
|- - des00   Цитата(Harbour @ Feb 8 2006, 02:35) На пл...   Feb 8 2006, 08:52
- - Harbour   Это правда если сравнивать современные DSP с доист...   Feb 9 2006, 09:34
|- - dxp   Цитата(Harbour @ Feb 9 2006, 15:34) Это п...   Feb 9 2006, 10:57
- - jojo   Думаю, по меньшей мере последние этапы обращения м...   Feb 9 2006, 11:17
|- - des00   Цитата(dxp @ Feb 10 2006, 00:25) И если у...   Feb 10 2006, 06:07
- - des00   Ну в качестве примера, RLE кодирование большого ма...   Feb 9 2006, 15:33
- - Harbour   Как по мне так RLE параллелится, это сильно зависи...   Feb 9 2006, 18:45
- - Harbour   Цитата(dxp @ Feb 10 2006, 07:25) Цитата(H...   Feb 10 2006, 06:53
|- - dxp   Цитата(Harbour @ Feb 10 2006, 12:53) Ну-у...   Feb 10 2006, 07:18
|- - des00   Цитата(Harbour @ Feb 10 2006, 01:53) Как ...   Feb 10 2006, 08:09
- - Harbour   Статей про распараллеливание рле полно в инете, во...   Feb 10 2006, 10:50
|- - des00   ЦитатаСтатей про распараллеливание рле полно в ине...   Feb 10 2006, 11:49
- - Harbour   Цитата(des00 @ Feb 10 2006, 13:49) Тут сл...   Feb 10 2006, 12:56
- - jojo   #include <math.h> Обращение выполняется за ...   Feb 10 2006, 13:35
- - Harbour   Прикинул на пальцах Ваши матрицы, вот чего вышло :...   Feb 11 2006, 12:46
- - psL   Код-----------------------------------------------...   Feb 11 2006, 13:36
- - jojo   В процессоре этап 1 выполняется за 14.3 мкс (7128 ...   Feb 11 2006, 17:09
- - jojo   Вытащил из процессора таблицу начальных приближени...   Feb 13 2006, 10:53


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

 


RSS Текстовая версия Сейчас: 11th August 2025 - 10:14
Рейтинг@Mail.ru


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