OpenACC和floor / ceil功能

时间:2016-09-04 16:34:31

标签: c++ floor openacc ceil

我想在OpenACC项目中使用C的floor / ceil函数。当我想对值进行原子更新时。

#pragma acc atomic update
x=floor(x)+c

编译器显示以下消息:

PGCC-S-0155-原子表达式无效 PGCC-S-0155-原子区域无效。

可能是什么问题?

1 个答案:

答案 0 :(得分:0)

原子操作用于简单直接的操作,如+, - ,*和/。如果您查看OpenACC规范[link]的第2.12节(原子构造),您将看到在原子构造中使用的可用操作列表。

因此,尽管您可以在GPU上执行floor,但您无法在 atomic 部分中执行此操作。