【发布时间】:2016-05-08 21:15:22
【问题描述】:
我有以下代码:
#pragma acc kernels
for (i = 0; i<shape1Count; i++){
for (j = 0; j<shape2Count; j++){
if (kkk==1){
intersectionsCount++;
} else {
intersectionsCount++;
}
}
}
kkk 被赋值为 1。
我发现 if 条件甚至没有运行,这意味着无论是真还是假,intersectionCount 都不会增加。
我的假设是,GPU/加速器无法处理 if 条件。这是真的吗?
如果是真的,我该怎么办?
附言我对 GPU 编程非常陌生。
非常感谢
【问题讨论】:
-
您使用的是什么编译器,在什么平台上?这应该会运行,尽管如果增量是使用原子指令实现的,它可能会运行得更好。
标签: if-statement openacc