當我到擠壓性能的最後一位出一個內核的,我通常會發現與位運算符(&
和|
)更換邏輯運算符(&&
和||
),使內核快一點點。通過查看CUDA Visual Profiler中的內核時間彙總可以看到這一點。CUDA:爲什麼按位運算符有時比邏輯運算符更快?
那麼,爲什麼按位運算符比CUDA中的邏輯運算符要快?我必須承認,他們是並不總是更快,但他們很多次。我不知道什麼魔法可以讓這個加速。
聲明:我知道邏輯運算符短路和按位運算符沒有。我很清楚這些操作員如何被濫用導致錯誤的代碼。我用這個替代小心只有當產生的邏輯是一樣的,有一個加速,並由此獲得了加速的問題給我:-)
謝謝你提供了一個很棒的優化技巧! – 2012-03-28 16:49:58
Roger:很高興幫助!當我發現這一點時,我感到很驚訝:-) – 2012-03-29 00:04:11