Good time of day.
I have a working OpenACC code, which I was compiling with 12.10 version of the PGI compiler. In the code I use pinned memory to reduce CPU-GPU communication time.
When I try to run the same code, compiled by the the 13.2 version, I get the next error:
call to cuMemHostRegister returned error 208: Already mapped
I found that I can solve the problem only by removing “pinned” from the code.
When I tried to find the reason why the code doesn’t work with pinned memory allocation, I found that the 13.2 v. compiler use cuMemHostRegister to copy data from CPU to GPU, when for 12.10 v it is cuMemcpyHtD.
According to the manual about cuMemHostRegister ( http://www.clear.rice.edu/comp422/resources/cuda/html/group__CUDA__MEM_gf0a9fe11544326dabd743b7aa6b54223.html), it “Page-locks the memory range specified by p and bytesize and maps it for the device(s) as specified by Flags”
So, it is seems that current 13.2 version of the PGI compiler doesn’t support pinned memory usage.
Is that correct?