none
如何解除系统对于锁页内存的限制 RRS feed

  • 问题

  • 在Windows10平台上遇到了关于锁页内存的问题,我无法把PC的内存注册成锁页内存(90%以上占比),最大能够分配到50%左右的锁页内存。有什么方法可以解除这种锁页内存的限制吗?或者是通过什么代码能够让我分配90%的锁页内存吗?谢谢
    2019年4月25日 6:34

全部回复

  • 你好,

    非常感谢在MSDN发帖提问。

    >>在Windows10平台上遇到了关于锁页内存的问题,我无法把PC的内存注册成锁页内存(90%以上占比),最大能够分配到50%左右的锁页内存。有什么方法可以解除这种锁页内存的限制吗?或者是通过什么代码能够让我分配90%的锁页内存吗?谢谢。

    请问你指的的是CUDA中的PageLocked memory吗?如果是的话,你可以参考这个链接。当然在使用代码之前需要安装CUDA Toolkit

    Best Wishes,

    Jack Zhang


    MSDN Community Support Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2019年4月29日 10:01
    版主
  • 你好,

    感谢你的回复。

    没错,我确实是在写CUDA程序的时候遇到的问题。在Windows平台下,使用cudaMallocHost分配内存的时候,大概分配到内从占用50%的时候就会报错,报错信息是内存不足。我尝试先使用malloc之后再注册成锁页内存的方式,也得到了同样的错误。但是我使用同样的代码在Linux平台做测试就不会出现这样的问题。我在网上搜了一些资料,有些资料说是Windows内核的限制但没有给出解决方法,所以才来MSDN寻求帮助。

    2019年5月6日 4:36
  • 你好,

    参考这个链接,可以看到Windows对内存这一块确实存在限制, 每个进程 2 GB 的专用虚拟地址空间。只有使用多个进程才能占用更多内存吧。

    Best Wishes,

    Jack Zhang



    MSDN Community Support Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2019年5月14日 9:51
    版主