docker19.03如何使用NVIDIA显卡

93次阅读
没有评论

共计 6164 个字符,预计需要花费 16 分钟才能阅读完成。

这篇文章给大家分享的是有关 docker19.03 如何使用 NVIDIA 显卡的内容。丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,一起跟随丸趣 TV 小编过来看看吧。

docker19.03 使用 NVIDIA 显卡前言

2019 年 7 月的 docker 19.03 已经正式发布了,这次发布对我来说有两大亮点。
1,就是 docker 不需要 root 权限来启动喝运行了
2,就是支持 GPU 的增强功能,我们在 docker 里面想读取 nvidia 显卡再也不需要额外的安装 nvidia-docker 了

安装 nvidia 驱动

确认已检测到 NVIDIA 卡:

$ lspci -vv | grep -i nvidia
00:04.0 3D controller: NVIDIA Corporation GP100GL [Tesla P100 PCIe 16GB] (rev a1)
 Subsystem: NVIDIA Corporation GP100GL [Tesla P100 PCIe 16GB]
 Kernel modules: nvidiafb

这里不再详细介绍:如果不知道请移步 ubuntu 离线安装 TTS 服务

安装 NVIDIA Container Runtime

$ cat nvidia-container-runtime-script.sh
curl -s -L https://nvidia.github.io/nvidia-container-runtime/gpgkey | \
 sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.list | \
 sudo tee /etc/apt/sources.list.d/nvidia-container-runtime.list
sudo apt-get update

执行脚本

sh nvidia-container-runtime-script.sh
OK
deb https://nvidia.github.io/libnvidia-container/ubuntu18.04/$(ARCH) /
deb https://nvidia.github.io/nvidia-container-runtime/ubuntu18.04/$(ARCH) /
Hit:1 http://archive.canonical.com/ubuntu bionic InRelease
Get:2 https://nvidia.github.io/libnvidia-container/ubuntu18.04/amd64 InRelease [1139 B] 
Get:3 https://nvidia.github.io/nvidia-container-runtime/ubuntu18.04/amd64 InRelease [1136 B] 
Hit:4 http://security.ubuntu.com/ubuntu bionic-security InRelease 
Get:5 https://nvidia.github.io/libnvidia-container/ubuntu18.04/amd64 Packages [4076 B] 
Get:6 https://nvidia.github.io/nvidia-container-runtime/ubuntu18.04/amd64 Packages [3084 B] 
Hit:7 http://us-east4-c.gce.clouds.archive.ubuntu.com/ubuntu bionic InRelease
Hit:8 http://us-east4-c.gce.clouds.archive.ubuntu.com/ubuntu bionic-updates InRelease
Hit:9 http://us-east4-c.gce.clouds.archive.ubuntu.com/ubuntu bionic-backports InRelease
Fetched 9435 B in 1s (17.8 kB/s) 
Reading package lists... Done
$ apt-get install nvidia-container-runtime
Reading package lists... Done
Building dependency tree 
Reading state information... Done
The following packages were automatically installed and are no longer required:
 grub-pc-bin libnuma1
Use  sudo apt autoremove  to remove them.
The following additional packages will be installed:
Get:1 https://nvidia.github.io/libnvidia-container/ubuntu18.04/amd64 libnvidia-container1 1.0.2-1 [59.1 kB]
Get:2 https://nvidia.github.io/libnvidia-container/ubuntu18.04/amd64 libnvidia-container-tools 1.0.2-1 [15.4 kB]
Get:3 https://nvidia.github.io/nvidia-container-runtime/ubuntu18.04/amd64 nvidia-container-runtime-hook 1.4.0-1 [575 kB]
Unpacking nvidia-container-runtime (2.0.0+docker18.09.6-3) ...
Setting up libnvidia-container1:amd64 (1.0.2-1) ...
Setting up libnvidia-container-tools (1.0.2-1) ...
Processing triggers for libc-bin (2.27-3ubuntu1) ...
Setting up nvidia-container-runtime-hook (1.4.0-1) ...
Setting up nvidia-container-runtime (2.0.0+docker18.09.6-3) ...
which nvidia-container-runtime-hook
/usr/bin/nvidia-container-runtime-hook

安装 docker-19.03

# step 1:  安装必要的一些系统工具
yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2:  添加软件源信息
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3:  更新并安装  Docker-CE
yum makecache fast
yum -y install docker-ce-19.03.2
# Step 4:  开启 Docker 服务
systemctl start docker   systemctl enable docker

验证 docker 版本是否安装正常

$ docker version
Client: Docker Engine - Community
 Version: 19.03.2
 API version: 1.40
 Go version: go1.12.8
 Git commit: 6a30dfc
 Built: Thu Aug 29 05:28:55 2019
 OS/Arch: linux/amd64
 Experimental: false
Server: Docker Engine - Community
 Engine:
 Version: 19.03.2
 API version: 1.40 (minimum version 1.12)
 Go version: go1.12.8
 Git commit: 6a30dfc
 Built: Thu Aug 29 05:27:34 2019
 OS/Arch: linux/amd64
 Experimental: false
 containerd:
 Version: 1.2.6
 GitCommit: 894b81a4b802e4eb2a91d1ce216b8817763c29fb
 runc:
 Version: 1.0.0-rc8
 GitCommit: 425e105d5a03fabd737a126ad93d62a9eeede87f
 docker-init:
 Version: 0.18.0
 GitCommit: fec3683

验证下 -gpus 选项

$ docker run --help | grep -i gpus
 --gpus gpu-request GPU devices to add to the container (all  to pass all GPUs)

运行利用 GPU 的 Ubuntu 容器

 $ docker run -it --rm --gpus all ubuntu nvidia-smi
Unable to find image  ubuntu:latest  locally
latest: Pulling from library/ubuntu
f476d66f5408: Pull complete 
8882c27f669e: Pull complete 
d9af21273955: Pull complete 
f5029279ec12: Pull complete 
Digest: sha256:d26d529daa4d8567167181d9d569f2a85da3c5ecaf539cace2c6223355d69981
Status: Downloaded newer image for ubuntu:latest
Tue May 7 15:52:15 2019 
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.116 Driver Version: 390.116 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 Tesla P4 Off | 00000000:00:04.0 Off | 0 |
| N/A 39C P0 22W / 75W | 0MiB / 7611MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
:~$

故障排除

您是否遇到以下错误消息:

$ docker run -it --rm --gpus all debian
docker: Error response from daemon: linux runtime spec devices: could not select device driver   with capabilities: [[gpu]].

上述错误意味着 Nvidia 无法正确注册 Docker。它实际上意味着驱动程序未正确安装在主机上。这也可能意味着安装了 nvidia 容器工具而无需重新启动 docker 守护程序:您需要重新启动 docker 守护程序。

我建议你回去验证是否安装了 nvidia-container-runtime 或者重新启动 Docker 守护进程。

列出 GPU 设备

$ docker run -it --rm --gpus all ubuntu nvidia-smi -L
GPU 0: Tesla P4 (UUID: GPU-fa974b1d-3c17-ed92-28d0-805c6d089601)
$ docker run -it --rm --gpus all ubuntu nvidia-smi --query-gpu=index,name,uui
d,serial --format=csv
index, name, uuid, serial
0, Tesla P4, GPU-fa974b1d-3c17-ed92-28d0-805c6d089601, 0325017070224

待验证,因为我现在没有 GPU 机器 — 已经验证完成,按照上述操作可以在 docker 里面成功的驱动 nvidia 显卡

感谢各位的阅读!关于“docker19.03 如何使用 NVIDIA 显卡”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-25发表,共计6164字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)