使用CUU阵列限制Julia中的GPU内存

使用CUU阵列限制Julia中的GPU内存,julia,julia-gpu,Julia,Julia Gpu,我对julia是个新手,目前我正在尝试一些具有循环结构的深度卷积网络。我正在GPU上使用 CUDA阵列(CUDA 9.0版) 有了两个独立的GPU,我启动了两个具有不同数据集的实例。 经过一些培训后不久,两个julia实例都分配了所有可用内存(2 x 11GB),我甚至无法使用CuArrays单独启动另一个实例(内存分配错误)。这成了一个相当大的问题,因为它运行在一个多人共享的服务器上 我假设这是一种正常的行为,使用所有可用内存尽可能快地训练。但是,在这种情况下,我希望限制可以分配给同时运行两个

我对julia是个新手,目前我正在尝试一些具有循环结构的深度卷积网络。我正在GPU上使用 CUDA阵列(CUDA 9.0版)

有了两个独立的GPU,我启动了两个具有不同数据集的实例。 经过一些培训后不久,两个julia实例都分配了所有可用内存(2 x 11GB),我甚至无法使用CuArrays单独启动另一个实例(内存分配错误)。这成了一个相当大的问题,因为它运行在一个多人共享的服务器上

我假设这是一种正常的行为,使用所有可用内存尽可能快地训练。但是,在这种情况下,我希望限制可以分配给同时运行两个实例的内存,并且不要阻止我或其他人使用GPU。 令我惊讶的是,我发现关于这一点的信息非常非常少

我知道CUDA_VISIBLE_设备选项,但这没有帮助,因为我想同时在两个设备上进行训练。 另一个建议调用GC.GC()和CuArrays.clearpool() 第二个调用抛出未知函数错误,并且似乎不再位于CuArray包中。第一个我目前正在测试,但不完全是我需要的。是否有可能使用CuArrays和Julia限制GPU上的RAM分配? 提前谢谢
我的Batchsize是100,一个批次的容量应该小于1MB…

目前没有此类功能。我很快做了一些事情,你可以用它来定义
CUARRAYS\u MEMORY\u LIMIT
,并将其设置为分配器不会超出的字节数。请注意,这可能会显著增加内存压力,而CuArrays.jl内存分配器目前尚未针对这种情况进行优化(尽管这是我对Julia GPU基础架构的首要任务之一)