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

 
 
> Операции с плавающей точкой без FPU, На сколько падает производительность?
sigmaN
сообщение Apr 3 2008, 10:21
Сообщение #1


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Интересно, а можно ли на целочисленном DSP с запасом производительности(скажем в 3-5 раз) зарулить вокодер на плавающей точке?

И вообще, каков overhead, так сказать, FP операций на проце без FPU?
Страдает ли точность вычисления?
Что нужно для подобных "извращений"?
Может быть есть какая-то библиотека виртуального FPU, так сказать?
DSP Техас 55 серии.


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
fontp
сообщение Apr 3 2008, 10:29
Сообщение #2


Эксперт
*****

Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183



Можно, только не в 3-5, а скорее раз 8-10
Для этого обычно строят библиотеки "короткого" нестандартного FP
Чтобы удобно (т.е. быстро) было работать. Слово мантисы + слово экспоненты
И никаких проверок на потерю точности - с ними всё равно нечего делать в риал-тайме
Ещё они должны быть inline, иначе труба
Такие библиотеки есть. Можете и сами написать умножение деление сложение и вычитание.
Преобразование типа из/в int и float можно где-нибудь найти на С
Если Вы хотите приспособить к SPEEX без переписывания, то проблемы всё равно останутся.
Во-первых операторами можно оформить только в СPP, в С это функции/ SPEEX это С, а значит...
Во-вторых в чужих проектах используются стандартные математические библиотеки math.h,
а это уж точно прийдётся самому писать под новый тип новую реализацию - sin, sqr, и что там ещё есть в SPEEX
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Apr 3 2008, 12:57
Сообщение #3


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Цитата(fontp @ Apr 3 2008, 13:29) *
Можно, только не в 3-5, а скорее раз 8-10


Да уж... труба дело :-)
Неужели всё-таки придется окунуться в математику и переписывать некоторые алгоритмы на целочисленную модель.
А есть где-нибудь мануальчики как это обычно делается.
Ну там, начиная от анализа существующего FP алгоритма и так далее чтобы на выходе был ФТ алгоритм.

Видимо от этого никуда не деться....:-(


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
fontp
сообщение Apr 3 2008, 13:33
Сообщение #4


Эксперт
*****

Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183



Цитата(sigmaN @ Apr 3 2008, 16:57) *
Да уж... труба дело :-)
Неужели всё-таки придется окунуться в математику и переписывать некоторые алгоритмы на целочисленную модель.
А есть где-нибудь мануальчики как это обычно делается.
Ну там, начиная от анализа существующего FP алгоритма и так далее чтобы на выходе был ФТ алгоритм.

Видимо от этого никуда не деться....:-(


Если никуда не деться... Могу посоветовать AN EE-185 для BF
Там хоть преобразование типов есть на С, операции на асемблере (делать самому, если не знать его ассемблера, чтобы использовать как прототип), ну и вообще по тексту описание
FastFloat16 или FastFloat32
Это на www.analog.com Application Note
Как у ti c такими библиотеками - не знаю, возможно, что и есть
Математику, в смысле, стандартные функции с нужной точностью - самому


Потом грамотно целый класс в С++ накропать
Типа c таким прототипом
http://www.koders.com/cpp/fid5E90955711BFB...C383C.aspx#L103

Потом все модули SPEEX переименовать в cpp, компилировать и править ошибки :-)
Go to the top of the page
 
+Quote Post
DRUID3
сообщение Apr 3 2008, 14:24
Сообщение #5


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



Цитата(fontp @ Apr 3 2008, 16:33) *
Если никуда не деться... Могу посоветовать AN EE-185 для BF
Там хоть преобразование типов есть на С, операции на асемблере (самому, если не знать его ассемблера, чтобы использовать как прототип), ну и вообще по тексту описание
FastFloat16 или FastFloat32
Это на www.analog.com Application Note
Как у ti c такими библиотеками - не знаю, возможно, что и есть
Математику, в смысле, стандартные функции с нужной точностью - самому
Потом грамотно целый класс в С++ накропать
Типа c таким прототипом
http://www.koders.com/cpp/fid5E90955711BFB...C383C.aspx#L103

Потом все модули SPEEX переименовать в cpp, компилировать и править ошибки :-)

07.gif Я еще speex не собирал, и вот заинтересовался темой. Но...

во-первых - помниЦЦо в VDSP++ есть float для целочисленных процессоров. В чем проблема? На Bf все будет летать и так. Что надо переписывать? Я кода-то с float алгоритмы переносил на fix так и то вспоминать не хочу больше... а если еще самому мутить матлибу (пусть и "быстрый float")- это ошибки человека + ошибки принципиальные - ну как в fix с масштабированием.

во-вторых - насколько я понимаю Linuxовый Speex для bf - целочисленный...и он вполне собираеЦЦо...??? Есть целочисленный вход/выход, в портах для TMS и BF используются типы данных на основе int. ... Что еще надо для души?

Ну и в-тетьих, если так хочеЦЦо float - то у AD есть серия дешевых SHARKов, они собственно для того и создавались что-бы не ломая голову применять акадэмические(книжные) алгоритмы. Тем более что их производительности хватит еще на корзинку таких speexов...

P.S.: собственно мне не понравился подход... не хочу чтобы медаппаратуру, например, даже для зубного кабинета, разрабатывали так...


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
fontp
сообщение Apr 3 2008, 14:31
Сообщение #6


Эксперт
*****

Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183



Цитата(DRUID3 @ Apr 3 2008, 18:24) *
07.gif Я еще speex не собирал, и вот заинтересовался темой. Но...
во-первых насколько я помню в VDSP++ есть float для целочисленных процессоров. В чем проблема? На Bf все будет летать и так. Что надо переписывать? Я кода-то с float алгоритмы переносил на fix так и то вспоминать не хочу больше...а если еще самому мутить матлибу - это ошибки человека + ошибки принципиальные - ну как в fix с масштабированием.
во-вторых - насколько я понимаю Linuxовый Speex для bf - целочисленный...и он вполне собираеЦЦо...??? Есть целочисленный вход/выход, в портах для TMS и BF используются типы данных на основе int. ... Что еще надо для души?


Он хочет VBR, jitter buffer и эхоподавитель
А все эксперементальные, недоделаные фичи в SPEEX - float, что в общем-то правильно. Зачем вылизывать алгоритмы, которые ещё десять раз будут переделаны?

Порты BF и TMS int но он их не хочет ;-) В стандартном float32 ни BF ни TMS sPEEX с прибабахами не потянут
Вообще-то float всегда это больше fast prototyping - типа для лохов. Но человек хочет повозиться с прибабахами. Я так понимаю

Быстродействие int на BF я проверял
http://electronix.ru/forum/index.php?showt...36206&st=15
На tms помедленей, упомянуто там же
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- sigmaN   Операции с плавающей точкой без FPU   Apr 3 2008, 10:21
|- - sigmaN   Цитата(fontp @ Apr 3 2008, 17:31) Он хоче...   Apr 3 2008, 14:54
|- - DRUID3   Цитата(fontp @ Apr 3 2008, 17:31) Он хоче...   Apr 3 2008, 14:58
- - Stanislav   Цитата(sigmaN @ Apr 3 2008, 14:21) Интере...   Apr 3 2008, 14:59
|- - sigmaN   Цитата(Stanislav @ Apr 3 2008, 17:59) Нел...   Apr 3 2008, 17:13
|- - Stanislav   Цитата(sigmaN @ Apr 3 2008, 21:13) В обще...   Apr 3 2008, 18:38
|- - fontp   Цитата(Stanislav @ Apr 3 2008, 22:38) ЗЗЫ...   Apr 4 2008, 06:21
|- - Stanislav   Цитата(fontp @ Apr 4 2008, 10:21) SPEEX C...   Apr 4 2008, 07:30
|- - fontp   Цитата(Stanislav @ Apr 4 2008, 11:30) Не ...   Apr 4 2008, 07:52
|- - Stanislav   Цитата(fontp @ Apr 4 2008, 11:52) С 6.3 я...   Apr 4 2008, 10:50
|- - fontp   Цитата(Stanislav @ Apr 4 2008, 14:50) Есл...   Apr 4 2008, 11:15
- - sigmaN   Господа, ну послушайте не сэмплы с сайта, которые ...   Apr 4 2008, 08:50
|- - fontp   Цитата(sigmaN @ Apr 4 2008, 12:50) Господ...   Apr 4 2008, 09:10
- - sigmaN   Сэмплы MELPe-PLUS Даааа, послушал я MELPe-Plus 4...   Apr 4 2008, 19:35
- - Degun   Кто пробовал для DSP фирмы Texas Instruments серии...   Apr 21 2008, 17:51
|- - fontp   Цитата(Degun @ Apr 21 2008, 21:51) Кто пр...   Apr 22 2008, 07:21
|- - rifch   Цитата(fontp @ Apr 22 2008, 11:21) Нужна ...   Apr 24 2008, 13:33
|- - fontp   Цитата(rifch @ Apr 24 2008, 17:33) Сделал...   Apr 24 2008, 13:39
|- - Degun   Цитата(fontp @ Apr 24 2008, 17:39) Обёртк...   Apr 25 2008, 06:08
|- - fontp   Цитата(Degun @ Apr 25 2008, 10:08) А разв...   Apr 25 2008, 07:16
|- - Degun   Цитата(fontp @ Apr 25 2008, 11:16) Так че...   Apr 25 2008, 12:49
- - Andrew32768   ... а если переписать этот класс с использованием ...   Jun 17 2008, 13:37
- - fontp   Цитата(Andrew32768 @ Jun 17 2008, 17:37) ...   Jun 17 2008, 14:00
- - Andrew32768   Цитата(fontp @ Jun 17 2008, 20:00) Как эт...   Jun 17 2008, 14:18
- - fontp   Цитата(Andrew32768 @ Jun 17 2008, 18:18) ...   Jun 17 2008, 14:45


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

 


RSS Текстовая версия Сейчас: 23rd June 2025 - 08:00
Рейтинг@Mail.ru


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