安装wsl2 ubuntu20.04

1
wsl --install -d Ubuntu-20.04

安装conda

Download Success | Anaconda

1
2
3
mkdir ~/download
cd ~/download
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
1
bash ./Miniconda3-latest-Linux-x86_64.sh

一路默认安装即可

激活环境

1
source ~/.bashrc

安装CUDA

选择与window相同版本的cuda_12.1.0

需要安装历史存档,CUDA版本低于12.1.0

CUDA Toolkit Archive | NVIDIA Developer

1
2
3
4
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-keyring_1.0-1_all.deb
sudo dpkg -i cuda-keyring_1.0-1_all.deb
sudo apt-get update
sudo apt-get -y install cuda

查看仓库中所有可安装的 CUDA 版本(以cuda-开头):

1
apt list | grep -E '^cuda-[0-9]'

安装该版本 CUDA:

1
sudo apt-get -y install cuda-12-1

安装nvcc

1
sudo apt install cuda-toolkit-12-1

打开配置文件

1
nano ~/.bashrc

在文件最末尾添加以下两行:

1
2
export PATH=/usr/local/cuda-12.1/bin:$PATH
export LD_LIBRARY_PATH=/usr/lib/wsl/lib/:$LD_LIBRARY_PATH

保存退出(按 Ctrl+O 回车保存,按 Ctrl+X 退出)。

刷新环境变量使其立即生效:

1
source ~/.bashrc
1
2
3
4
nvidia-smi

## 查看CUDA版本
nvcc --version

这里的CUDA版本表示GPU 支持的最高 CUDA 版本,并非nvcc版本。

创建conda环境

1
2
conda create -n rl python=3.8.10
conda activate rl

安装对应cuda版本pytorch

在pytorch查询对应cuda版本的pytorch,之前的PyTorch版本

1
conda install pytorch==2.4.1 torchvision==0.19.1 torchaudio==2.4.1 pytorch-cuda=12.1 -c pytorch -c nvidia

验证pytorch

1
python
1
2
3
import torch
print(torch.__version__)
print(torch.cuda.is_available())

安装依赖

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
pip install torchvision -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install pyquaternion -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install pyyaml -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install pexpect -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install einops -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install tqdm -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install packaging -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install h5py -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install ipython -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install getkey -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install wandb -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install chardet -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install numpy==1.23.2 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install h5py_cache -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install tensorboard -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install onnxruntime

配置ssh

Ubuntu20.04子系统自带的ssh服务无法连接,需卸载后重新安装。

卸载ssh服务

1
apt remove openssh-server

重装ssh服务

1
apt install openssh-server
1
sudo nano /etc/ssh/sshd_config

确保以下配置

1
2
3
4
5
6
7
Port 22                   # 默认端口
ListenAddress 0.0.0.0 # 允许所有 IP 连接
PasswordAuthentication yes # 启用密码登录
PermitRootLogin yes # 允许 root 登录(按需调整)
# X11
X11Forwarding yes
X11UseLocalhost no

重启ssh服务

sudo service ssh restart

安装vulkan

教程:【记录】在WSL2中部署Vulkan开发环境(2022年版) - 知乎

在 WSL2 上配置 Isaac Gym 宇树机器人强化学习环境 - ErBW_s - 博客园

使用命令sudo apt-get install xfce4 安装xfce4桌面环境

选择gdm3即可。

1
sudo nano ~/.bashrc

将以下命令添加到bashrc文件末尾:

1
2
export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0
export LIBGL_ALWAYS_INDIRECT=1
1
source ~/.bashrc

完成后使用命令sudo xfce4-session 启动xfce4桌面环境

注意:之后的操作都要在xfce桌面终端执行

安装Vulkan

LunarG VulkanSDK Packages

1
2
3
4
wget -qO - https://packages.lunarg.com/lunarg-signing-key-pub.asc | sudo apt-key add -
sudo wget -qO /etc/apt/sources.list.d/lunarg-vulkan-1.3.283-focal.list https://packages.lunarg.com/vulkan/1.3.283/lunarg-vulkan-1.3.283-focal.list
sudo apt update
sudo apt install vulkan-sdk

这时运行 vulkaninfo --summary 会发现在使用 CPU (llvmpipe) 而不是 NVIDIA GPU,这是因为 WSL2 内置的 mesa 是 CPU 实现,我们需要使用第三方 mesa 源来启用 GPU

在xfce4终端执行以下命令:

1
2
3
sudo add-apt-repository ppa:kisak/kisak-mesa
sudo apt update
sudo apt upgrade

如果缺失dzn_icd.x86_64.json可以尝试更换ppa源,但是速度较慢

Vulkan Fails to Detect NVIDIA GPU on WSL2 Ubuntu 24.04 - `dzn` Driver Files Missing (Tested on multiple systems) - Graphics / Linux / Linux - NVIDIA Developer Forums

1
2
3
sudo add-apt-repository ppa:kisak/turtle
sudo apt update
sudo apt upgrade

在当前版本命令执行时应该会显示mesa需要更新,更新时速度较慢,耐心等待更新完成后理论上你可以在ls /usr/share/vulkan/icd.d/下找到4个json文件:

1
VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/dzn_icd.x86_64.json vulkaninfo

现在查看vulkaninfo --summary,Vulkan运行时才算是真正调度起了GPU

安装Isaac gym

下载并且解压Isaac Gym - Download Archive | NVIDIA Developer

1
tar -zxvf IsaacGym_Preview_4_Package.tar.gz
1
git clone https://github.com/isaac-sim/IsaacGymEnvs.git

安装依赖

1
2
pip install -e ./isaacgym/python
pip install -e ./IsaacGymEnvs

验证isaacgym

1
python
1
2
import isaacgym
quit()

可能遇到无法找到或加载其运行所需的 NVIDIA CUDA 动态链接库 (libcuda.so 或类似文件) 以及 PhysX 物理引擎库

寻找对应的库文件并复制到 /usr/lib/x86_64-linux-gnu 文件夹中

1
2
find / -name libpython3.8.so.1.0
sudo cp /home/rick/miniconda3/envs/rl/lib/libpython3.8.so.1.0 /usr/lib/x86_64-linux-gnu

没有PhysX 物理引擎库,意思是没有安装 Vulkan,安装 Vulkan即可。

测试倒立摆

1
python ./IsaacGymEnvs/isaacgymenvs/train.py task=Cartpole

mujoco

在WSL上安装MuJoCo和mujoco_py_error: opengl version 1.5 or higher required-CSDN博客

安装

1
2
3
4
5
mkdir ~/.mujoco
cd ~/.mujoco
wget https://mujoco.org/download/mujoco210-linux-x86_64.tar.gz
tar -zxvf mujoco210-linux-x86_64.tar.gz
export LD_LIBRARY_PATH=~/.mujoco/mujoco200/bin/

运行

1
2
cd ./mujoco210/bin
./simulate ../model/humanoid.xml

不出意外会缺少openGL

安装即可

1
2
sudo apt install libgl1-mesa-dev freeglut3-dev libglu1-mesa-dev
sudo apt install libsoil-dev libglm-dev libassimp-dev libglew-dev libglfw3-dev libxinerama-dev libxcursor-dev libxi-dev

测试

1
2
sudo apt install x11-apps mesa-utils
glxgears

1
nano ~/.bashrc

添加配置

1
2
export MESA_GL_VERSION_OVERRIDE=3.3
unset LIBGL_ALWAYS_INDIRECT

生效

1
source ~/.bashrc

再次运行mujoco即可

1
./simulate ../model/humanoid.xml