基于docker镜像nvcr.io/nvidia/torch的训练过程比bare metal慢41%

我使用NVidia docker镜像nvcr.io/nvidia/torch来训练DNN。一切正常,除了训练时间比在我的机器上执行时要慢得多(+41%)。批量执行需要大约410ms,而在bare metal上只需要290ms。

我的nvidia-docker运行命令:

nvidia-docker run -it --network=host --ipc=host -v /mnt/data1:/mnt/data1 my-custom-image bash

my-custom-image基于nvcr.io/nvidia/torch,在此仅添加了我的训练脚本(.lua)并安装了luajit。 所有结果都写入/mnt/data1,而不是容器本身。

这是正常的还是我做错了什么?我该如何调查浪费时间的原因?

更新:我仔细检查了,发现在训练过程中容器内部没有任何数据被写入。所有数据都写在/mnt/data1下。

更新2:我在容器内尝试推断过程,发现与bare metal设置一样不需要更多时间。

点赞