news 2026/9/11 13:01:27

WSL2里Docker调用不到显卡?HeyGem.ai数字人视频合成的GPU透传配置指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
WSL2里Docker调用不到显卡?HeyGem.ai数字人视频合成的GPU透传配置指南

WSL2里Docker调用不到显卡?HeyGem.ai数字人视频合成的GPU透传配置指南

【免费下载链接】Duix-Avatar🚀 Truly open-source AI avatar(digital human) toolkit for offline video generation and digital human cloning.项目地址: https://gitcode.com/GitHub_Trending/he/Duix-Avatar

在 WSL2 中跑 Docker 容器时,Docker GPU 透传(把宿主机上的 NVIDIA 显卡暴露给容器使用)一旦没配好,HeyGem.ai 的三个服务容器就起不来,离线数字人视频合成也无法启动。这篇文章把这条链路拆成 3 个检查点:先核对 WSL2 与显卡驱动版本,再安装 nvidia-container-toolkit 打通容器与显卡之间的桥梁,最后用项目 deploy/ 目录下现成的编排文件拉起服务并逐项验收。全程不需要改一行源码,照着执行即可让--gpus all真正生效。

前置检查:两个版本门槛先过一遍

在动 Docker 之前,先把宿主机的两关确认掉,否则后面装什么都是白装。

检查项最低要求作用
WSLWSL2,且wsl --version中 WSL 与 WSLg 均显示 1.0 以上GPU 直通能力由新版 WSL2 内核提供
NVIDIA 驱动版本不低于 510.06支持 WSL2 显卡直通,驱动在 Windows 侧安装

确认 WSL2 版本是否达标

wsl --version # 查看 WSL 与 WSLg 内核版本

成功标志:输出中WSL versionWSLg version都是 1.x 以上。如果显示的是旧格式信息(只有Version: 2一类字样),说明内核过旧,在 Windows PowerShell 里执行wsl --update升级后,重新跑一遍上面的命令复核。

确认显卡驱动是否就绪

nvidia-smi # 在 WSL 终端内直接检查宿主显卡

成功标志:能列出 GPU 名称与驱动版本。若提示命令不存在,说明 NVIDIA 驱动 未在 Windows 侧装好(或在 WSL 中未启用"Windows 管理 GPU 驱动"),此时三个服务容器一定无法启动。

给 Docker 装 GPU 运行时:安装 nvidia-container-toolkit

NVIDIA Container Toolkit 是连接 Docker 与显卡的"翻译层":它向 Docker 注册一个 nvidia 运行时,容器启动时才能看到 GPU 设备。

添加官方软件源并安装

curl -s -L https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list \ | sed 's%deb https://%deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://%g' \ | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit # 安装工具包

注册 nvidia 运行时并重启 Docker

sudo nvidia-ctk runtime configure --runtime=docker # 把 nvidia 运行时写进 Docker 守护进程配置 sudo systemctl restart docker

注意:这一步重启不能省,漏掉的直接症状是后面测试时提示找不到设备驱动。

用一条命令验收 GPU 透传

docker info | grep -A 2 "Runtimes" | grep nvidia # 成功标志:能列出 nvidia 运行时与 nvidia GPU 设备 docker run --rm --gpus all nvidia/cuda:12.4.1-base-ubuntu22.04 nvidia-smi

成功标志:第二条命令在容器内打印出显卡型号、显存与驱动版本,说明"宿主机 → WSL2 → Docker → 容器"这条透传链路已经通了。若报could not select device driver "nvidia",回到上一小节确认重启是否执行。

拉起 HeyGem.ai 的三个 GPU 服务

透传验证通过后,服务端部署只剩一条命令。先克隆仓库:

git clone https://gitcode.com/GitHub_Trending/he/HeyGem.ai

deploy/docker-compose-linux.yml 已为每个服务预置好runtime: nvidia与 GPU 设备预留,你不需要自己编写任何 GPU 参数。核心服务与端口如下:

服务镜像端口职责
duix-avatar-ttsguiji2025/fish-speech-ziming18180声音克隆与语音合成
duix-avatar-asrguiji2025/fun-asr10095语音识别
duix-avatar-gen-videoguiji2025/duix.avatar8383口型驱动与视频合成

一键启动并检查容器状态

cd HeyGem.ai/deploy docker compose -f docker-compose-linux.yml up -d

首次会拉取约 70GB 镜像,耗时以网速为准,建议挂在稳定的 Wi-Fi 下等待。完成后:

docker ps --format "table {{.Names}}\t{{.Status}}" # 成功标志:三个容器全部 Running

如果你使用 RTX 50 系列显卡,标准镜像的 CUDA 版本可能不匹配,改用 5090 专用编排:

docker compose -f docker-compose-5090.yml up -d

验收与排障:跑起来之后还能确认什么

逐端口核对三个服务端

客户端会访问127.0.0.1上的 8383、18180、10095 三个端口。可逐个查看容器日志,确认无异常退出或报错循环:

docker logs --tail 20 duix-avatar-gen-video # 对另外两个容器名同样执行

生成视频时盯一眼 GPU 占用

nvidia-smi --query-gpu=utilization.gpu,memory.used --format=csv -l 3

成功标志:合成期间utilization.gpu出现明显读数。若长时间为 0 且任务卡住,多半是显存不足——该方案建议 8GB 以上显存;机器配置偏低时,可先改用 deploy/docker-compose-lite.yml 启动单服务轻量版。

两个高频故障速查

  • 拉镜像超时、连接被取消:WSL 环境下访问 Docker Hub 官方仓库经常不稳定,在 Docker Desktop 的 Docker Engine 设置里配置registry-mirrors镜像源后重启引擎即可。

  • 创建模特或克隆音色时报错:先按 常见问题 里的自查步骤确认三个容器均为 Running,再核对素材视频是否带人声——声音克隆依赖这段音频。

要点回顾

  • WSL 版本 ≥ 1.0、驱动 ≥ 510.06,两道门槛先过;
  • nvidia-ctk注册运行时后必须重启 Docker,再用--gpus all测试容器验证透传;
  • 服务启动交给 deploy/docker-compose-linux.yml 一条命令,50 系显卡换用 deploy/docker-compose-5090.yml;
  • 显存 8GB 起步;镜像拉取慢就配国内镜像源。

部署中遇到具体报错,建议先翻 doc/常见问题.md,并带着docker logs输出的关键日志再去项目仓库提 issue;客户端相关逻辑可参考 src/main/ 源码目录。

【免费下载链接】Duix-Avatar🚀 Truly open-source AI avatar(digital human) toolkit for offline video generation and digital human cloning.项目地址: https://gitcode.com/GitHub_Trending/he/Duix-Avatar

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/11 12:59:56

英语发音技巧:of的弱读规律与训练方法

1. 发音现象解析:of的弱读本质英语中of的发音存在强读和弱读两种形式,其中弱读/əv/在实际口语中出现频率高达90%以上。这个现象源于英语的"弱化音节"规律——当介词、冠词、连词等功能词处于非重读位置时,其元音会自然向中央元音/…

作者头像 李华
网站建设 2026/9/11 12:59:19

轨道检测与障碍物识别:Canny+霍夫变换+YOLOv5实战解析

简介:一套面向电车轨道与障碍物检测的目标检测项目,整合传统数字图像处理与YOLOv5深度学习算法,适合计算机相关专业学生、教师及开发者用于课程设计、毕业设计或算法学习。项目先采用边缘检测、透视变换、霍夫变换标注轨道并划定感兴趣区域&a…

作者头像 李华
网站建设 2026/9/11 12:56:41

序列绑定:从算法到UI、网络与三维创作的本质与排查

不用急着翻开任何一本算法书或者框架文档。先说说我怎么注意到"序列绑定"这个问题的:有天晚上我排查一个WPF界面按钮点了没反应的问题,查了两小时,最后定位到是Command绑定的CanExecute没有触发刷新;关掉调试器刷手机&a…

作者头像 李华
网站建设 2026/9/11 12:56:02

OpenProject 快速上手指南:免费的开源项目管理软件

OpenProject 快速上手指南:免费的开源项目管理软件 【免费下载链接】openproject OpenProject is the leading open source project management software for product, project and portfolio management. A powerful Jira alternative with agile planning, issue …

作者头像 李华
网站建设 2026/9/11 12:55:40

Android音频用途管理:AudioAttributes与getUsage详解

1. Android音频用途管理基础 在Android音频系统中,AudioAttributes是一个核心类,它定义了音频流的属性和用途。这个类在API 21(Android 5.0)中被引入,用于替代旧的AudioManager中的流类型(STREAM_MUSIC, STREAM_RING等)系统。AudioAttributes…

作者头像 李华
网站建设 2026/9/11 12:54:55

Android车载串口开发实战:UART、RS485配置与MODBUS通信

1. 项目概述:为什么车载 Android 设备必须啃下串口这根硬骨头?在车载电子系统里,UART 不是教科书里的一个抽象概念,而是实实在在的“神经末梢”——它连着倒车雷达的测距模块、连着车身控制单元(BCM)的灯光…

作者头像 李华