unRAID系统配置
应用商店下载2个插件:Nvidia Driver 和 GPU Statistics
下载插件可能需要代理才能下载成功,由于 unRAID 下载插件都是通过 wget 工具,所以可以直接单独给 wget 配置代理。但是需要注意网络先不要启用 ipv6 (ipv4+ipv6),否则会因为优先使用 ipv6 访问而导致代理失败。
root@Master:~# cat << EOF >>/etc/wgetrc
https_proxy = http://192.168.1.1:1080/
http_proxy = http://192.168.1.1:1080/
EOF
安装好显卡驱动之后,需要重启 docker 服务或者直接重启系统来使驱动生效。作用应该就是重新加载运行时识别到显卡。
安装好 Nvidia Driver 插件后,也会一并安装 nvidia-container-runtime,并且会给 Docker Daemon 配置好 NVIDIA 运行时。
root@Master:~# cat /etc/docker/daemon.json
{
"runtimes": {
"nvidia": {
"path": "/usr/bin/nvidia-container-runtime",
"runtimeArgs": []
}
}
}
验证显卡驱动是否安装成功,正常输出显示类似如下:
root@Master:~# nvidia-smi
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 565.57.01 Driver Version: 565.57.01 CUDA Version: 12.7 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce GTX 1060 6GB On | 00000000:01:00.0 Off | N/A |
| 0% 28C P8 11W / 120W | 0MiB / 6144MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| No running processes found |
+-----------------------------------------------------------------------------------------+
最常见的错误就是创建容器时报错Unknown runtime specified nvidia
,查看日志显示“/run/s6/basedir/scripts/rc.init: 76: --runtime=nvidia: not found”,很可能就是上面的插件没有生效的缘故。
root@Master:~# nvidia-container-runtime --version
NVIDIA Container Runtime version 1.17.2
commit: fa66e4cd562804509055e44a88f666673e6d27c0
spec: 1.2.0
runc version 1.1.4
commit: v1.1.4-0-g5fd4c4d1
spec: 1.0.2-dev
go: go1.18.7
libseccomp: 2.5.1
验证 Docker 是否正确识别 NVIDIA 运行时
首先确保 Docker 版本在 19.03 及以上
使用如下命令,输出包含 nvidia 就表示已经正确识别了。
docker info | grep Runtimes
Runtimes: runc io.containerd.runc.v2 io.containerd.runtime.v1.linux nvidia
容器配置
额外参数:--runtime=nvidia
配置变量:
NVIDIA_VISIBLE_DEVICES=GPU-ab310170-83ae-ea64-7866-40310ee3e921(这是指定某个显卡ID,也可以直接填all)
NVIDIA_DRIVER_CAPABILITIES=all
Docker 19.03 之后,--runtime=nvidia 被 --gpus 取代,所以额外参数也可以尝试使用 --gpus all
评论区