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 上耗时间。

相关推荐
Yiyi_Coding2 小时前
在Windows系统安装Docker
windows·docker·容器
韭菜钟11 小时前
WIndows下一键切换网卡IP脚本
windows·网络协议·tcp/ip
Dontla12 小时前
go语言Windows安装教程(安装go安装Golang安装)(GOPATH、Go Modules)
开发语言·windows·golang
liliangcsdn15 小时前
mstsc不在“C:\Windows\System32“下在C:\windows\WinSxS\anmd64xxx“问题分析
开发语言·windows
低频电磁之道16 小时前
解决 Windows C++ DLL 导出类不可见的编译错误
c++·windows
IDC02-阿杰18 小时前
Windows WSL2安装Ubuntu24.04全攻略
linux·windows
勤自省20 小时前
Windows 文件无法粘贴到 Linux(Ubuntu)系统的解决方案
linux·windows·ubuntu
张赐荣20 小时前
为资源管理器文件右键菜单增加 使用 Web 搜索 功能
windows
以太浮标20 小时前
华为eNSP模拟器综合实验之- DHCP、DNS、HTTP和FTP服务器配置案例Client-Server
linux·服务器·windows·http·华为·信息与通信