Windows + WSL2 + RTX 2080 Ti 搭建 RDK X5 OpenExplorer GPU 量化环境实战

Windows + WSL2 + RTX 2080 Ti 搭建 RDK X5 OpenExplorer GPU 量化环境实战

一、前言

最近在做 RDK X5 的模型量化环境搭建,最开始走的是 VMware Workstation + Ubuntu 22.04 方案。

但实际折腾下来发现,这条路在 GPU 量化 这里会被卡死,因为虚拟机里根本拿不到宿主机的 NVIDIA 显卡,后面的 CUDA、Docker GPU、OpenExplorer GPU 容器都没法成立。

后来我改成了:

Windows + WSL2 Ubuntu 22.04 + Docker Desktop + RTX 2080 Ti + OpenExplorer GPU 容器

这条路线最终成功跑通,而且更适合 Windows 用户。

这篇文章把我从零搭建到真正进入 OpenExplorer GPU 容器的全过程整理出来,适合想做 RDK X5 模型量化、又不想继续折腾虚拟机 GPU 直通的同学。

结果如图


二、最终环境

本次最终跑通的环境如下:

  • Windows 主机
  • WSL2
  • Ubuntu 22.04
  • Docker Desktop
  • NVIDIA RTX 2080 Ti
  • OpenExplorer v1.2.8
  • Python 3.10.15
  • hb_mapper 1.24.3

三、为什么 VMware Workstation 不适合这件事

我最开始是 VMware Workstation 虚拟机方案,结果在 Ubuntu 里执行:

bash 复制代码
lspci | grep -i nvidia

没有任何输出。

这意味着虚拟机里看到的是虚拟显卡,而不是宿主机真正的 2080 Ti。

后面无论怎么装 NVIDIA 驱动、Docker、CUDA,都没有意义。

所以如果你的目标是 RDK X5 的 GPU 量化环境,建议尽早换思路,不要在普通桌面虚拟机上浪费时间。


四、改用 WSL2 的思路

正确路线是:

Windows 显卡驱动正常

→ 安装 WSL2 Ubuntu 22.04

→ 在 WSL 里看到 NVIDIA GPU

→ 安装 Docker Desktop

→ 启用 WSL2 backend

→ 让 Ubuntu 接入 Docker Desktop

→ 验证 GPU 容器

→ 启动 OpenExplorer GPU 容器


五、第一步:先确认 Windows 侧显卡正常

在 PowerShell 里执行:

powershell 复制代码
nvidia-smi

如果能看到显卡型号、驱动版本、CUDA 版本,说明 Windows 侧正常。


六、第二步:安装 WSL2 Ubuntu 22.04

查看可安装发行版:

powershell 复制代码
wsl --list --online

安装 Ubuntu 22.04:

powershell 复制代码
wsl --install -d Ubuntu-22.04

查看版本:

powershell 复制代码
wsl -l -v

如果不是 2,就执行:

powershell 复制代码
wsl --set-version Ubuntu-22.04 2
wsl --set-default-version 2

七、第三步:验证 WSL 里的 GPU 通路

进入 Ubuntu:

powershell 复制代码
wsl -d Ubuntu-22.04

在 Ubuntu 中执行:

bash 复制代码
whoami
uname -a
nvidia-smi

只要 nvidia-smi 在 Ubuntu 里也能看到 2080 Ti,就说明这条路已经成了大半。

注意:不要在 WSL 里安装 Linux 版 NVIDIA 驱动。


八、第四步:安装基础工具

bash 复制代码
cd ~
sudo apt update
sudo apt install -y \
    curl wget git vim nano htop tree net-tools \
    ca-certificates gnupg lsb-release \
    apt-transport-https software-properties-common \
    python3-pip python3-dev unzip

顺手配 pip 镜像:

bash 复制代码
mkdir -p ~/.pip
cat > ~/.pip/pip.conf << 'EOF'
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn
timeout = 120
EOF

九、第五步:安装 Docker Desktop 并解决权限问题

在 Windows 里安装 Docker Desktop,打开:

  • WSL2 backend
  • Ubuntu-22.04 integration

然后在 Ubuntu 中执行:

bash 复制代码
sudo groupadd docker 2>/dev/null || true
sudo usermod -aG docker $USER

接着在 PowerShell 中:

powershell 复制代码
wsl --shutdown

重新进入 Ubuntu 后验证:

bash 复制代码
docker version
docker context ls
docker context use desktop-linux

十、第六步:验证 GPU Docker

bash 复制代码
docker run --rm -it --gpus=all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark

这一步跑通后,说明:

  • Docker Desktop 正常
  • WSL2 backend 正常
  • GPU 容器正常

十一、第七步:准备 OpenExplorer 工作目录

bash 复制代码
mkdir -p ~/rdkx5_workspace
mkdir -p ~/rdkx5_dataset/raw_images
mkdir -p ~/rdkx5_dataset/calibration_f32
mkdir -p ~/rdkx5_dataset/bin_output
mkdir -p ~/rdkx5_models

十二、第八步:下载并解压 OpenExplorer

下载:

bash 复制代码
cd ~/rdkx5_workspace

wget -c \
ftp://x5ftp@vrftp.horizon.ai/OpenExplorer/v1.2.8_release/horizon_x5_open_explorer_v1.2.8-py310_20240926.tar.gz \
--ftp-password='x5ftp@123$%'

注意这里一个坑:

这个文件虽然叫 .tar.gz,但实际可能不是 gzip 压缩包。

先判断:

bash 复制代码
file horizon_x5_open_explorer_v1.2.8-py310_20240926.tar.gz

如果输出是:

bash 复制代码
POSIX tar archive (GNU)

那就必须这样解压:

bash 复制代码
tar -xf horizon_x5_open_explorer_v1.2.8-py310_20240926.tar.gz

不要用:

bash 复制代码
tar -xzf ...

否则会报:

bash 复制代码
gzip: stdin: not in gzip format

十三、第九步:启动 OpenExplorer GPU 容器

进入目录:

bash 复制代码
cd ~/rdkx5_workspace/horizon_x5_open_explorer_v1.2.8-py310_20240926

启动:

bash 复制代码
bash run_docker.sh ~/rdkx5_dataset

注意一定是:

bash 复制代码
bash run_docker.sh ...

不要写成:

bash 复制代码
sh run_docker.sh ...

否则很可能出现:

bash 复制代码
unexpected operator

十四、第十步:等待 GPU 镜像拉完

如果你看到:

bash 复制代码
Start Docker container in GPU mode.
Pulling from openexplorer/ai_toolchain_ubuntu_20_x5_gpu

那说明当前拉的就是 GPU 镜像。

镜像体积较大,下载慢是正常的。

如果已经下载了一大半,不建议频繁 Ctrl+C,最好让它一次拉完。


十五、第十一步:进入容器后验收

进入容器后执行:

bash 复制代码
python3 --version
hb_mapper --version
nvidia-smi
pwd
ls /data
ls /open_explorer

我这次最终成功结果是:

  • Python 3.10.15
  • hb_mapper 1.24.3
  • 容器里 nvidia-smi 识别 RTX 2080 Ti
  • 当前目录为 /open_explorer

这说明整个 WSL2 + Docker Desktop + OpenExplorer GPU 量化环境 已经搭建完成。


十六、如何把 Linux 文件复制到 Windows / U 盘

方法 1:命令行复制

查看盘符:

bash 复制代码
ls /mnt

假设 U 盘是 E:,那么在 WSL 中就是:

bash 复制代码
/mnt/e

复制目录:

bash 复制代码
cp -r ~/rdkx5_workspace /mnt/e/

方法 2:资源管理器打开

进入目录后执行:

bash 复制代码
cd ~/rdkx5_workspace
explorer.exe .

会直接打开当前 Linux 目录对应的 Windows 资源管理器窗口,你可以手动拖到 U 盘。


十七、总结

这次最大的收获有三点:

  1. 普通桌面虚拟机不适合这类 GPU 量化环境
  2. WSL2 对 Windows 用户来说是更靠谱的路线
  3. OpenExplorer GPU 容器一旦进去了,后续量化就顺了很多

如果你和我一样是 Windows 主机、手里有 NVIDIA 显卡,又想快速把 RDK X5 的 GPU 量化环境搭起来,强烈建议优先走 WSL2 + Docker Desktop,不要继续在 VMware Workstation 上耗时间。

相关推荐
泡海椒4 小时前
JQuick-SQL 快速开始:注册内存表并执行查询
数据库·windows·sql
钱栈up7 小时前
耳机音效不对,我顺手查了系统更新,结果挖出个崩溃了整天的服务
windows·shell
xiao77mwq7 小时前
Wireshark 在 Windows 上没法按进程抓包,我补了一条路
windows
Helix2507 小时前
MDT自动化部署实战:构建企业级Windows批量装机与PXE网络引导环境
windows·mdt自动化部署·wds网络启动·pxe引导·windows批量装机·任务序列·无人值守安装
学IT的周星星8 小时前
记忆系统:让 Agent 记住你是谁、上次聊到哪
运维·服务器·人工智能·windows·大模型·llm·agent
撞强10 小时前
Windows 上从零开始:Obsidian + Copilot(Icompify)+ 客户洞察实战 · 图文指南
windows·copilot·obsidian·icompify
weixin_5716674111 小时前
Windows 通过 SSH 反向隧道向 Ubuntu 转发代理
linux·运维·windows·代理
事圆则缓11 小时前
Kotlin 集合与序列:给页面一份清楚的数据
开发语言·windows·kotlin
遇印记11 小时前
应用层,网络管理
运维·网络·windows·学习·安全
硫酸锌0113 小时前
安卓手机连接Windows电脑后通过DHCP服务为手机分配IP地址
android·windows·计算机网络