-
- И сколько удаётся выиграть по скорости, если сравнивать ассемблер с ИАРом? - йцукен(11.12.2017 13:36)
- Из опыта. Ускорение низкоуровневых процедур GUI, работающего с простым frame buffer. Оптимизация С кода - 20 раз за неделю (на входе был эпичный говнокод). Асм код - 10% за неделю на показавшемся нам перспективном куске. - Evgeny_CD(11.12.2017 13:50 - 13:54)
- тут зависит от стиля программирования на С. Я как захерачу X-макросы, что все работает только на высшей оптимизации. И что тут сравнивать? Если писать в ассемблерном стиле на С, будет минимальная разница. - VLLV(11.12.2017 13:43)
- Если можно, поясните на конкретном примере. Вот функция, работу которой я хотел бы ускорить (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)
- В большей части моих проектов я согласен с таким подходов. Но был один, в котором была куча матричного матана и адских алгоритмов оптимизации. Вот там скорость была критична, хоть увеличение размера кода раза в 2 или даже в 3 никого бы не Evgeny_CD(121 знак., 11.12.2017 12:51 - 13:06)
- Это то же самое, просто тот "небольшой участок кода" чрезмерно распух :-) - SciFi(11.12.2017 12:52)
- И сколько удаётся выиграть по скорости, если сравнивать ассемблер с ИАРом? - йцукен(11.12.2017 13:36)