锁页内存(Pinned or page-locked memory)相较于未锁定内存可以更快地传输到GPU。CUDA提供了
通过系统调用
cudaHostAlloc
和cudaHostRegister
调用来分配或注册锁页内存。然后,Nvidia驱动程序会在内存传输时检查主机内存是否已锁定,并发出相应的复制代码路径。通过系统调用
mlock()
是否可能像cudaHostRegister
一样实现锁页内存以达到完全相同的效果(关于传输速度)?还是相应的CUDA调用会更新驱动程序查询的内部数据库?