【发布时间】:2020-04-30 09:29:06
【问题描述】:
我已经构建了一台机器学习计算机,其中有两个 RTX 2070 SUPER NVIDIA GPU 连接到 SLI Bridge、Windows 操作系统(在 NVIDIA 控制面板中验证了 SLI)。
我使用http://ai-benchmark.com/alpha 对系统进行了基准测试,结果令人印象深刻。
为了充分利用将 GPU 用于科学任务 (cuDF) 的库,我创建了一个 TensorFlow Linux 容器:
https://www.tensorflow.org/install/docker
使用“latest-gpu-py3-jupyter”标签。
然后我已将 PyCharm 连接到此容器并将其解释器配置为同一项目的解释器(我将宿主项目文件夹安装在容器中)。
当我在容器上运行相同的基准测试时,我得到了错误:
tensorflow.python.framework.errors_impl.ResourceExhaustedError: OOM when allocating tensor with shape[50,56,56,144] and type float on /job:localhost/replica:0/task:0/device:CPU:0 by allocator cpu
[[node MobilenetV2/expanded_conv_2/depthwise/BatchNorm/FusedBatchNorm (defined at usr/local/lib/python3.6/dist-packages/ai_benchmark/utils.py:238) ]]
Hint: If you want to see a list of allocated tensors when OOM happens, add report_tensor_allocations_upon_oom to RunOptions for current allocation info.
此错误与容器内的 GPU 内存耗尽有关。
为什么windows主机上的GPU能成功处理计算,而Linux容器上的GPU会耗尽内存?
是什么造成了这种差异?和容器内存分配有关吗?
【问题讨论】:
标签: docker tensorflow nvidia