我正在使用具有GTX-1081ti的Alea GPU,该显卡具有11GB的全局内存。
当我使用Alea Gpu.Default.Allocate
方法在GPU上分配内存时,当我的内存接近3GB以上时,会出现“内存不足”错误。
我的代码是:
private static int Length = 2147000000;
...
var gpu = Gpu.Default;
gpu.Allocate<int>(Length);
这应该分配大约8GB的GPU RAM,但是它给出了CUDA内存不足异常。我尝试使用较低的Length值,并且根据任务管理器的报告,GPU专用内存在出现错误之前最多只能上升到3 GB。
但是,当我对原始CUDA代码(在Alea之外)进行同样的操作时,我的限制有点超过11 GB的80%,或几乎9 GB(因为W10限制了分配)。
有人知道为什么只有3 GB时出现“内存不足”错误吗?
谢谢。
答案 0 :(得分:2)
(回答一下,因为它似乎已经解决了您的问题)
听起来您可能正在以32位模式进行编译。确保您使用的是64位操作系统并以64位模式进行编译。您不会是第一个意外地在32位模式下编译的人:)