Очень интересный кейс. Ветвление, по идее, не должно влиять на перформанс настолько сильно благодаря спекулятивному исполнению. Решил повторить бенчмарку и, к сожалению, воспроизвести результат не получилось:
Может ли быть так, что на перформанс в статье больше влияет обращение к памяти или не очень удачная векторизация? Кажется, наш главный bottle neck - это один единственный аккумулятор. И у ядра должно быть достаточно ресурсов, чтобы параллельно посчитать и if (true), и if (false), а затем засунуть в аккумулятор правильное значение после того, как узнает правильный ответ.
Это действительно слегка натянуто, как я отметил в послесловии. Но мне это все равно кажется интересным. К примеру, кто-то мог бы провести исследование по использованию FFT для разложения изображения, построенного на выходном ответе. Возможно это могло бы показать консистентность ответа. Или нет.
Очень интересный кейс. Ветвление, по идее, не должно влиять на перформанс настолько сильно благодаря спекулятивному исполнению. Решил повторить бенчмарку и, к сожалению, воспроизвести результат не получилось:
Может ли быть так, что на перформанс в статье больше влияет обращение к памяти или не очень удачная векторизация?
Кажется, наш главный bottle neck - это один единственный аккумулятор. И у ядра должно быть достаточно ресурсов, чтобы параллельно посчитать и if (true), и if (false), а затем засунуть в аккумулятор правильное значение после того, как узнает правильный ответ.
Это действительно слегка натянуто, как я отметил в послесловии. Но мне это все равно кажется интересным. К примеру, кто-то мог бы провести исследование по использованию FFT для разложения изображения, построенного на выходном ответе. Возможно это могло бы показать консистентность ответа. Или нет.