1

我正在使用带有 GTX-1081ti 的 Alea GPU,它具有 11GB 的全局内存。

当我使用该Alea Gpu.Default.Allocate方法在 GPU 上分配内存时,当我接近 3+ GB 时,我收到“内存不足”错误。

我的代码是:

private static int Length = 2147000000;
...
var gpu = Gpu.Default;    
gpu.Allocate<int>(Length);

这应该分配大约 8GB 的​​ GPU RAM,但它给出了 CUDA 内存不足异常。我尝试了较低的长度值,并且根据任务管理器的报告,GPU 专用内存在出现错误之前仅上升到大约 3 GB。

但是,当我对原始 CUDA 代码(在 Alea 之外)执行相同操作时,我的限制是 11 GB 的 80% 多一点,或者几乎是 9 GB(因为 W10 限制了分配)。

有谁知道为什么我在只有 3 GB 时会出现“内存不足”错误?

谢谢。

4

1 回答 1

2

(提出一个答案,因为它似乎已经解决了你的问题)

听起来您可能正在以 32 位模式编译。确保您使用的是 64 位操作系统并在 64 位模式下编译。您不会是第一个意外在 32 位模式下编译的人 :)

于 2018-10-18T16:35:44.673 回答