I see that when CUDA is used on Linux the process virtual memory consumption is large, approximately matching the size of the physical GPU memory plus the size of system memory.
this is related to UVA. we have to carve out a chunk of virtual memory equal to the total physical GPU memory, plus the total system memory, plus some small fudge factor for alignment purposes.
we actually throttle back on the UVA region if you run out of virtual memory. this will restrict the amount of memory you can allocate, though.
While I see that this has no special performance consequences, is there some way to avoid this, for example by setting flags in cuCtxCreate() or by globally tweaking the driver settings?
Also, can someone link to documentation/specification which states how virtual memory is used by CUDA on Linux? So far I only found references to this behavior on random places over this forum and SO.
Many thanks in advance.