-
- Если можно, поясните на конкретном примере. Вот функция, работу которой я хотел бы ускорить (FIR-фильтр). Это в ассемблерном стиле? И в каком другом стиле это можно написать? йцукен(551 знак., 11.12.2017 14:31)
- мой фир 0men(778 знак., 11.12.2017 15:47)
- Если там можно применить SIMD, то лучше ручками, компилятор сам вряд ли догадается. - SciFi(11.12.2017 14:57)
- ИАР не догадывается. Вот мой вариант с SIMD; к сожалению, выигрыш по скорости в пределах статистической погрешности. йцукен(762 знак., 11.12.2017 16:29)
- Пример кода от ARM. За счёт встроенных функций, это больше ассемблер, чем Си. Цикл фильтра функции arm_fir_fast_q15() для Cortex-M4 (комментарии вырезаны для наглядности). Из сишных остались лишь инкремент, декремент и условие цикла: Nikolay_Po(691 знак., 11.12.2017 15:34)
- Хардкорненько :) - Evgeny_CD(11.12.2017 15:37)
- Местами ещё и фееричненько. Ручное разматывание цикла: SciFi(1166 знак., 11.12.2017 15:41)
- Хардкорненько :) - Evgeny_CD(11.12.2017 15:37)
- От открытая либа от ARM для NEON -> Для примера FIR Evgeny_CD(202 знак., 11.12.2017 15:21, ссылка)
- CMSIS DSP, там тоже что-то есть --> - SciFi(11.12.2017 15:25, ссылка)
- Спасибо! - Evgeny_CD(11.12.2017 15:30)
- CMSIS DSP, там тоже что-то есть --> - SciFi(11.12.2017 15:25, ссылка)
- +1. Если это код, работающий с "объектами в памяти", то выигрыш будет небольшой. Исключение - SIMD. Если это работа с железом - да, короткий asm кусок может быть сильно быстрее С. Но это совсем не переносимая оптимизация. - Evgeny_CD(11.12.2017 13:47)
- Если можно, поясните на конкретном примере. Вот функция, работу которой я хотел бы ускорить (FIR-фильтр). Это в ассемблерном стиле? И в каком другом стиле это можно написать? йцукен(551 знак., 11.12.2017 14:31)