Hi! I am doing an analysis of memory consumption when using unified memory on Jetson platforms. I know that both CPU and GPU use the same virtual addresses to access unified memory. However, I can’t find any information about what happens under the hood. In systems with discrete GPUs, it makes sense that under the hood unified memory uses different physical locations for CPU and GPU, but what happens with embedded devices like the Jetson platforms where CPU and GPU share the same physical memory? Can we assume that in Jetson platforms unified memory works like zero-copy with a single buffer for CPU and GPU? Or under the hood unified memory uses different physical locations for CPU and GPU? Where can I find information about this?
Best regards
Hi,
Please find the details from this page:
Thanks.
Hi AastaLLL, thanks for the answer. Apparently, the information on that wiki is their interpretation of the generic unified memory documentation for discrete GPUs. Is there any official NVIDIA documentation explaining what happens internally with unified memory in Tegra platforms? or are we forced to reverse engineer the unified memory system to do a correct resource provisioning analysis for our systems?
Best regards
Hi,
The implementation of unified memory on Jeston is very similar to the desktop version.
For example, you can find below slides for the detailed introduction:
Since Jeston has shared memory, the buffer for CPU and GPU is allocated from the same physical memory.
As a result, the synchronization, which is handling by the GPU driver, is expected to be faster.
Thanks.