编译器错误PGI OpenACC“pgf90_mzero8”未定义

时间:2017-10-18 14:44:53

标签: openacc pgi pgi-accelerator

我正在尝试在fortran中编译一个子程序!$ acc routine seq 我收到以下错误消息

/scratch/tmp/pgaccKU0jSWcDesiI.gpu(93):错误:标识符“pgf90_mzero8”未定义

编译“/scratch/tmp/pgnvdgV0jsxZLyFWv.nv0”时检测到1个错误

PGI编译器版本17.4

案例

子程序xx(ndime,pgaus,yy)   !$ acc例程seq
  隐含无   整数(4):: ndime,pgaus   真实的(8):: yy(ndime,ndime,pgaus)

yy = 0.0

结束子程序xx <​​/ p>

1 个答案:

答案 0 :(得分:1)

这是一个已知问题。我假设您在代码中使用数组语法将数组清零,例如“arr = 0.0d0”。前端编译器识别此习惯用法并替换为优化的运行时例程。这在编译很早就发生了,早在编译器知道这部分代码将被编译到设备之前。不幸的是,我们还没有将此运行时例程移植到设备上,因此错误。

最简单的解决方法是使用“-Mnoidiom”标志进行编译以禁用此优化。