简体   繁体   English

C ++可以分配页面锁定的内存吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM