All,
Today I tried to move my PGI from 16.5 to 16.9. On the CPU, all is well, but when I compile with GPU, a link step is throwing:
mpif90 -L/discover/swdev/mathomp4/Baselibs/GMAO-Baselibs-4_0_8/x86_64-unknown-linux-gnu/pgfortran_16.9-openmpi_2.0.1/Linux/lib -L/discover/swdev/mathomp4/Models/Heracles-UNSTABLE-PGI16/GEOSagcm/Linux/lib -pgc++libs -tp=px-64 -o Chem_Aod.x Chem_Aod.o libChem_Base.a /discover/swdev/mathomp4/Models/Heracles-UNSTABLE-PGI16/GEOSagcm/Linux/lib/libMAPL_Base.a /discover/swdev/mathomp4/Models/Heracles-UNSTABLE-PGI16/GEOSagcm/Linux/lib/libMAPL_Base_stubs.a /discover/swdev/mathomp4/Models/Heracles-UNSTABLE-PGI16/GEOSagcm/Linux/lib/libGMAO_eu.a /discover/swdev/mathomp4/Models/Heracles-UNSTABLE-PGI16/GEOSagcm/Linux/lib/libMAPL_cfio_r4.a /discover/swdev/mathomp4/Models/Heracles-UNSTABLE-PGI16/GEOSagcm/Linux/lib/libGMAO_gfio_r4.a /discover/swdev/mathomp4/Models/Heracles-UNSTABLE-PGI16/GEOSagcm/Linux/lib/libGMAO_mpeu.a -L/discover/swdev/mathomp4/Baselibs/GMAO-Baselibs-4_0_8/x86_64-unknown-linux-gnu/pgfortran_16.9-openmpi_2.0.1/Linux/lib -lnetcdff -lnetcdf -L/discover/swdev/mathomp4/Baselibs/GMAO-Baselibs-4_0_8/x86_64-unknown-linux-gnu/pgfortran_16.9-openmpi_2.0.1/Linux/lib -L/discover/swdev/mathomp4/Baselibs/GMAO-Baselibs-4_0_8/x86_64-unknown-linux-gnu/pgfortran_16.9-openmpi_2.0.1/Linux/lib -lnetcdf -lhdf5_hl -lhdf5 -lmfhdf -ldf -lsz -ljpeg -lgpfs -lcurl -lssl -lcrypto -lz -lrt -ldl -lm -L/discover/swdev/mathomp4/Baselibs/GMAO-Baselibs-4_0_8/x86_64-unknown-linux-gnu/pgfortran_16.9-openmpi_2.0.1/Linux/lib -lcurl -lssl -lcrypto -lssl -lcrypto -ldl -lz -lz -lrt -lm /discover/swdev/mathomp4/Baselibs/GMAO-Baselibs-4_0_8/x86_64-unknown-linux-gnu/pgfortran_16.9-openmpi_2.0.1/Linux/lib/libesmf.a -L/usr/local/other/SLES11.3/openmpi/2.0.1/pgi-16.9.0/lib -I/usr/local/other/SLES11.3/openmpi/2.0.1/pgi-16.9.0/lib -L/usr/local/other/SLES11.3/openmpi/2.0.1/pgi-16.9.0/lib -lmpi_usempif08 -lmpi_usempi_ignore_tkr -lmpi_mpifh -lmpi -L/usr/local/other/SLES11.3/openmpi/2.0.1/pgi-16.9.0/lib -lmpi -ldl -lrt -Mcuda=nofma,ptxinfo,7.0,cc35,maxregcount:72 -acc -ta=nvidia:wait,nofma,7.0,cc35,maxregcount:72 -Minfo=accel,ccff
/usr/local/sles11/pgi/linux86-64/16.9/include_acc/linkstub70.c:1:36: error: redefinition of ‘__cudaRegisterLinkedBinary_17m_StrTemplate_F90’
#define __REGISTERFUNCNAME_CORE(X) __cudaRegisterLinkedBinary##X
^
/usr/local/sles11/pgi/linux86-64/16.9/include_acc/linkstub70.c:2:31: note: in expansion of macro ‘__REGISTERFUNCNAME_CORE’
#define __REGISTERFUNCNAME(X) __REGISTERFUNCNAME_CORE(X)
^~~~~~~~~~~~~~~~~~~~~~~
/usr/local/sles11/pgi/linux86-64/16.9/include_acc/linkstub70.c:7:6: note: in expansion of macro ‘__REGISTERFUNCNAME’
void __REGISTERFUNCNAME(id) (void (*callback_fp)(void **), void *prelinked_fatbinc, void *foo, void (*dummy_ref)(void *)) \
^~~~~~~~~~~~~~~~~~
/tmp/pgcudaWKFeqNcRW1h1.reg.c:8:1: note: in expansion of macro ‘DEFINE_REGISTER_FUNC’
DEFINE_REGISTER_FUNC(_17m_StrTemplate_F90)
^~~~~~~~~~~~~~~~~~~~
/usr/local/sles11/pgi/linux86-64/16.9/include_acc/linkstub70.c:1:36: note: previous definition of ‘__cudaRegisterLinkedBinary_17m_StrTemplate_F90’ was here
#define __REGISTERFUNCNAME_CORE(X) __cudaRegisterLinkedBinary##X
^
/usr/local/sles11/pgi/linux86-64/16.9/include_acc/linkstub70.c:2:31: note: in expansion of macro ‘__REGISTERFUNCNAME_CORE’
#define __REGISTERFUNCNAME(X) __REGISTERFUNCNAME_CORE(X)
^~~~~~~~~~~~~~~~~~~~~~~
/usr/local/sles11/pgi/linux86-64/16.9/include_acc/linkstub70.c:7:6: note: in expansion of macro ‘__REGISTERFUNCNAME’
void __REGISTERFUNCNAME(id) (void (*callback_fp)(void **), void *prelinked_fatbinc, void *foo, void (*dummy_ref)(void *)) \
^~~~~~~~~~~~~~~~~~
/tmp/pgcudaWKFeqNcRW1h1.reg.c:5:1: note: in expansion of macro ‘DEFINE_REGISTER_FUNC’
DEFINE_REGISTER_FUNC(_17m_StrTemplate_F90)
^~~~~~~~~~~~~~~~~~~~
/usr/local/sles11/pgi/linux86-64/16.9/include_acc/linkstub70.c:1:36: error: redefinition of ‘__cudaRegisterLinkedBinary_10m_zeit_F90’
#define __REGISTERFUNCNAME_CORE(X) __cudaRegisterLinkedBinary##X
^
/usr/local/sles11/pgi/linux86-64/16.9/include_acc/linkstub70.c:2:31: note: in expansion of macro ‘__REGISTERFUNCNAME_CORE’
#define __REGISTERFUNCNAME(X) __REGISTERFUNCNAME_CORE(X)
^~~~~~~~~~~~~~~~~~~~~~~
/usr/local/sles11/pgi/linux86-64/16.9/include_acc/linkstub70.c:7:6: note: in expansion of macro ‘__REGISTERFUNCNAME’
void __REGISTERFUNCNAME(id) (void (*callback_fp)(void **), void *prelinked_fatbinc, void *foo, void (*dummy_ref)(void *)) \
^~~~~~~~~~~~~~~~~~
/tmp/pgcudaWKFeqNcRW1h1.reg.c:9:1: note: in expansion of macro ‘DEFINE_REGISTER_FUNC’
DEFINE_REGISTER_FUNC(_10m_zeit_F90)
^~~~~~~~~~~~~~~~~~~~
/usr/local/sles11/pgi/linux86-64/16.9/include_acc/linkstub70.c:1:36: note: previous definition of ‘__cudaRegisterLinkedBinary_10m_zeit_F90’ was here
#define __REGISTERFUNCNAME_CORE(X) __cudaRegisterLinkedBinary##X
^
/usr/local/sles11/pgi/linux86-64/16.9/include_acc/linkstub70.c:2:31: note: in expansion of macro ‘__REGISTERFUNCNAME_CORE’
#define __REGISTERFUNCNAME(X) __REGISTERFUNCNAME_CORE(X)
^~~~~~~~~~~~~~~~~~~~~~~
/usr/local/sles11/pgi/linux86-64/16.9/include_acc/linkstub70.c:7:6: note: in expansion of macro ‘__REGISTERFUNCNAME’
void __REGISTERFUNCNAME(id) (void (*callback_fp)(void **), void *prelinked_fatbinc, void *foo, void (*dummy_ref)(void *)) \
^~~~~~~~~~~~~~~~~~
/tmp/pgcudaWKFeqNcRW1h1.reg.c:6:1: note: in expansion of macro ‘DEFINE_REGISTER_FUNC’
DEFINE_REGISTER_FUNC(_10m_zeit_F90)
^~~~~~~~~~~~~~~~~~~~
pgacclnk: child process exit status 2: /usr/local/sles11/pgi/linux86-64/16.9/bin/pgnvd
make: *** [Chem_Aod.x] Error 2
Note the same options worked fine with PGI 16.5, so maybe a flag has changed behavior? Any ideas?
Matt