我正在使用多个GPU(num_gpus = 4)来训练一个具有多个塔的模型。该模型在一组 GPU 上训练良好:CUDA_VISIBLE_DEVICES = 0,1,2,3,而在第一次图形评估期间遇到 OOM 问题,CUDA_VISIBLE_DEVICES = 0,1,4,5
有人知道为什么会发生这种情况吗?
以下选项用于创建会话
session_config=tf.ConfigProto(
allow_soft_placement=True,
log_device_placement=False)
session_config.gpu_options.per_process_gpu_memory_fraction = 0.94
session_config.gpu_options.allow_growth=False
批量大小,已经超小了,= 3
系统信息
张量流 1.0 库达 8.0 优麒麟 14.04.5 LTS 所有 GPU : GeForce GTX 1080
原木
名称: GeForce GTX 1080 主要: 6 次要: 1 内存时钟速率 (GHz) 1.7335 pciBusID 0000:07:00.0 总内存:7.92GiB 可用内存:7.81GiB W Tensorflow/stream_executor/cuda/cuda_driver.cc:590] 创建上下文 当一个人当前处于活动状态时;现有: 0xcc4593a0 I Tensorflow/core/common_runtime/gpu/gpu_device.cc:885] 找到设备 1 具有属性: 名称: GeForce GTX 1080 主要: 6 次要: 1 内存时钟速率 (GHz) 1.7335 pciBusID 0000:08:00.0 总内存: 7.92GiB 可用内存:7.81GiB W 张量流/stream_executor/cuda/cuda_driver.cc:590] 创建上下文 当一个人当前处于活动状态时;现有: 0xd2404670 I Tensorflow/core/common_runtime/gpu/gpu_device.cc:885] 找到设备 2 具有属性: 名称: GeForce GTX 1080 主要: 6 次要: 1 内存时钟速率 (GHz) 1.7335 pciBusID 0000:18:00.0 总内存: 7.92GiB 可用内存:7.81GiB W 张量流/stream_executor/cuda/cuda_driver.cc:590] 创建上下文 当一个人当前处于活动状态时;现有: 0xd25591b0 I Tensorflow/core/common_runtime/gpu/gpu_device.cc:885] 找到设备 3 具有属性: 名称: GeForce GTX 1080 主要: 6 次要: 1 内存时钟速率 (GHz) 1.7335 pciBusID 0000:1c:00.0 总内存: 7.92GiB 可用内存:7.81GiB I 张量流/核心/common_runtime/gpu/gpu_device.cc:906] DMA:0 1 2 3 I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0: Y Y Y Y I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 1: Y Y Y Y I Tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 2: Y Y Y Y I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 3: Y Y Y Y I Tensorflow/core/common_runtime/gpu/gpu_device.cc:975] 创建 TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 1080, pci 巴士 ID: 0000:07:00.0) I Tensorflow/core/common_runtime/gpu/gpu_device.cc:975] 创建 TensorFlow device (/gpu:1) -> (裝置: 1,名稱: GeForce GTX 1080, pci 巴士 ID: 0000:08:00.0) I Tensorflow/core/common_runtime/gpu/gpu_device.cc:975] 创建 TensorFlow device (/gpu:2) -> (裝置: 2, 名稱: GeForce GTX 1080, pci 巴士 ID: 0000:18:00.0) I Tensorflow/core/common_runtime/gpu/gpu_device.cc:975] 创建 TensorFlow device (/gpu:3) -> (裝置: 3, 名稱: GeForce GTX 1080, pci 总线 ID: 0000:1C:00.0)
I tensorflow/core/common_runtime/gpu/pool_allocator.cc:247] 池分配器:在 47441 个 get 请求之后,put_count=8461 evicted_count=1000 eviction_rate=0.118189 和未满足的分配 速率=0.844839 I Tensorflow/core/common_runtime/gpu/pool_allocator.cc:259] 提高 pool_size_limit_功率范围:100 至 110 W 张量流/核心/common_runtime/bfc_allocator.cc:217] 内存不足 尝试分配 2.33GiB。调用方指示这不是 失败,但可能意味着如果更多,则可能会提高性能 内存可用。W 张量流/核心/common_runtime/bfc_allocator.cc:217] 内存不足 尝试分配 3.08GiB。调用方指示这不是 失败,但可能意味着如果更多,则可能会提高性能 内存可用。W 张量流/核心/common_runtime/bfc_allocator.cc:217] 内存不足 尝试分配 3.08GiB。调用方指示这不是 失败,但可能意味着如果更多,则可能会提高性能 内存可用。W 张量流/核心/common_runtime/bfc_allocator.cc:217] 内存不足 尝试分配 3.98GiB。调用方指示这不是 失败,但可能意味着如果更多,则可能会提高性能 内存可用。W 张量流/核心/common_runtime/bfc_allocator.cc:217] 内存不足 尝试分配 3.98GiB。调用方指示这不是 失败,但可能意味着如果更多,则可能会提高性能 内存可用。W 张量流/核心/common_runtime/bfc_allocator.cc:217] 内存不足 尝试分配 2.54GiB。调用方指示这不是 失败,但可能意味着如果更多,则可能会提高性能 内存可用。W 张量流/核心/common_runtime/bfc_allocator.cc:217] 内存不足 尝试分配 2.54GiB。调用方指示这不是 失败,但可能意味着如果更多,则可能会提高性能 内存可用。W 张量流/核心/common_runtime/bfc_allocator.cc:217] 内存不足尝试分配 3.17GiB。调用方指示这不是 失败,但可能意味着如果更多,则可能会提高性能 内存可用。W 张量流/核心/common_runtime/bfc_allocator.cc:217] 内存不足 尝试分配 2.68GiB。调用方指示这不是 失败,但可能意味着如果更多,则可能会提高性能 内存可用。W 张量流/核心/common_runtime/bfc_allocator.cc:217] 内存不足 尝试分配 3.86GiB。调用方指示这不是 失败,但可能意味着如果更多,则可能会提高性能 内存可用。我 Tensorflow/core/common_runtime/gpu/pool_allocator.cc:247] 池分配器:在 2698 个 get 请求之后,put_count=8709 evicted_c
日志运行良好,还是运行不良?那里没有错误,只有警告。
如果您的系统具有双根复合体,则 0,1,4,5 可能位于不同的分区上。DMA矩阵将显示这一点。同一根复合体上的 GPU 之间的复制通常比跨它们更快。如果由于副本较长,副本必须保留张量引用更长时间,您可能会看到峰值内存使用量增加,并且如果您的模型太接近限制,则会导致 OOM。当然,这只是一个理论,如果没有进一步的调试信息,很难确定。