-
- Некоторый косяк у себя нашёл. Перетестил, и учёл возможность
неявной конвертации в double... POV(420 знак., 10.04.2024 23:49, картинка)
- Очень полезный флаг: -Wdouble-promotion. Eddy_Em(34 знак., 11.04.2024 07:41, ссылка, ссылка)
- Херасе оно мне нарисовало! Спасибо!... POV(68 знак., 11.04.2024 08:00)
- Главное - с flto аккуратнее. Оно у меня кое-какой старый код так оптимизировало, что ничего не работало. - Eddy_Em(11.04.2024 08:09)
- Херасе оно мне нарисовало! Спасибо!... POV(68 знак., 11.04.2024 08:00)
- Очень полезный флаг: -Wdouble-promotion. Eddy_Em(34 знак., 11.04.2024 07:41, ссылка, ссылка)
- VMUL.F32 на Cortex M4 занимает 1 такт, поэтому это будет быстрее. Код __hardfp_pow это здоровенная портянка с циклами внутри, которая вызывает другие функции и внутренние вычисления проводит в double. Даже если ты собирался посчитать с powf, все равно функция большая и сложная. У ARM очень простой и убогий FPU, у него нет log2, поэтому быстро через логарифмы экспоненту не посчитать. - RxTx(08.04.2024 18:03)
- Во первых powf(), pow это доубле. Во вторых, конечно первый быстрее, потому что float powPOV(float x); а float powf(float, float) вычисляется через ряд Тейлора - IBAH(08.04.2024 17:50)
- Так, я понял - проще самому попробовать )), но вышло странно... POV(313 знак., 08.04.2024 00:30)
- single precision FPU при double как бы и не используется. при powf должно быть быстрее на float, чем pow. но если умножать, то наверно медленнее - SciFi может сказать, будет ли promotion до double - Vit(08.04.2024 17:07)
- И тишина... кейл может FPU не использует? Почему скорость
выполнения операция программно и аппаратно одинаковы при высокой
оптимизации? - POV(08.04.2024 13:39)
- Потому, что использование FPU требует кучу тактов для подготовки, загрузки и выгрузки данных. А программное вычисление с высокой оптимизацией, выполняется прямо в регистрах и не требует накладных расходов. Видимо так. Не проверял лично, но когда рассматривал выгоду от использования аппаратного вычислителя, эти моменты разочаровывали. Nikolay_Po(77 знак., 08.04.2024 15:19)
- НЕ понял это при исползовании FPU или нет... POV(124 знак., 07.04.2024 22:31, ссылка, картинка)
- Я не дописал, ищивините. Будет ФПУ - POV(07.04.2024 20:54)
- На вскидку pow это просто туча умножений. А насколько он медленнее
зависит от проца и компилера. - Codavr(07.04.2024 19:54)
- pow(x, 1.5) - это сколько умножений? Хочу всё знать. - SciFi(07.04.2024 19:55)
- В общем случае как то так. Матан 1 курс. Codavr(1 знак., 07.04.2024 22:52, ссылка)
- Адъ! Пико-паскальщики считают такие выражения через логарифм. - Kpoк(07.04.2024 23:18)
- любой калькулятор считает икс в степени игрек через логогрифм)) - Alex68(08.04.2024 00:28)
- ЛогОрифм - это что-то из поэзии :-) - Kpoк(08.04.2024 08:30)
- А логарифм через ряд Тейлора :) - AlexBi(07.04.2024 23:37)
- любой калькулятор считает икс в степени игрек через логогрифм)) - Alex68(08.04.2024 00:28)
- Адъ! Пико-паскальщики считают такие выражения через логарифм. - Kpoк(07.04.2024 23:18)
- В общем случае как то так. Матан 1 курс. Codavr(1 знак., 07.04.2024 22:52, ссылка)
- pow(x, 1.5) - это сколько умножений? Хочу всё знать. - SciFi(07.04.2024 19:55)
- Компилер сам решит. Если он умный, канэш. - mse homjak(07.04.2024 18:01)
- Проверять надо. Для куба уже не факт, что pow будет сильно
медленней. - Eddy_Em(07.04.2024 17:52)
- А как Куб связан с вычислениями? Тут уж как ГЦЦ решит. - POV(07.04.2024 22:04)
- А чтобы гцц правильно решил, функцию pow надо еще и правильно написать… - Eddy_Em(07.04.2024 23:16)
- А как Куб связан с вычислениями? Тут уж как ГЦЦ решит. - POV(07.04.2024 22:04)
- Два умножения гораздо быстрее, адназначна. Кстати, если уж
ускоряться, там наверняка ещё есть резервы :-) - SciFi(07.04.2024 17:24)
- И только пикоман промолчал, потому что он был очень воспитанный. - Kpoк(07.04.2024 23:19)
- Некоторый косяк у себя нашёл. Перетестил, и учёл возможность
неявной конвертации в double... POV(420 знак., 10.04.2024 23:49, картинка)