[英]Can C++ allocate page-locked memory?
Basically, I have a gsl matrix which needs to be allocated into the page-locked memory. 基本上,我有一个gsl矩阵,需要将其分配到页面锁定的内存中。 gsl_matrix_alloc doesn't specify this. gsl_matrix_alloc没有指定。 It seems I have to redirect the pointers in my gsl_matrix->data. 看来我必须重定向gsl_matrix-> data中的指针。 However, is there any C++ method that can allocate page-locked memory? 但是,是否有任何C ++方法可以分配页面锁定的内存?
Note: I can't use other non-standard C++ API such as CUDA API. 注意:我不能使用其他非标准C ++ API,例如CUDA API。
如果通过页面锁定来表示虚拟内存已锁定在物理内存中,则Windows具有VirtualLock(),Linux具有memlock()。
Assuming you are using Linux, look at the manual for mlock
. 假设您使用的是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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.