We have a scientific app which to calculations using CUDA. Usually machines have 32-128 GB of CPU RAM and a dedicated video card like nVidia RTX 2070 or RTX 3080 with dedicated GPU RAM 8-16 GB. Typically our data takes almost all CPU RAM.
The problem is we need a random data access. ManagedMemory oversubscirtion does not work on Windows 10. That means we can maximally expose, lets say, 16 GB on RTX 3080. Therefore we went to use pinned mapped memory (not page-able) despite it is slower as ZeroCopy one.
However we have notices that we can allocate maximum a half of CPU memory as pinned disregarding in one peace of by chunks.
Windows task manager reports that there is 
As one can see on system with 32 GB CPU RAM and 8 GB of dedicated GPU ram the "Shared video memory" size if almost 16 GB.
From point we can think of 2 possibilities:
- Either Windows 10 can only allocate pinned memory only from shared
- Or, more probably, shared memory blocks address space preventing pinned (not page-able) allocation.
We do need shared video memory at all since we have enough dedicated one. We have explore a lot of forums trying to adjust/disable this shared memory either by changing registry settings like HKEY_LOCAL_MACHINE/SOFTWARE/Intel/GMM/DedicatedSegmentSize, checking advanced BIOS settings. Nothing helps.
We would appreciate any help in how to change this settings or got an idea how we can allocate more then half of CPU RAM for pinned mapped CUDA memory.