【发布时间】:2012-03-28 11:42:10
【问题描述】:
当我想从内核中榨取最后一点性能时,我通常会发现用位运算符逻辑运算符(&& 和||) /strong> (& 和|) 使内核更快一点。通过查看 CUDA Visual Profiler 中的内核时间摘要可以观察到这一点。
那么,为什么在 CUDA 中按位运算符比逻辑运算符更快?我必须承认,它们并不总是更快,但很多时候确实如此。我想知道什么魔法可以让这个加速。
免责声明:我知道逻辑运算符短路和位运算符没有。我很清楚这些运算符如何被滥用而导致错误的代码。只有当结果逻辑保持不变、有加速并且因此获得的加速对我来说很重要时,我才会谨慎使用此替换:-)
【问题讨论】:
-
感谢您提供出色的优化提示!
-
罗杰:很高兴能帮上忙!当我也发现这一点时,我感到很惊讶:-)
标签: cuda bitwise-operators logical-operators