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 位模式下编译的人:)
我在 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 位模式下编译的人:)