Windows 系统中如何通过 Docker 调用 CUDA 和 cuDNN 加速大模型推理
要在 Windows 系统中通过 Docker 调用 CUDA 和 cuDNN 加速大模型推理,核心依赖 WSL2(Windows Subsystem for Linux 2)的 GPU 透传能力 和 Docker Desktop 的 GPU 资源分配功能。整个流程需围绕 “环境前提→WSL2 配置→Docker 配置→容器部署→验证” 展开,以下是详细总结:
一、核心原理:Windows + WSL2 + Docker 的 GPU 调用逻辑
Windows 本身不直接支持 Docker 访问 GPU(传统 Hyper - V 后端无此能力),但 WSL2 支持将 Windows 的 NVIDIA GPU 透传给 Linux 环境,而 Docker Desktop 在 Windows 上默认使用 WSL2 作为后端。因此,Docker 容器的 GPU 调用链路为:Windows NVIDIA 驱动 → WSL2 GPU 透传 → Docker Desktop 资源分配 → 容器内 CUDA/cuDNN 调用 GPU
关键结论:
- 无需在 WSL2 或容器内重复安装 NVIDIA 显卡驱动(仅需 Windows 端装驱动);
- 容器内需有匹配的 CUDA 和 cuDNN(推荐用官方预装镜像,避免手动安装);
- Docker 需显式分配 GPU 资源(通过
--gpus
参数)。
二、第一步:满足基础环境前提
在配置前,需确保硬件和系统版本符合要求:
类别 | 要求 |
---|---|
GPU 硬件 | 必须是 NVIDIA 显卡(CUDA 是 NVIDIA 专属技术,AMD 需用 ROCm,生态较弱);支持 CUDA Compute Capability 3.5+(主流显卡均满足)。 |
Windows 系统 | Windows 10 21H2 及以上 / Windows 11(旧版本 WSL2 不支持 GPU 透传)。 |
Windows 更新 | 开启 Windows Update,确保系统补丁最新(尤其是 WSL2 相关组件)。 |
三、第二步:配置 Windows 端 NVIDIA 驱动
这是 GPU 透传的基础,仅需在 Windows 端安装一次,WSL2 和 Docker 会自动共享:
-
卸载旧驱动(可选):若之前装过旧版 NVIDIA 驱动,建议用「Display Driver Uninstaller(DDU)」在安全模式下彻底卸载,避免冲突。
-
安装适配驱动:
- 访问 NVIDIA 官网驱动下载页,选择显卡型号、Windows 系统版本(如 Windows 10 64 - bit);
- 驱动版本需满足