繁体   English   中英

TensorFlow-XLA_GPU内存不足,而GPU_BFC拥有大量可用字节

[英]TensorFlow - XLA_GPU runs out of memory while GPU_BFC holds lots of free bytes

我正在运行分布式TensorFlow程序,每台机器都配备了Maxwell Titan X GPU。 在程序开始时出现OOM错误(下面的错误消息):

tensorflow.python.framework.errors_impl.ResourceExhaustedError: Failed to allocate request for 48.00MiB (50331648B) on device ordinal 0
         [[{{node cluster_303_1/xla_run}} = _XlaRun[Targs=[DT_BFLOAT16, DT_BFLOAT16], Tresults=[DT_BFLOAT16], _device="/job:ps/replica:0/task:0/device:XLA_GPU:0"](transformer/decoder/att_3/att/einsum/parallel_0/einsum/transpose_2_G1444, transformer/decoder/att_3/att/einsum_3/parallel_0/einsum/transpose_1_G1446, cluster_303_1/xla_compile)]]

这表明XLA_GPU设备的内存不足。 同时,GPU_BFC拥有超过11GB的GPU内存,并且该内存中的大部分是空闲的。 发生这种情况的原因是,默认情况下,GPU_BFC会分配并保留几乎所有GPU内存,从而避免在执行过程中调用cuMemAlloc 但是,XLA_GPU的内存分配不会通过GPU的BFC分配器,而是直接与CUDA驱动程序进行交互。 在GPU_BFC之后,仅剩下数百MB的GPU内存供XLA_GPU使用。 首先,为什么XLA_GPU需要一种不同的内存分配方式,而不是使用与GPU_BFC相同的BFC分配器?

我知道我可以通过在Session config中打开allow_growth ,让GPU_BFC仅在需要时才分配内存 由于动态分配内存可能会降低性能,因此是否有更好或更原则的方式在XLA_GPU和GPU_BFC之间共享GPU内存?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM