【问题标题】:Is it possible to build an `nvidia/cuda`-based image on a server without a GPU?是否可以在没有 GPU 的服务器上构建基于“nvidia/cuda”的图像?
【发布时间】:2020-08-07 21:57:45
【问题描述】:

我有一个基于nvidia/cudaDockerfile,如下所示:

FROM nvidia/cuda:11.0-base

...

我希望能够在没有 Nvidia GPU 的 CI 服务器上构建这个 Dockerfile。当我尝试这样做时,我收到此错误:

------
 > [1/6] FROM docker.io/nvidia/cuda:11.0-base:
------
failed to solve with frontend dockerfile.v0: failed to solve with frontend gateway.v0: rpc error: code = Unknown desc = failed to build LLB: failed to load cache key: docker.io/nvidia/cuda:11.0-base not found

错误说找不到图像,但我认为这有点误导。我已经能够将问题与是否存在 GPU 隔离开来。

在具有 Nvidia GPU 的服务器上构建此 Dockerfile 时,我没有收到此错误。是否可以在没有 GPU 的服务器上基于nvidia/cuda 图像构建Dockerfile?这将节省我们 CI 服务器的成本。

我计划将生成的 docker 容器部署在具有 GPU 的服务器上,换句话说,是否可以将 GPU 的存在推迟到运行时间而不是构建时间?

【问题讨论】:

  • 你能在你的 ci 服务器上试试docker pull nvidia/cuda:11.0-base 吗?
  • 这似乎不是GPU问题,您可以通过docker info检查CI服务器上是否配置了任何镜像。它可能为 GPU 服务器配置不同的镜像。

标签: docker continuous-integration gpu nvidia-docker


【解决方案1】:

听起来您可能需要加载可能包括任何专有 blob 和内核模块的 nvidia 组件。如果模块不存在,这可能是编译错误(缺少依赖项)的原因。

但是从这个网站https://docs.nvidia.com/datacenter/tesla/tesla-installation-notes/index.html 看来,驱动程序在加载时正在寻找硬件,这可能是您尝试编译时它们不可用的原因。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-19
    • 2012-10-01
    • 1970-01-01
    • 2011-05-17
    • 1970-01-01
    • 2018-05-22
    • 2014-09-18
    • 1970-01-01
    相关资源
    最近更新 更多