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

 
 
> sin/cos в eclipse с использованием HW float
alexPec
сообщение May 2 2015, 16:25
Сообщение #1


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

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



Всем доброго дня.
Поставил в SOPC hardware floating point, который в составе nios, в Q9.1 не увидел в objdump при вычислении sin ни одной инструкции custom. При обычных умножить/плюс/минус вызываются инструкции custom. И вычисление sin/cos занимает тучу времени. Его как то можно при sin/cos заставить использовать ядро HW float или самому придется городить через ряд Тейлора?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 4)
vadimuzzz
сообщение May 3 2015, 01:24
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



тут пишут, что линкер подключает неоптимизированную версию libm (см. сообщение AlejandroLG). Но там же высказывается мнение, что лучше делать для синуса свои инструкции на основе таблиц.
Go to the top of the page
 
+Quote Post
alexPec
сообщение May 3 2015, 07:58
Сообщение #3


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

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



Цитата(vadimuzzz @ May 3 2015, 05:24) *
тут пишут, что линкер подключает неоптимизированную версию libm (см. сообщение AlejandroLG). Но там же высказывается мнение, что лучше делать для синуса свои инструкции на основе таблиц.



Значит путь правильный, пока так и решил проблему - сделал таблицу, видимо лучше не сделать.
Go to the top of the page
 
+Quote Post
serjj
сообщение May 5 2015, 06:09
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



Цитата
При обычных умножить/плюс/минус вызываются инструкции custom. И вычисление sin/cos занимает тучу времени

При вычислении sin/cos с плавающей точкой возможно деление используется? Насколько я помню деление в модуле кастомных инструкций подключается отдельно. Попробуйте его подключить и проверить, что оно вызывается, по аналогии с вашим тестом для умножения/сложения. Я в 14.1 qsys ставил новый альтеровский сопроцессор для плавающей точки, там деление вроде по-умолчанию включено. Но существенного ускорения так и не смог получить - у меня была векторная операция с поэлементным делением, ниос его не успевал сделать, в итоге пока не стал разбираться и заменил на целочисленные вычисления.
Go to the top of the page
 
+Quote Post
gridinp
сообщение May 7 2015, 06:59
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 121
Регистрация: 7-04-08
Из: Наро-Фоминск
Пользователь №: 36 543



Ключевой момент - есть ли в строке gcc опция -mcustom-fpu-cfg=..., если нет то надо разбираться, она попадает в makefile при "Generate BSP"
https://gcc.gnu.org/onlinedocs/gcc/Nios-II-Options.html

Сообщение отредактировал gridinp - May 7 2015, 07:01
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 27th July 2025 - 02:04
Рейтинг@Mail.ru


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