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

 
 
> Умножение и деление в ядрах АРМ
AlexeyT
сообщение Jul 1 2018, 20:21
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 45
Регистрация: 5-06-07
Пользователь №: 28 207



Всем доброго дня!

Есть вопрос: какие операции с плавающей точкой выполняются быстрее - умножение или деление?
То есть, как эффективней считать нормировку на ядре Arm:

double a;
double b, c, d;//значения присваиваются в ходе выполнения программы

a = sqrt(b*b + c*c + d*d);

b /= a;
c /= a;
d /= a;

Или:
double a;
double b, c, d;//значения присваиваются в ходе выполнения программы

a = 1./sqrt(b*b + c*c + d*d);

b *= a;
c *= a;
d *= a;

Ядрa: Cortex-M1 и Cortex-M4F (что не особо важно, т.к. расчеты должны быть в формате double и плавающая запятая в Cortex-M4F не поможет)

Спасибо
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Genadi Zawidowsk...
сообщение Jul 5 2018, 12:21
Сообщение #2


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

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Неделю назад выложили (arm.com) очередную версию arm-none-eabi-gcc с поправленной библиотекой в части тормозовы вычисления функций с одинарной точностью на процессорах без DP FPU.
Цитата
◦Fixed powf/expf/exp2f/logf/log2f performance regression


Сообщение отредактировал Genadi Zawidowski - Jul 5 2018, 12:26
Go to the top of the page
 
+Quote Post
AVI-crak
сообщение Jul 5 2018, 16:09
Сообщение #3


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

Группа: Участник
Сообщений: 182
Регистрация: 16-10-15
Пользователь №: 88 894



Цитата(Genadi Zawidowski @ Jul 5 2018, 18:21) *
Неделю назад выложили (arm.com) очередную версию arm-none-eabi-gcc с поправленной библиотекой в части тормозовы вычисления функций с одинарной точностью на процессорах без DP FPU.

Какое странное совпадение, неделю назад я выловил последний баг в собственной библиотеке стандартных математических функций для одинарной точности. Но у меня была задача сделать минимальную ошибку вычислений. Значит зря старался?
Кстати - дай плиз ссылку для особоленивых... А то у них там обе ноги сломать можно, пока найдёшь то что нужно.

И ещё.
Вычисление квадратного корня на arm чипе с аппаратной поддержкой 14тиков для одинарной точности, и кажется 36тиков для двойной(не уверен в точности). Это аппаратные инструкции для Cortex-M4-7, которых естественно нету в Cortex-Axx - потому как это отдельная ветка развития ядра, и у них вроде как война.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- AlexeyT   Умножение и деление в ядрах АРМ   Jul 1 2018, 20:21
- - aaarrr   Умножение быстрее. Но на фоне sqrt() вряд ли замет...   Jul 1 2018, 20:37
|- - AlexeyT   Цитата(aaarrr @ Jul 1 2018, 23:37) Умноже...   Jul 1 2018, 21:48
|- - aaarrr   Цитата(AlexeyT @ Jul 2 2018, 00:48) А на ...   Jul 1 2018, 22:06
|- - Forger   Цитата(AlexeyT @ Jul 2 2018, 00:48) нет н...   Jul 2 2018, 05:21
|- - BioWolf2000   Цитата(Forger @ Jul 2 2018, 08:21) Компил...   Jul 5 2018, 10:27
- - Den64   Попробуйте в симуляторе проверить или в железе. До...   Jul 1 2018, 22:56
- - Arlleex   Интересно откуда такая разница в вычислениях корня...   Jul 5 2018, 10:48
|- - jcxz   Цитата(Arlleex @ Jul 5 2018, 13:48) Интер...   Jul 5 2018, 11:11
||- - Arlleex   Цитата(jcxz @ Jul 5 2018, 15:11) Ну как о...   Jul 5 2018, 11:16
||- - jcxz   Цитата(Arlleex @ Jul 5 2018, 14:16) Надею...   Jul 5 2018, 11:41
|- - scifi   Цитата(Arlleex @ Jul 5 2018, 13:48) Интер...   Jul 5 2018, 11:54
- - Arlleex   В общем в очередной раз "не железо виновато.....   Jul 5 2018, 12:01
- - Genadi Zawidowski   https://developer.arm.com/open-source/gnu-t...nu-r...   Jul 5 2018, 19:02
|- - AVI-crak   Цитата(Genadi Zawidowski @ Jul 6 2018, 01...   Jul 6 2018, 01:20
- - Genadi Zawidowski   выбор аппаратного или программного в моем bare met...   Jul 6 2018, 04:52


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

 


RSS Текстовая версия Сейчас: 2nd August 2025 - 15:17
Рейтинг@Mail.ru


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