我想在一个OpenACC项目中使用C的floor/ceil函数。当我想要对一个值进行原子更新时。
#pragma acc atomic update
x=floor(x)+c编译器显示以下消息:
PGCC-S-0155-无效的原子表达式PGCC-S-0155-无效的原子区域。
可能的问题是什么?
发布于 2017-01-04 02:45:19
原子操作用于简单直接的操作,如+、-、*和/。如果您查看OpenACC规范第42页[link]的2.12节(原子构造),您将看到可在原子构造中使用的操作列表。
所以,虽然你可以在图形处理器上做floor,但你不能在原子节中做。
https://stackoverflow.com/questions/39319139
复制相似问题