PVA/VIC with Unified Memory in VPI

How does PVA work with Unified Memory in VPI? Can unified memory be wrapped with vpiImageCreateCudaMemWrapper or vpiImageCreateHostMemWrapper on AGX Xavier? What is the expected behavior of each? Does the CPU access limit(no CPU access when GPU kernel is running) apply to them?

There seems to be no documents around how PVA works with Unified Memory.

A little bit more, does VPI works with UnifiedMemory when using CUDA/CPU the same way as UnifiedMemory is used directly by CUDA/CPU? Does the same limit apply?



Yes, it should work.
It’s recommended to wrap the buffer with vpiImageCreateCudaMemWrapper so you don’t need to do host->device mapping again.

Please noted that the VPI doesn’t support concurrent access.
This is a hardware limitation from Jetson device.

The detailed procedure is similar to cuda buffer in this sample: