Alea GPU 内存分配限制

Alea GPU Memory Allocation Limit

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

当我使用 Alea Gpu.Default.Allocate 方法在 GPU 上分配内存时,当我接近 3+ GB 时,我收到 "out of memory" 错误。

我的代码是:

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 时收到 "out of memory" 错误?

谢谢。

(好像解决了你的问题,才回答)

听起来您可能是在 32 位模式下编译。确保您使用的是 64 位 OS 并在 64 位模式下编译。您不会是第一个不小心在 32 位模式下编译的人:)