从 PGi 版本 18.1 到 18.4 是否有关于#pragma 例程 seq 的任何更改,我的代码在 18.1 版本中运行良好,但在我使用较新版本时出现错误。我使用数学库生成内核。
使用命名空间标准;#pragma acc 例程 double myfunc(double x) { return(fabs(x)); }
例程指令的默认并行度是(或曾经是)顺序的。即#pragma accroutine 等价于#pragma accroutine seq
这在 18.1 版中运行良好。但我认为新版本可能会有一些变化,因为当我使用 18.4 版本编译时,它会报错,抱怨数学库函数。
奇怪的是也会导致错误
#include cmath
#include "openacc.h"
使用命名空间标准;
#pragma acc routine seq
double sine( double x )
{
return ( sin( x ) );
}
给出编译错误,但是当我将数学库更改为 math.h 时,它非常好,谁能解释为什么不使用 pgc++ ?