Re[13]: 2D-Linq и оптимизация цифровых фильтров - 4
От: Sinclair Россия https://github.com/evilguest/
Дата: 05.08.20 17:41
Оценка:
Здравствуйте, Mystic Artifact, Вы писали:
S>>Всё равно не понимаю, куда он тормозит при исполнении. Я сейчас вывожу ручки для отключения оптимизаций; можно будет попробовать сгенерировать код, максимально близкий к UnsafeSauvolaScalar.
MA> Ты разглядел последние два (новых) столбика в последних запусках? (Бранчинг)
Ну, в каком-то смысле понятно — в векторном случае бранчинга немножко меньше, т.к. там финальное сравнение с порогом выполнено через SIMD и пень-колоду.
В скалярном всё же 1 бранч на цикл + 1 бранч на тернарный оператор.
В обычном unsafe варианте мы имеем + 3 бранча на "если xmin<0", но они, похоже, хорошо предсказываются процессором. Более того, я не понимаю, каким хреном у unsafe получается вдвое меньше mispredictions чем у LinqScalar.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.