当我使用固定内存进行CUDA数据传输时,我观察到数据传输的大幅加速.在linux上,实现此目标的底层系统调用是mlock.从mlock的手册页中,它声明锁定页面可以防止它被换出:
mlock()锁定从addr开始并继续len字节的地址范围内的页面.当调用成功返回时,包含指定地址范围一部分的所有页面都保证驻留在RAM中;
在我的测试中,我在我的系统上有一些可用内存,因此从来没有任何风险可以将内存页面换掉,但我仍然观察到加速.谁能解释一下这里到底发生了什么?,非常感谢任何见解或信息.
c c++ linux cuda
c ×1
c++ ×1
cuda ×1
linux ×1