首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cuda和cudamalloc分配大内存块失败

问cuda和cudamalloc分配大内存块失败
EN

Stack Overflow用户
提问于 2012-12-13 00:55:11
回答 1查看 2.4K关注 0票数 3

我有一个内存为2Gb的GTX570,当我试图用一个cudamalloc调用分配更多内存时,我就陷入麻烦了。有人知道这是为什么吗?这是我的第一次呼吁,所以我怀疑这是分裂。

没问题:

代码语言:javascript
复制
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

问题:

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2012-12-13 10:25:22

这是由Windows WDDM子系统施加的限制造成的。对于可以分配多少内存有严格的限制,计算为

代码语言:javascript
复制
MIN ( ( System Memory Size in MB - 512 MB ) / 2, PAGING_BUFFER_SEGMENT_SIZE )

对于桌面窗口,PAGING_BUFFER_SEGMENT_SIZE大约是2Gb的IIRC。您有两种方法可以解决这一问题:

  1. 获得一个Telsa卡并使用专用的Windows模式驱动程序,该驱动程序使设备的内存管理远离WDDM,消除了限制。
  2. 安装linux或使用CUDA支持GPU计算的实时发行版。除了设备的空闲内存容量之外,Linux驱动程序对内存分配没有任何限制。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13851287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档