我有以下CUDA核心,其中执行计算上昂贵的计算然后在两个操作中使用.
偶尔,我想myKernel
没有operationOne
.我知道代码分支通常是个坏主意,但是如果所有线程都运行相同的分支,那么仍然存在很大的低效率吗?即以下是一个坏主意?
__global__ void myKernel(bool doOpOne, ...) {
// usefulValue is computed
if(doOpOne) {
// perform operation one
}
// perform operation two
}
Run Code Online (Sandbox Code Playgroud)