基本上,我有一個gsl矩陣需要分配到頁面鎖定的內存中。 gsl_matrix_alloc沒有指定這個。看來我必須重定向我的gsl_matrix->數據中的指針。但是,有沒有可以分配頁面鎖定內存的C++方法?C++可以分配頁面鎖定內存嗎?
注意:我不能使用其他非標準的C++ API,如CUDA API。
基本上,我有一個gsl矩陣需要分配到頁面鎖定的內存中。 gsl_matrix_alloc沒有指定這個。看來我必須重定向我的gsl_matrix->數據中的指針。但是,有沒有可以分配頁面鎖定內存的C++方法?C++可以分配頁面鎖定內存嗎?
注意:我不能使用其他非標準的C++ API,如CUDA API。
假設您使用的是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);
如果通過頁鎖定您的意思是鎖定在物理內存中的虛擬內存,則Windows具有VirtualLock(),而Linux具有memlock()。