xChar
·a month ago

AMD运行ai一直是件麻烦的事,之前一直用的Linux,硬盘被划分一大半空间最近装了一些游戏发现硬盘实在不够用了,通过搜索发现

WSL居然也可以运行

性能居然和Linux差不多

不用重启换系统,还能在跑ai时用电脑干点别的

虽然好处很多,但是安装时候坑也不少,WSL支持已经差不多一年了,但还是没修复一堆问题

注意:目前WSL只兼容pytoch,基于其他的ai项目暂时无法运行

实测可以运行的项目

https://github.com/SUC-DriverOld/MSST-WebUI

https://github.com/yxlllc/DDSP-SVC

https://github.com/comfyanonymous/ComfyUI

准备

  1. win10/win11系统

  2. AMD显卡(7000/9000系)旧显卡不支持WSL下的rocm,可以安装Linux或者用ZLUDA运行(ZLUDA支持项目较少)

  3. 25.3.1或更高版本的驱动

教程

安装环境

首先win+Q调出搜索,然后搜索启用

图片

然后勾选启用

图片

完成后重启电脑

打开Microsoft store 搜索Ubuntu

官方支持的版本是22.04 24.04,其他应该也可以运行,但是我没试,AMD运行环境问题太令人头疼

图片

然后在开始菜单点击运行

图片

首次会自动创建环境

Linux配置

启动后,默认是非管理员账户

需要修改root密码,然后切换到root

sudo passwd root

su

安装rocm

wget https://repo.radeon.com/amdgpu-install/6.4.2.1/ubuntu/jammy/amdgpu-install_6.4.60402-1_all.deb
chmod 777 amdgpu-install_6.4.60402-1_all.deb
apt install ./amdgpu-install_6.4.60402-1_all.deb
amdgpu-install -y --usecase=wsl,rocm --no-dkms

输入命令,如果能看到显卡就是正常的

rocminfo

下载anaconda

为什么不用系统自带的python,因为这个rocm太挑了!torch版本和rocm版本不一致一直检测不到显卡

教程可能不是新版,anaconda要登录直接访问 https://www.anaconda.com/download/success 就行了

首先安装anaconda然后把默认源换成华为云

wget https://repo.anaconda.com/archive/Anaconda3-2025.06-0-Linux-x86_64.sh
chmod 777 Anaconda3-2025.06-0-Linux-x86_64.sh
./Anaconda3-2025.06-0-Linux-x86_64.sh
pip config set global.index-url https://mirrors.huaweicloud.com/repository/pypi/simple

然后conda创建环境

conda create -n 项目名称 python=指定版本 -y
conda activate 项目名称
pip3 install torch torchvision --index-url https://download.pytorch.org/whl/rocm6.4
pip install -r requirements.txt

WSL目前还只支持ROCM6.4,不要换成新版本,不能用

然后就装完了

python3 -c 'import torch; print(torch.cuda.is_available())'

返回结果应该是True

如果没有问题可以正常运行就不用看下面了。但没问题应该是不可能的。

修问题

运行很慢

UserWarning: Memory Efficient attention on Navi31 GPU is still experimental. Enable it with TORCH_ROCM_AOTRITON_ENABLE_EXPERIMENTAL=1.

启动实验性功能

export TORCH_ROCM_AOTRITON_ENABLE_EXPERIMENTAL=1

rocm-smi不工作

这是正常的,WSL就是不能用

检测不到显卡

No HIP GPUs are available

大概是两个原因

rocm版本问题

替换一下torch的hips文件首要删掉之前的旧libhsa-runtime64.so相关文件,然后再复制

cd ~/anaconda3/envs/项目名称/lib/python3./site-packages/torch/lib
rm libhsa-runtime64.so.1
rm libhsa-runtime64.so
cp /opt/rocm-6.4.2/lib/libhsa-runtime64.so.1.15.60402 .
cp /opt/rocm-6.4.2/lib/libhsa-runtime64.so.1 .
cp /opt/rocm-6.4.2/lib/libhsa-runtime64.so .

替换完成就会导致出现下面的问题,GLIBCXX_3.4.32 not found

conda自带的 libstdc++.so版本低

GLIBCXX_3.4.32 not found

conda install -c conda-forge libstdcxx-ng

如果不能解决问题就要手动把系统的挪过来

cd ~/anaconda3/envs/项目名称/lib
cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.33 .
ln -s -f libstdc++.so.6.0.33 libstdc++.so.6

torch版本不对

Could not find a version that satisfies the requirement torch (from versions: none)

这个是因为项目自动安装的环境把rocm的torch替换了一部分

解决方法是

pip3 install torch torchvision --index-url https://download.pytorch.org/whl/rocm6.4

挂载WSL磁盘访问无权限

切换默认用户为root,方便了很多

ubuntu2404.exe config --default-user root
wsl --shutdown

WSL驱动不工作

ERROR:root:Driver not initialized (amdgpu not found in modules)

sudo modprobe amdgpu

Loading comments...