I have something really baffling going on, both in 15.7 and 15.10. Not sure whether it’s a PGI issue or something in the surrounding code, but let’s say at least the fact that the $acc update call seemingly isn’t doing what it’s being told is really irking me and I’m running out of ideas here. The second print statement prints the same, no matter whether the update directives are there or not. Commenting code inside the kernel doesn’t seem to help either. Do you have an idea on how to proceed from here? I’m afraid I didn’t have time yet for a full reproducer.
code
!$acc update host(jd_pf)
print *, "jd_pf@10,1,1 before second common_vars kernel", jd_pf( 10, 1, 1 )
!$acc update device(jd_pf)
!$acc kernels present(dens_ptb_v_in) present(dens_ref_f) present(pres_ptb) present(dens_ptb) &
!$acc& present(rdensjd) present(mptmp) present(ptemp) present(exner) present(rmpt_ref_f) present(temp) present(rmpt_ptb_v_in) &
!$acc& present(pres_ref_f) present(jd_pf) present(rqa_v_in) present(qa)
!$acc loop independent vector(16)
do j=0,ny+1
!$acc loop independent vector(16)
do i=0,nx+1
!$acc loop seq
do k = nz_mn, nz_mx
if (i .eq. 10 .and. j .eq. 1 .and. k .eq. 1) then
print *, "jd_pf@10,1,1 inside second common_vars kernel", jd_pf( 10, 1, 1 )
end if
rmpt_ptb = rmpt_ptb_v_in( i, j, k )* jd_pf( i, j, k )
rmpt = rmpt_ref_f( i, j, k )+ rmpt_ptb
exner( i, j, k )= ( rmpt * gasr * vp0 ) ** rdvcprd
pres_ptb( i, j, k )= gasr * exner( i, j, k )* rmpt - pres_ref_f( i, j, k )
rdens = 1._rp / ( dens_ref_f( i, j, k )+ dens_ptb( i, j, k ))
coef = 1._rp / ( 1.0d0 + r608 * qa( i, j, k, id_qv )- qa( i, j, k, id_qc )- qa( &
& i, j, k, id_qr )- qa( i, j, k, id_qi )- qa( i, j, k, id_qs )- qa( &
& i, j, k, id_qg )- qa( i, j, k, id_qh ))
temp( i, j, k )= ( pres_ptb( i, j, k )+ pres_ref_f( i, j, k )) * vrd * rdens * coef
end do
end do
end do
!$acc end kernels
output
jd_pf@10,1,1 before second common_vars kernel 9.9999999999999995E-007
jd_pf@10,1,1 inside second common_vars kernel 8.8888899999999995E-007
compiler call
pgf90 -g -O0 -Mchkptr -Kieee -Minfo=accel,inline,ipa -Mneginfo -Minform=inform -acc -Mcuda=6.0,cc3x -ta=tesla:cc3x,keepgpu,keepbin,time -Minline=levels:5,reshape -DGPU -byteswapio -Mmpi=mpich -I /home/michel/asuca/hybrid/Nusdas13/src -I //home/michel/lib/netcdf3/include -DGPU