Can you please explain what is the reason of such output?
in my code I have “$acc data create(…,oc12d, oa1,…)”
PGI_ACC_DEBUG=1 reports
pgi_uacc_dataon(devptr=(nil),hostptr=0x7568df0,poffset=0,offset=0,0,stride=1,168,size=168x139,extent=168x139,eltsize=4,lineno=753,name=oc12d,flags=0x100=create,threadid
=1)
FATAL ERROR: variable in data clause is partially present on the device: name=oc12d
file:/home/.../module_pbl_driver.OpenACC.F pbl_driver line:753
oc12d lives at 0x7568df0 size 93408 not present
I create var, but PGI tells that it partlially present
and not present on GPU
I am confused.
PGI 14.10
3 MPI ranks share the same GPU (K40). Allocation table tells that I use 1.2 GB of GPU mem per MPI rank. No MPS is used
pgi_uacc_dataon(hostptr=0x8934b30,stride=1,168,size=168x139,eltsize=4,lineno=753,name=oa1,flags=0x300=create+present,async=-1,threadid=1)
oa1 lives at 0x8934b30 size 93408 partially present
...
FATAL ERROR: variable in data clause is partially present on the device: name=oa1
It looks strange for me the following part of “presents table”:
host:0x88b9b50 device:0x2311ac1000 size:200 presentcount:1 line:22 name:grid_pt
host:0x88ba110 device:0x2311ac0200 size:20 presentcount:1 line:22 name:grid_pt
host:0x88c25d0 device:0x234c5c0000 size:4670400 presentcount:1 line:753 name:dtauy3d
host:0x88c6250 device:0x23121c0c00 size:2780 presentcount:1 line:41 name:grid_pt
host:0x88f58d0 device:0x2353104c00 size:93408 presentcount:1 line:753 name:dvsfcg
according to host address dtauy3d array should overlap tones of other arrays
When I see partially present errors, it typically means that there’s some type issue with another variable which is overlapping the device memory. That appears to be what’s happening here with the “dtauy3d” variable.
What data type is “dtauy3d”, how is it created on the device, and what values are used for it’s size?
Also, can you post the line in the PGI_ACC_DEBUG output where “dtauy3d” is allocated?