要为GPU内存上的变量分配空间,连续内存区域必须有足够的空间。换句话说,与RAM不同,您不能将分段的内存区域分配给GPUS上的变量。将不同的共享变量存储在GPU内存中并不断更新它们可能会导致内存碎片。因此,即使GPU上有足够的可用内存(以字节为单位),您也可能无法使用这些内存区域,因为它们不在连续块中。
我的问题是Theano如何处理这样的问题?
shared_var.set_value([])
是否释放分配给该共享变量的所有内存,以便下一次更新(shared_var.set_value(newDataPoints)
)只会为共享变量分配内存量,从而避免内存碎片化?
Here被解释为更新共享变量仍可能导致内存碎片。所以我想知道如果参数borrow
或allow_gc
(在theanorc中)设置为True
,问题是否仍然存在?
如何跟踪GPU上块(连续)中的可用内存量?