侧边栏壁纸
博主头像
liveJQ博主等级

沒有乐趣,何来开始

  • 累计撰写 192 篇文章
  • 累计创建 70 个标签
  • 累计收到 4 条评论

unRAID 配置 NVIDIA 显卡驱动并传给容器

liveJQ
2025-02-09 / 0 评论 / 0 点赞 / 1 阅读 / 2,361 字

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

0

评论区