【踩坑笔记】Nvidia T4计算卡在Windows服务器使用docker

1、背景

业务上有个需求,希望在 Windows Server 2022 内通过 wsl2 部署 docker 运行类似 Ollama 的 GPU 服务。但 T4 计算卡使用通用方案直接安装官网下载的 GPU 驱动 + docker desktop 无法在 docker 内调用 GPU。

具体表现为:wsl 内nvidia-smi命令正常;nvcc -V命令正常,docker 内nvidia-smi命令异常。网上找到修改注册表可以强启WDDM模式,尝试后,docker 内能看到 GPU,但程序无法调用。

2、解决方法

T4计算卡修改注册表强启WDDM时,驱动不全。需要下载专有带授权的 NVIDIA RTX 虚拟工作站(NVIDIA GRID)驱动。Windows系统538.67驱动链接

安装完成并重启服务器之后,在Windows终端测试nvidia-smi命令,显示 WDDM 即为成功(官网驱动此处显示TCC)。

1
2
3
4
5
6
7
8
9
10
11
12
13
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 537.70 Driver Version: 537.70 CUDA Version: 12.2 |
|-----------------------------------------+----------------------+----------------------+
| GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
|=========================================+======================+======================|
| 0 Tesla T4 WDDM | 00000000:3D:00.0 Off | 0 |
| N/A 26C P0 26W / 70W | 8MiB / 15360MiB | 0% Default |
+-----------------------------------------+----------------------+----------------------+
| 1 Tesla T4 WDDM | 00000000:3E:00.0 Off | 0 |
| N/A 25C P8 9W / 70W | 0MiB / 15360MiB | 0% Default |
+-----------------------------------------+----------------------+----------------------+
......

注意:

  1. 如果你的计算卡是 T4 或 L4 安装了 NVIDIA 510 或更高版本的驱动程序,则需要停用 GSP 固件。请参阅 Nvidia 文档中的停用 GSP 固件
  2. 对于在 Compute Engine 上运行的 L4、T4、P4 和 P100 NVIDIA RTX 虚拟工作站 (vWS),建议根据应用所需的 NVIDIA 虚拟 GPU 软件使用以下 NVIDIA 驱动程序版本:
    • 对于 NVIDIA 虚拟 GPU 软件版本 17,建议使用以下最低 NVIDIA 驱动程序:
      • 对于 Linux 虚拟机:550.90.07
      • 对于 Windows 虚拟机:552.55
    • 对于 NVIDIA 虚拟 GPU 软件版本 16,建议使用以下最低 NVIDIA 驱动程序:
      • 对于 Linux 虚拟机:535.183.01
      • 对于 Windows 虚拟机:538.67

3、后续步骤

驱动安装妥当之后,正常安装docker即可。

!!!注意:

对于4卡以上的机器,同一个容器内仅支持4张及以下GPU,需要在docker-compose时 限定可见GPU数量【必选项】。具体原因未知,猜测可能是驱动不支持?

限定方法:环境变量中添加 - CUDA_VISIBLE_DEVICES=0,1,2,3 (docker compose启动) 或 --env CUDA_VISIBLE_DEVICES=0,1,2,3(docker run启动)

【踩坑笔记】Nvidia T4计算卡在Windows服务器使用docker

https://cyhasuka.github.io/posts/11f6a109/

作者

cyhasuka

发布于

2025-01-22

更新于

2025-01-22

许可协议

评论