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

 
 
> Умножение и деление в ядрах АРМ
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
Ответов
aaarrr
сообщение Jul 1 2018, 20:37
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Умножение быстрее. Но на фоне sqrt() вряд ли заметите разницу.
Go to the top of the page
 
+Quote Post
AlexeyT
сообщение Jul 1 2018, 21:48
Сообщение #3


Участник
*

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



Цитата(aaarrr @ Jul 1 2018, 23:37) *
Умножение быстрее. Но на фоне sqrt() вряд ли заметите разницу.



Ну у Уоррена есть примеры сверхбыстрого вычисления sqrt для float.

А на сколько быстрее? Сам пока оценить не могу, нет ни компилятора, чтобы ассемблерный листинг посмотреть, ни само собой отладочной платы. Может кто-нибудь дать оценку?
Go to the top of the page
 
+Quote Post
Forger
сообщение Jul 2 2018, 05:21
Сообщение #4


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

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(AlexeyT @ Jul 2 2018, 00:48) *
нет ни компилятора

Компилятор вместе со средой можно скачать бесплатно, для маленького кода можно использовать также бесплатно:
https://www.keil.com/download/product/
https://www.iar.com/iar-embedded-workbench/

Есть и другие среды, целиком бесплатные (на базе компилятора GCC).

Внутри любой нормальной среды есть симулятор, тогда отладочная плата для данной ситуации не обязательна.


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- AlexeyT   Умножение и деление в ядрах АРМ   Jul 1 2018, 20:21
|- - aaarrr   Цитата(AlexeyT @ Jul 2 2018, 00:48) А на ...   Jul 1 2018, 22:06
|- - 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   Неделю назад выложили (arm.com) очередную версию a...   Jul 5 2018, 12:21
|- - AVI-crak   Цитата(Genadi Zawidowski @ Jul 5 2018, 18...   Jul 5 2018, 16:09
- - 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 Текстовая версия Сейчас: 1st August 2025 - 20:19
Рейтинг@Mail.ru


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