|
Операции с плавающей точкой без FPU, На сколько падает производительность? |
|
|
|
 |
Ответов
|
Apr 3 2008, 10:29
|

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

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

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...
|
|
|
|
|
Apr 3 2008, 13:33
|

Эксперт
    
Группа: Свой
Сообщений: 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, компилировать и править ошибки :-)
|
|
|
|
|
Apr 3 2008, 14:24
|

山伏
    
Группа: Свой
Сообщений: 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, компилировать и править ошибки :-)  Я еще speex не собирал, и вот заинтересовался темой. Но... во-первых - помниЦЦо в VDSP++ есть float для целочисленных процессоров. В чем проблема? На Bf все будет летать и так. Что надо переписывать? Я кода-то с float алгоритмы переносил на fix так и то вспоминать не хочу больше... а если еще самому мутить матлибу (пусть и "быстрый float")- это ошибки человека + ошибки принципиальные - ну как в fix с масштабированием. во-вторых - насколько я понимаю Linuxовый Speex для bf - целочисленный...и он вполне собираеЦЦо...??? Есть целочисленный вход/выход, в портах для TMS и BF используются типы данных на основе int. ... Что еще надо для души? Ну и в-тетьих, если так хочеЦЦо float - то у AD есть серия дешевых SHARKов, они собственно для того и создавались что-бы не ломая голову применять акадэмические(книжные) алгоритмы. Тем более что их производительности хватит еще на корзинку таких speexов... P.S.: собственно мне не понравился подход... не хочу чтобы медаппаратуру, например, даже для зубного кабинета, разрабатывали так...
--------------------
Нас помнят пока мы мешаем другим... //-------------------------------------------------------- Хороший блатной - мертвый... //-------------------------------------------------------- Нет старик, это те дроиды которых я ищу...
|
|
|
|
|
Apr 3 2008, 14:31
|

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

|
Цитата(DRUID3 @ Apr 3 2008, 18:24)   Я еще 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 помедленей, упомянуто там же
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|