I read this blog:
but still have some basic questions about the tradeoff between using pinned/pageable memory.
After trying an application which allocates about 1GB of host memory and 1/2 GB of device memory, I see that there is a huge difference on device-host and host-device copies between using (host side) malloc vs cudaMallocHost. (about 10 times difference host-device and 4 times difference device-host).
When using pinned memory I am getting up to 13.4 GBs for a host-device and device-host copies, which is great but I am unclear on how that type of memory designation will effect resources when compared to using pageable.
In other words, if I do indeed opt to use pinned memory will it reduce any capacity on the device side of operations? Since I am using a GTX 780ti for this app, I really cannot afford to negatively impact the computational or memory resources. I will be using at least 66% of the device memory, not considering the memory used by Windows 7.
This quote talks about the tradeoffs on the host side (which I am not concerned about since there will be plenty of CPU ram and no other programs running other than basic Windows OS stuff):
“You should not over-allocate pinned memory. Doing so can reduce overall system performance because it reduces the amount of physical memory available to the operating system and other programs.”
but what about any effects in CUDA land?