基本上,我有一个需要分配到页面锁定内存中的 gsl 矩阵。gsl_matrix_alloc 没有指定这一点。看来我必须重定向 gsl_matrix->data 中的指针。但是,是否有任何可以分配页面锁定内存的 C++ 方法?
注意:我不能使用其他非标准 C++ API,例如 CUDA API。
如果页面锁定是指锁定在物理内存中的虚拟内存,Windows 有 VirtualLock(),Linux 有 memlock()。
假设您使用的是 Linux,请查看mlock
.
> NAME
> mlock, munlock, mlockall, munlockall - lock and unlock memory
>
> SYNOPSIS
> #include <sys/mman.h>
>
> int mlock(const void *addr, size_t len);
> int munlock(const void *addr, size_t len);
>
> int mlockall(int flags);
> int munlockall(void);