nvidia-docker 可以 运行 没有 GPU 吗?

Can nvidia-docker be run without a GPU?

官方 PyTorch Docker image is based on nvidia/cuda, which is able to run on Docker CE, without any GPU. It can also run on nvidia-docker,我假设启用了 CUDA 支持。是否可以在没有任何 GPU 的情况下 运行 nvidia-docker 本身在 x86 CPU 上?有没有一种方法可以构建单个 Docker 图像,在可用时利用 CUDA 支持(例如,当 运行ning 在 nvidia-docker 内时),否则使用 CPU?当您从 Docker CE 内部使用 torch.cuda 时会发生什么? Docker CE 和为什么 nvidia-docker 不能合并到 Docker CE 到底有什么区别?

nvidia-dockerdocker --runtime nvidia 的快捷方式。我确实希望有一天他们会合并它,但现在是第 3 方 运行 时间。他们在 GitHub page.

上解释它是什么以及它的作用

A modified version of runc adding a custom pre-start hook to all containers. If environment variable NVIDIA_VISIBLE_DEVICES is set in the OCI spec, the hook will configure GPU access for the container by leveraging nvidia-container-cli from project libnvidia-container.

没有什么能阻止您 运行 使用正常 dockernvidia-docker 生成图像。它们工作得很好,但如果你 运行 它们中的某些东西需要 GPU,那将会失败。

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

要创建可以在 dockernvidia-docker 上 运行 的图像,其中的程序需要能够知道它在 运行 的位置。不知道有没有官方的方法,你可以试试下面的方法之一:

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