error message - unified memory

Hello all,

I am currently porting my code to Jetson Xavier platform. I am using unify memory ( it works well on various Nvidia Card as K80, P100, V100 and Gforce). My code compiles but I get the following system run time error during the execution.

NvMapReserveOp 0x80000001 failed [22]

No trace of this log on Google, Stackoverflow, etc … So dear Nvidia guru, what does it mean ?

All the best,

Tim

Hi,

This error is related the data type of the allocated array.
May I know what kind of size array you allocated? uint64_t or uint32_t or … ?

And, do you mind to write a sample for reproducing this issue?
Thanks.

Hello,

Thank you very much for the prompt answer. When you are are saying array. Should I investigate “dynamic” or “Static” array ?

Currently, for the dynamic memory, I have a pool manager that allocate/manage all the dynamic memory allocation. I am going to investigate, and try to make you a sample.

I am very satisfied by this Jetson, it is a little K80 with shared memory and without the PCI, I love it

Cheers,

Tim

Hi,

Happy to know you like Xavier : )

May I know which JetPack version do you use?
After checking with internal team, there is an issue on huge allocation and is already fixed in Jun 2018.

Suppose the fix is included in the JetPack4.2, do you meet the issue on JetPack4.2?
If not, would you mind to take it a try?

Thanks.

Hello,

I am using the 4.2. Your comment is interesting, because it could still be related too big allocation. After investigating, I am able to reproduce the problem. And, I may consider it like a bug or unknow behavior where the CPU/GPU memory is on the same device.
The code work but it is polluted by this log.

The code is a single vector addition. However the vector is unify, it can work on CPU for GPU, totally transparent.
It is very simple, I love it in my daily programming.

The constructor/destructor of the vector use Cuda unify malloc managed directly or the pool.
The pool allocated a huge piece of memory and it will select memory inside. I need a pool
In my real life because, I have thousands of tiny allocation (~512 KB), used cuda unify on
Tiny allocation take ages.

Currently the code work for both version but I have this log for the pool version, only on the Jetson
board. I did not write the pool, it come from Hopkins university. The pool has been tested on the following hardware.
Under the env - NVIDIA-SMI 410.93 Driver Version: 410.93 CUDA Version: 10.0

GPU device

  • M2000 ^_^
  • GTX 1600
  • K80
  • P100

Jetson AGX Xavier

Cuda compilation tools, release 10.0, V10.0.166

Currently the pool just return a block from a big allocation. Valgrind, cuda-memecheck do
Not give back anything negative. The log appear when I start the cuda kernel. Unfortunately,
I can not go inside with my tool, as it is inside the driver CUDA SDK

You may have a look,

I set up a git repo, free to the public

I may open a bug if you provide me the good link

Cheers

Tim

Arborescence:

  • app/main.cu, the tiny main and the tiny vector class
  • src/pool.cu, the pool manager

Hi,

Sorry for the late reply.

Beside the mysterious log, does anything crash or error in your application?
Since we found it may be a harmless log.

Thanks.