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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Демодулятор PSK, Оптимизация
Serg76
сообщение Jan 24 2009, 20:08
Сообщение #1


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

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Доброго времени суток!
После написания программного ФМ демодулятора сразу возникла проблема оптимизиции. Начал с оптимизации структуры демодулятора, переписал основные узлы, убрал тривиальные операции, что можно заменил таблицами и т.д. и т.п., в общем выжал все возможное. В результате получил 1,5 Мсим/с символьной скорости в реальном масштабе времени на Intel Core2Duo 2,4 GHz. Но надо еще быстрее. Единственным возможным выходом вижу переход демодулятора на работу с целочисленной арифметикой т.е. замена всех операций с плавающей точкой на целочисленные, но как это реализовать пока не знаю. Посему прошу помощи уважаемой аудитории предоставить любую информацию по этому вопросу, заранее благодарен.
Go to the top of the page
 
+Quote Post
petrov
сообщение Jan 25 2009, 08:41
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Делайте на FPGA.
Go to the top of the page
 
+Quote Post
Serg76
сообщение Jan 25 2009, 09:02
Сообщение #3


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

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Цитата(petrov @ Jan 25 2009, 11:41) *
Делайте на FPGA.

Надо на персоналке.
Go to the top of the page
 
+Quote Post
petrov
сообщение Jan 25 2009, 09:11
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(Serg76 @ Jan 25 2009, 12:02) *
Надо на персоналке.


Не получите на персоналке много, на FPGA десятки мегабод легко.
Вообще непонятно как быть когда операционная система задумывается на неопределённое время? А зачем такое на персоналке если не секрет?
Go to the top of the page
 
+Quote Post
shf_05
сообщение Jan 25 2009, 09:25
Сообщение #5


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

Группа: Свой
Сообщений: 1 143
Регистрация: 22-04-08
Из: г. Екатеринбург
Пользователь №: 36 992



какая ОС, язык, компилятор? вспомните про ассемблер
говорят еще на фортране быстро летает, может даже в матлабе будет быстрее- там оптимизированно много чего.
есть еще один невероятный совет- pci плата с каким нибудь ДСП или той же ФПГА.

Сообщение отредактировал shf_05 - Jan 25 2009, 09:26
Go to the top of the page
 
+Quote Post
alex_os
сообщение Jan 25 2009, 09:27
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030



Цитата(Serg76 @ Jan 24 2009, 23:08) *
Доброго времени суток!
После написания программного ФМ демодулятора сразу возникла проблема оптимизиции. Начал с оптимизации структуры демодулятора, переписал основные узлы, убрал тривиальные операции, что можно заменил таблицами и т.д. и т.п., в общем выжал все возможное. В результате получил 1,5 Мсим/с символьной скорости в реальном масштабе времени на Intel Core2Duo 2,4 GHz. Но надо еще быстрее. Единственным возможным выходом вижу переход демодулятора на работу с целочисленной арифметикой т.е. замена всех операций с плавающей точкой на целочисленные, но как это реализовать пока не знаю. Посему прошу помощи уважаемой аудитории предоставить любую информацию по этому вопросу, заранее благодарен.

Использовать Intel C compiler и написать все в интристиках задействующих SSE2(3).


--------------------
ну не художники мы...
Go to the top of the page
 
+Quote Post
Pathfinder
сообщение Jan 25 2009, 09:28
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 275
Регистрация: 29-06-05
Пользователь №: 6 400



Используйте SIMD инструкции, гораздо шустрее будет. Если задержка на обработку не важна, можно для этой цели современную видеокарту использовать.


--------------------
ADC / DAC LC Filter Designer — Удобный инструмент проектирования LC-фильтров для ЦАП и АЦП
Go to the top of the page
 
+Quote Post
Serg76
сообщение Jan 25 2009, 09:44
Сообщение #8


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

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Цитата(petrov @ Jan 25 2009, 12:11) *
Не получите на персоналке много, на FPGA десятки мегабод легко.
Вообще непонятно как быть когда операционная система задумывается на неопределённое время? А зачем такое на персоналке если не секрет?

На ПЛИС понятное дело что быстрее. Секрета никакого нет, просто стоимость разработки на базе ПЭВМ определяется в конечном счете по сути только стоимостью самого сервера, разработка на ПЛИС стоит гораздо дороже.

Цитата(alex_os @ Jan 25 2009, 12:27) *
Использовать Intel C compiler и написать все в интристиках задействующих SSE2(3).

Именно его и использовал совместно с IPP производительность существенно повысилась

Цитата(shf_05 @ Jan 25 2009, 12:25) *
какая ОС, язык, компилятор? вспомните про ассемблер
говорят еще на фортране быстро летает, может даже в матлабе будет быстрее- там оптимизированно много чего.
есть еще один невероятный совет- pci плата с каким нибудь ДСП или той же ФПГА.

ОС Win32, компилятор C от Intel совместно с Intel primitive performance. Поэтому использовать ассемблер нет смысла.

Цитата(Pathfinder @ Jan 25 2009, 12:28) *
Используйте SIMD инструкции, гораздо шустрее будет. Если задержка на обработку не важна, можно для этой цели современную видеокарту использовать.

Прошу прощения не понял причем здесь видеокарта
Go to the top of the page
 
+Quote Post
petrov
сообщение Jan 25 2009, 09:47
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(Serg76 @ Jan 25 2009, 12:34) *
На ПЛИС понятное дело что быстрее. Секрета никакого нет, просто стоимость разработки на базе ПЭВМ определяется в конечном счете по сути только стоимостью самого сервера, разработка на ПЛИС стоит гораздо дороже.


Так стоимость сервера очень высокая, плюс надо какую то плату чтоб сигнал оцифровывать, и при этом жалкий результат. Сейчас же есть FPGA относительно дешевые с большим количеством логических элементов, в простых корпусах, достаточно будет 4-х слойной платы, да и ничего сложного в разработке нету, больше времени разработка алгоритмов демодуляции занимает.
Go to the top of the page
 
+Quote Post
Pathfinder
сообщение Jan 25 2009, 17:05
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 275
Регистрация: 29-06-05
Пользователь №: 6 400



Цитата
Прошу прощения не понял причем здесь видеокарта

Современные видеокарты можно использовать для вычислений. Они уже поддерживают плавающую точку с двойной точностью, есть библиотеки, типа http://rapidmind.net/, которые позволяют более-менее прозрачно использовать их ресурсы. Однако, мне FPGA в данном случае тоже кажется более перспективным вариантом...


--------------------
ADC / DAC LC Filter Designer — Удобный инструмент проектирования LC-фильтров для ЦАП и АЦП
Go to the top of the page
 
+Quote Post
Serg76
сообщение Jan 25 2009, 17:30
Сообщение #11


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

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Цитата(Pathfinder @ Jan 25 2009, 20:05) *
Современные видеокарты можно использовать для вычислений. Они уже поддерживают плавающую точку с двойной точностью, есть библиотеки, типа http://rapidmind.net/, которые позволяют более-менее прозрачно использовать их ресурсы. Однако, мне FPGA в данном случае тоже кажется более перспективным вариантом...

Не знал об этом, интересное предложение, обязательно проанализирую, спасибо. Не дадите ссылочку где можно скачать библиотеки?

Сообщение отредактировал Serg76 - Jan 25 2009, 17:48
Go to the top of the page
 
+Quote Post
Pathfinder
сообщение Jan 26 2009, 10:52
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 275
Регистрация: 29-06-05
Пользователь №: 6 400



rapidmind, к сожалению, убрали из открытого доступа. Теперь вроде как регистрироваться нужно, чтобы скачать...
Есть библиотеки на сайтах AMD (Stream) и Nvidia (Cuda), можно их использовать. AMD ещё собиралась свою ACML портировать под Stream.


--------------------
ADC / DAC LC Filter Designer — Удобный инструмент проектирования LC-фильтров для ЦАП и АЦП
Go to the top of the page
 
+Quote Post
Serg76
сообщение Jan 26 2009, 21:10
Сообщение #13


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

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Цитата(Pathfinder @ Jan 26 2009, 13:52) *
rapidmind, к сожалению, убрали из открытого доступа. Теперь вроде как регистрироваться нужно, чтобы скачать...
Есть библиотеки на сайтах AMD (Stream) и Nvidia (Cuda), можно их использовать. AMD ещё собиралась свою ACML портировать под Stream.

Спасибо за ссылки буду разбираться. Как по вашему что лучше IPP или CUDA при всех прочих равных условиях?
Go to the top of the page
 
+Quote Post
Pathfinder
сообщение Jan 27 2009, 20:25
Сообщение #14


Местный
***

Группа: Свой
Сообщений: 275
Регистрация: 29-06-05
Пользователь №: 6 400



IPP - это интеловская библиотека?
Вообще, чтобы видеокарту эффективно использовать, нужно весь алгоритм реализовать в виде операций над векторами (или матрицами). Это не всегда легко сделать, а для некоторых алгоритмов и вообще нереально. Ещё напрягает отсутствие в этих (видеокарточных) библиотеках спецфункций.


--------------------
ADC / DAC LC Filter Designer — Удобный инструмент проектирования LC-фильтров для ЦАП и АЦП
Go to the top of the page
 
+Quote Post
Serg76
сообщение Jan 27 2009, 21:25
Сообщение #15


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

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Цитата(Pathfinder @ Jan 27 2009, 23:25) *
IPP - это интеловская библиотека?
Вообще, чтобы видеокарту эффективно использовать, нужно весь алгоритм реализовать в виде операций над векторами (или матрицами). Это не всегда легко сделать, а для некоторых алгоритмов и вообще нереально. Ещё напрягает отсутствие в этих (видеокарточных) библиотеках спецфункций.

Да, IPP это интеловые библиотеки плюс к этому есть еще и компилятор (последний по-моему Intel C++ compiler v.11.0.066 сейчас как раз выкачиваю rolleyes.gif ). Вещь стоящая, после того как переписал демодулятор с использованием этих функций и компилятора (+ оптимизация под Core2Duo) производительность увеличилась в разы.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 17th June 2025 - 22:42
Рейтинг@Mail.ru


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