nvidia-docker是否可以在没有GPU的情况下运行?

bre*_*dan 8 cuda docker pytorch nvidia-docker

官方的PyTorch Docker映像基于nvidia/cuda,可以在Docker CE上运行,而无需任何GPU。它也可以在nvidia-docker上运行,我假设已启用CUDA支持。是否可以在没有任何GPU的x86 CPU上运行nvidia-docker本身?有没有一种构建单个Docker映像的方法,该映像在可用时(例如,在内部运行时nvidia-docker)利用CUDA支持,否则使用CPU?torch.cuda在Docker CE内部使用时会发生什么?Docker CE之间到底有什么区别,为什么不能nvidia-docker合并到Docker CE中?

kic*_*hik 9

nvidia-docker是的快捷方式docker --runtime nvidia。我确实希望他们有一天可以合并它,但是现在它是第三方运行时。他们在GitHub页面上解释了它的含义和作用。

修改后的runc版本向所有容器添加了自定义的启动前挂钩。如果在OCI规范中设置了环境变量NVIDIA_VISIBLE_DEVICES,则该挂钩将通过利用项目libnvidia-container中的nvidia-container-cli为容器配置GPU访问。

没有什么可以阻止您运行nvidia-docker正常使用的图像docker。它们工作得很好,但是如果您在其中运行需要GPU的东西,那将会失败。

我认为您无法nvidia-docker在没有GPU的计算机上运行。它将无法找到所需的CUDA文件,并且会出错。

要创建可同时在docker和上运行的映像nvidia-docker,其中的程序必须能够知道其运行位置。我不确定是否有正式方法,但是您可以尝试以下方法之一:

  • 检查是否nvidia-smi可用
  • 检查指定的目录是否$CUDA_LIB_PATH存在
  • 检查您的程序是否可以成功加载CUDA库,以及是否可以仅回退