繁体   English   中英

CUDA中的分支分歧

[英]branch divergence in cuda

我希望更改此代码以防止太多分支分歧

if (v == u) {
    ++c;
    ++u_t;
    ++v_t;
}
else if (v < u){
    ++u_t;
}
else {
    ++v_t;
}

这是我尝试过的:

u_t++;
if(v == u){
    ++c;
    ++v_t;
}
else{
    --u_t;
    ++v_t
}

尽管这段代码给了我整个程序错误的答案。 我在这里错过明显的东西吗?

这一切都归结为

if (v == u) ++c;
if (v <= u) ++u_t;
if (v >= u) ++v_t;

您可以优化吗? 不确定您是否可以不了解其余代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2025 STACKOOM.COM