gfortran -openacc的问题

  • 0 replies
  • 78 views
gfortran -openacc的问题
« 于: 九月 17, 2019, 01:26:59 pm »
刚接触openacc,问题很菜,望各位[名词6]海涵。

我目前从事的是科学计算,主要使用Fortran语言,编译器是gfortran,同时也安装了pgfortran。
目前设备上安装有GPU,使用命令pgaccelinfo可以找到该设备。

编程测试,代码如下:
program main
#ifdef _OPENACC
  use openacc
#endif
  implicit none

#ifdef _OPENACC
  !call acc_set_device_type(acc_device_not_host)
  print*, "Number of device:"&
       ,acc_get_num_devices(acc_device_not_host)
#else
  print*,"not support"
#endif

end program main

分别使用gfortran和pgfortran进行编译:
gfortran -fopenacc main.F90
or
pgfortran -acc main.F90
均可顺利通过,但执行结果确并不一样。

gfortran  编译的可执行程序运行结果为:Number of device:            0
pgfortran编译的可执行程序运行结果为:Number of device:            1

我的gfortran版本是gcc version 9.1.0
不太理解这个结果,还望大大们不吝赐教,解答我的疑惑。