Linking error using cc35, cc50, and cc60

I’m using PGI community edition 16.10. I’m building a CUDA Fortran + OpenACC code with cc35, c50, and cc60 specified. I get the following error at link time when I use all three options. The weird thing is that I can like properly when I use any two of those options (-ta=cc35,cc50, -ta=cc35,cc60, or -ta=cc50,cc60). Any ideas?

Many thanks,
Ron

mpif90 -o nekbone -acc -Minfo=accel -Mcuda=cc35,cc50,cc60 -ta=nvidia:cc35,cc50,cc60 obj/cg.o obj/driver.o obj/math.o obj/mxm_wrapper.o obj/prox_dssum.o obj/prox_setup.o obj/semhat.o obj/speclib.o obj/delay_dum.o obj/hsmg_dum.o obj/ax_cuda.o obj/comm_mpi.o obj/mxm_std.o obj/blas.o obj/jl_gs.o obj/jl_sort.o obj/jl_sarray_transfer.o obj/jl_sarray_sort.o obj/jl_gs_local.o obj/jl_crystal.o obj/jl_comm.o obj/jl_tensor.o obj/jl_fail.o obj/jl_fcrystal.o obj/jl_sleep.o -Mcuda=cc35,cc50,cc60 -ta=nvidia:cc35,cc50,cc60
pgf90-Fatal-/opt/pgi/linux86-64/16.10/bin/pgacclnk TERMINATED by signal 11
Arguments to /opt/pgi/linux86-64/16.10/bin/pgacclnk
/opt/pgi/linux86-64/16.10/bin/pgacclnk -nvidia /opt/pgi/linux86-64/16.10/bin/pgnvd -cuda8.0 -cudalink -computecap=35 -computecap=50 -computecap=60 -computecap=35 -computecap=50 -computecap=60 -computecap=35 -computecap=50 -computecap=60 -computecap=35 -computecap=50 -computecap=60 /usr/bin/ld /usr/lib/x86_64-linux-gnu/crt1.o /usr/lib/x86_64-linux-gnu/crti.o /opt/pgi/linux86-64/16.10/lib/trace_init.o /usr/lib/gcc/x86_64-linux-gnu/4.8/crtbegin.o /opt/pgi/linux86-64/16.10/lib/initmp.o /opt/pgi/linux86-64/16.10/lib/f90main.o --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 /opt/pgi/linux86-64/16.10/lib/pgi.ld -L/home/rahaman/install/mpich-3.2-pgi-16.10/lib -L/opt/pgi/linux86-64/16.10/lib -L/usr/lib64 -L/usr/lib/gcc/x86_64-linux-gnu/4.8 obj/cg.o obj/driver.o obj/math.o obj/mxm_wrapper.o obj/prox_dssum.o obj/prox_setup.o obj/semhat.o obj/speclib.o obj/delay_dum.o obj/hsmg_dum.o obj/ax_cuda.o obj/comm_mpi.o obj/mxm_std.o obj/blas.o obj/jl_gs.o obj/jl_sort.o obj/jl_sarray_transfer.o obj/jl_sarray_sort.o obj/jl_gs_local.o obj/jl_crystal.o obj/jl_comm.o obj/jl_tensor.o obj/jl_fail.o obj/jl_fcrystal.o obj/jl_sleep.o -lmpifort -rpath /home/rahaman/install/mpich-3.2-pgi-16.10/lib -lmpi -rpath /opt/pgi/linux86-64/16.10/lib -rpath /opt/pgi/linux86-64/2016/cuda/8.0/lib64 -o nekbone /opt/pgi/linux86-64/16.10/lib/acc_init_set_cuda.o /opt/pgi/linux86-64/16.10/lib/acc_init_link_cuda.o -laccapi -laccg -laccnc -laccn -laccg2 -lcudafor80 -lcudafor -lcudaforblas -L/opt/pgi/linux86-64/2016/cuda/8.0/lib64 -lcudadevrt -lcudart -ldl -lcudadevice -lpgf90rtl -lpgf90 -lpgf90_rpm1 -lpgf902 -lpgf90rtl -lpgftnrtl -lpgmp -lnuma -lpthread -lnspgc -lpgc -lrt -lpthread -lm -lgcc -lc -lgcc -lgcc_s /usr/lib/gcc/x86_64-linux-gnu/4.8/crtend.o /usr/lib/x86_64-linux-gnu/crtn.o
make: *** [nekbone] Error 127

I

Hi Ron,

It appears that the device linker is getting a seg fault but it’s unclear why. Can you send a reproducing example to PGI Customer Service (trs@pgroup.com) and ask them forward it to me so I can investigate?

Thanks,
Mat