库达的分支分歧

时间:2018-03-10 19:49:16

标签: 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
}

虽然这段代码给了我整个程序的错误答案。我错过了一些明显的东西吗?

1 个答案:

答案 0 :(得分:1)

这一切都归结为

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

你能优化吗?不确定你能不知道其余的代码。

相关问题