CUDA: Почему побитовые операторы иногда быстрее, чем логические операторы?

Когда я собираюсь выжать из ядра последнюю часть производительности, я обычно нахожу заменулогические операторы (&& а также||) с участиемпобитовые операторы (& а также|) делает ядро немного быстрее. Это наблюдалось при просмотре сводки времени ядра в CUDA Visual Profiler.

Итак, почему побитовые операторыБыстрее чем логические операторы в CUDA? Я должен признать, что онине всегда быстрее, но много раз они есть. Интересно, что волшебство может дать это ускорение.

Отказ от ответственности: я знаю, что логические операторы короткого замыкания и побитовые операторы не делают. Я хорошо знаю, как эти операторы могут быть использованы неправильно, что приведет к неправильному коду. Я использую эту замену с осторожностью, только когда результирующая логика остается прежней, ускорение и полученное таким образом ускорение имеют для меня значение :-)

Ответы на вопрос(3)

Ваш ответ на вопрос