锁页内存(pinned memory or page locked memory)
- 主机端存在虚拟内存,
- 主机内存不足是会将内存数据交换到虚拟内存中,
- 虚拟内存就是主机中的磁盘空间,
- 需要该页时再重新从磁盘加载回来。
- 这样做可以使用比实际内存更大的内存空间。
- 锁页内存允许GPU上的DMA控制器在使用主机内存时不用CPU参与。
- GPU上的显存都是锁页的,因为GPU上的内存时不支持交换到磁盘的。
- 锁页内存就是分配主机内存时锁定该页,让其不与磁盘交换。
- CUDA中锁页内存用CUDA驱动API cuMemAllocHost()或CUDA的运行时API的cudaMallocHost()。
- 还可直接用主机上Malloc()分配的空间,然后将其注册为锁页内存(用cudaHostRegister()注册)。
参考链接
- https://blog.csdn.net/dgh_dean/article/details/53130871