-
- Про индусов ты таки прав. Для начала, на кой хер там плавучка? Некоторые вон, посмотри, и без таблиц обходятся. Там ж синус не рандомно в алгоритме нужен, а в какой-то последовательности, прошу меня поправить, я уж не помню. И в принципе когда fk0(204 знак., 01.03.2019 13:07, ссылка)
- Это пиздец, таблицы можно делать хотя бы на пол-пи, а не два пи и миррорить. Кода больше? Зато промахов кеша в таблицах неебического размера меньше. Про что я выше писал, не осилил, но смотри таблицу разбили на 1/2n и она стала fk0(1115 знак., 01.03.2019 13:19)
- У Cortex-M3 есть инструкция RBIT, а кроме того, bit-reverse по любому не самая затратная часть FFT. - йцукен(01.03.2019 14:12)
- Это пиздец, таблицы можно делать хотя бы на пол-пи, а не два пи и миррорить. Кода больше? Зато промахов кеша в таблицах неебического размера меньше. Про что я выше писал, не осилил, но смотри таблицу разбили на 1/2n и она стала fk0(1115 знак., 01.03.2019 13:19)
- Недостаток оптимизации при компиляции? Странно, что не отключили лишнее. - Nikolay_Po(01.03.2019 11:25)
- Виноват, сам дурак. Там есть функция инициализации структуры, в ней switch на все размеры, он и подтягивает. Можно инициализацию делать ручками. Стало в 2 раза меньше. Коэффициенты FFT сделаны под макс. размер, 32 кБ на ровном месте. В общем, всё SciFi(16 знак., 01.03.2019 11:34 - 11:38)
- Стесняюсь спросить, какие таблицы присутствуют в БПФ? - Крок(01.03.2019 12:09)
- Вот такие: - SciFi(01.03.2019 12:12, ссылка)
- Мда... Разве не должны были выоптимизироваться лишние таблицы, что на неиспользуемых ветках switch? До этого из CMSIS лишь фильтры использовал, там никаких проблем - поворотных коэффициентов не надо, как для БПФ. - Nikolay_Po(01.03.2019 11:48)
- Чтобы они выоптимизировались нужен lto, у вас же fft идёт библиотекой, по умолчанию такие штуки не оптимизируются. Вдруг вы в эту дичь прыгаете по указателю - lloyd(01.03.2019 12:07)
- Что куда идёт? Исходники вставляю. - SciFi(01.03.2019 12:13)
- Ну, ссылка на переменную есть в коде, уже не удалит - lloyd(01.03.2019 14:24)
- Если ссылка на переменную в коде не производит побочных эффектов, то запросто удаляется, к примеру, Microchip XC16, даже в бесплатной версии. - Nikolay_Po(01.03.2019 14:44)
- LTO удаляет. - SciFi(01.03.2019 14:39)
- Ну, ссылка на переменную есть в коде, уже не удалит - lloyd(01.03.2019 14:24)
- Что куда идёт? Исходники вставляю. - SciFi(01.03.2019 12:13)
- Это я тормознул. Когда сделал правильно, неиспользованные case сами заоптимизировались. - SciFi(01.03.2019 12:06)
- Чтобы они выоптимизировались нужен lto, у вас же fft идёт библиотекой, по умолчанию такие штуки не оптимизируются. Вдруг вы в эту дичь прыгаете по указателю - lloyd(01.03.2019 12:07)
- Стесняюсь спросить, какие таблицы присутствуют в БПФ? - Крок(01.03.2019 12:09)
- Виноват, сам дурак. Там есть функция инициализации структуры, в ней switch на все размеры, он и подтягивает. Можно инициализацию делать ручками. Стало в 2 раза меньше. Коэффициенты FFT сделаны под макс. размер, 32 кБ на ровном месте. В общем, всё SciFi(16 знак., 01.03.2019 11:34 - 11:38)
- Про индусов ты таки прав. Для начала, на кой хер там плавучка? Некоторые вон, посмотри, и без таблиц обходятся. Там ж синус не рандомно в алгоритме нужен, а в какой-то последовательности, прошу меня поправить, я уж не помню. И в принципе когда fk0(204 знак., 01.03.2019 13:07, ссылка)