gpt4 book ai didi

cuda 和 cudamalloc 分配大内存块失败

转载 作者:行者123 更新时间:2023-12-02 03:52:29 24 4
gpt4 key购买 nike

我有一台内存为 2Gb 的 GTX570,当我尝试通过一次 cudamalloc 调用分配超过 804Mb 的内存时,我遇到了麻烦。任何人对为什么会这样有任何想法吗?这是我的第一个电话,所以我怀疑它是碎片化的。

没问题:

Memory avaliable: Free: 2336116736, Total: 2684026880
requesting 804913152 bytes
no error
Memory avaliable: Free: 1531199488, Total: 2684026880
requesting 804913152 bytes
no error
Memory avaliable: Free: 726286336, Total: 2684026880

问题:

Memory avaliable: Free: 2327601152, Total: 2684026880
requesting 805306368 bytes
out of memory
Memory avaliable: Free: 2327597056, Total: 2684026880
requesting 805306368 bytes
out of memory
Memory avaliable: Free: 2327597056, Total: 2684026880

最佳答案

这是由 Windows WDDM 子系统强加的限制引起的。可以分配多少内存有一个硬性限制,计算为

MIN ( ( System Memory Size in MB - 512 MB ) / 2, PAGING_BUFFER_SEGMENT_SIZE )

对于桌面窗口,PAGING_BUFFER_SEGMENT_SIZE 约为 2Gb IIRC。您有两种选择来解决此问题:

  1. 获得一张 Telsa 卡并使用专用的 Windows TCC 模式驱动程序,该驱动程序将设备的内存管理从 WDDM 中分离出来,从而消除了限制。
  2. 为您的 GPU 计算安装 Linux 或使用支持 CUDA 的实时发行版。 Linux 驱动程序对超出设备可用内存容量的内存分配没有限制。

关于cuda 和 cudamalloc 分配大内存块失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13851287/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com