如何在Docker中使用Nvidia GPU

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Docker中使用Nvidia GPU相关的知识,希望对你有一定的参考价值。

参考技术A 在docker 19版本之前,docker没有做容器中使用GPU的支持。nvidia团队根据OCI容器规范针对Docker、LXC以及Podman等虚拟容器进行了适配开发,并发布了NVIDIA Container Toolkit。概览传送门: https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/overview.html 。在docker中使用GPU相对比较麻烦。但是!
docker发布19版本后,在docker中使用GPU变得方便。docker添加了使用gpu的option。使得只需要一个option即可在容器中使用GPU,跳过了复杂的配置大大降低了使用难度。

在启动容器时使用--gpus 使主机上的GPU可访问,并且可以配置使用多少块GPU。

将所有GPU暴露给容器,并调用“nvidia-smi"返回的结果:

更详细的gpu配置强推官方指引: https://docs.docker.com/config/containers/resource_constraints/#access-an-nvidia-gpu

在暴露GPU到容器时,包含capability选项,该选项制定了docker容器需要使用的GPU能力。
GPU能力包括:

为容器指定capability的方法有两种,

推荐使用nvidia官方发布的镜像作为基础镜像。

nvidia发布3个版本的cuda镜像: base, runtime, devel。三者的区别如下

当然你可以在自己的base docker中安装cuda,cudnn等环境而非使用nvidia docker作为base,可以参考nvidia docker的Dockerfile进行自己的定制,传送门: https://gitlab.com/nvidia/container-images/cuda/-/tree/master/dist

以上是关于如何在Docker中使用Nvidia GPU的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Nomad 与 Nvidia Docker 一起使用?

安装使用NVIDIA-Docker-- 可使用GPU的Docker容器

如何从 Docker 容器连接到 Nvidia MPS 服务器?

在Docker中使用TensorFlow(GPU版+Ubuntu 20.04)

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

如何在 ffmpeg 3.2.0 的多个 nvidia gpu 中选择 gpu?