我能否在 Linux 上分配一个大且有保证的连续范围物理内存(连续 100 MB,不间断),如果可以,我该怎么做?
有必要通过 PCI-Express BAR 从一个 CPU1 到位于 PCIe 非透明桥后面的另一个 CPU2 映射一个连续的内存块。
最佳答案
您不在用户应用程序中分配物理内存(物理内存仅在内核内部才有意义)。
我不明白您是在编写内核模块还是某些 Linux 应用程序(例如数值有限元代码=。
在应用程序内部,您可以分配 virtual memory与例如mmap(2) (然后你可以分配一个大的连续段 address space )
我猜有些 GPU 卡可以通过 mmap
访问大量 GPU 内存,所以我相信可以做你想做的事。
您可能对 numa(7) 感兴趣手册页。可能是 numa(3)图书馆应该给你你想要的。你有没有考虑过open MPI ?另见 msync(2)和 mlock(2)
关于linux - 我可以分配一个大的和保证连续范围的物理内存(100MB)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20070108/