基本上,我有一个gsl矩阵需要分配到页面锁定内存中。 gsl_matrix_alloc未指定此内容。看来我必须重定向我的gsl_matrix->数据中的指针。但是,有没有可以分配页面锁定内存的C ++方法?
注意:我不能使用其他非标准C ++ API,例如CUDA API。
答案 0 :(得分:4)
如果通过页面锁定意味着锁定在物理内存中的虚拟内存,则Windows具有VirtualLock(),Linux具有memlock()。
答案 1 :(得分:3)
假设您使用的是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);