Forum Discussion
About Limitations of NonePaged Pool Size in Windows 10
Hello, I'm a developer working on an image processing program in the Windows 10 operating system.
I use technologies such as CUDA and RDMA in my program.
Both of these technologies have the feature of registering specific memory areas to none-paged pool and performing operations(RDMA Send or cudaHostAlloc).
However, in Windows 10, there is an option that enforces a limit on the size of the non-paged pool, which is set to 75% of the total memory and the smaller of 128GB.
Since I work with extremely large images loaded into memory, I use over 1TB of memory and Because of 75% of this exceeds 700GB, the non-paged pool is limited to 128GB.
Consequently, even if I load images larger than 500GB into RAM, CUDA cannot access more than 128GB using cudaHostAlloc, and I cannot set the RDMA transfer buffer size to more than 128GB either.
While Linux allows for flexibility in releasing such restrictions, there doesn't seem to be a way to release this limit in Windows 10.
Do you know of a way to release this limit, or are there any plans to do so in the future?
I think that the 128GB limit on a PC with over 1TB of RAM is too small.
2 Replies
- ashwinskmr11Copper Contributor
it’s a very advanced use case.
At present, Windows 10 and Windows 11 enforce a hard limit of 128GB for the non‑paged pool, regardless of how much physical RAM is installed. This is part of the kernel’s memory management design and cannot be overridden through registry changes or system settings. The 75% rule you mentioned applies, but the cap of 128GB is the maximum allowed.
Because of this, CUDA’s `cudaHostAlloc` and RDMA buffer registration will be constrained to that ceiling. The recommended approach is to split workloads into smaller blocks (≤128GB) and process them sequentially or in parallel streams. This ensures compatibility with the Windows kernel’s memory model.
Linux does indeed allow more flexibility in tuning kernel parameters, but on Windows this limit is not user‑configurable. As of now, there are no public plans to remove or extend the 128GB cap.
If your application requires larger contiguous non‑paged allocations, you may want to:-
Architect your pipeline to chunk data into smaller buffers.
Explore whether your workload can leverage paged memory with pinned allocations (depending on CUDA/driver support).
- Consider hybrid designs where RDMA or CUDA transfers operate on slices of the dataset.I understand this feels restrictive on systems with >1TB RAM, but the current design prioritizes system stability and kernel integrity. Feedback like yours is valuable I would encourage you to submit it through the [Feedback Hub] so it reaches the Windows engineering team directly.
- WamkkoimjoinIron Contributor
The current 128GB hard limit for the non-paged pool in Windows 10/11 cannot be removed through standard settings, as it is a limitation of the system kernel architecture. It is recommended to split workloads into blocks smaller than 128GB for processing.