PGI 遇到的坑

以下记录为本人在使用PGI社区版编译器遇到的问题,包含两类问题

1,PGI编译器本身存在你的bug。

2,在其他编译器编译运行没问题,在PGI中出现问题。


版本(18.11社区版)

1,(bug)内置函数,EOSHIFT,当偏移量为0的时候,数组会重置为0,图例中对这段代码分别使用gfortran,ifort和pgfortran编译运行,前两个没有问题。

2,PGI对有些变量声明分配内存比较敏感。假如我定义变量A(n),当n为0时,pgfortran编译不通过。

3,程序中需要openmp并行时,使用其他编译器运行没有问题,使用pgi编译,加入指令 -mp=allcores.

运行结果会出现segment fault错误,原因未知!

4,程序循环中如果有累加数,就需要使用下面语句

!$acc loop reduction(+:a) 

这句话本身没有问题,但是如果在循环前用了data模块

!$acc& create(a)

千万不能create 变量a,不然计算时会出现segment fault错误

原文地址:https://www.cnblogs.com/dalanjing/p/10848834.html