因为电脑是A卡,所以想着能不能用ROCm来利用GPU,结果是WSL没法穿透到非pro显卡

WSL安装

WSL是先决条件,启动终端管理员

1
wsl --install -d Ubuntu-22.04

路径说明(默认安装在C盘)

1
2
3
4
5
6
7
8
9
10
C:\Users\<User>\AppData\Local\Packages\
└── CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc\
├── LocalCache\
├── LocalState\
│ ├── ext4.vhdx ← 这是 Linux 的虚拟磁盘
│ ├── rootfs\
│ └── temp\
├── Settings\
├── SystemAppData\
└── AppData\

可能会出现报错:

1
2
3
wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理。
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

在 windows 的C:\User\<你的用户名>\ 下创建一个.wslconfig,内部写入如下内容

1
2
3
4
5
6
7
[experimental]
autoMemoryReclaim=gradual
networkingMode=mirrored
dnsTunneling=true
firewall=true
autoProxy=true
wsl --shutdown

再次启动 wsl,不再弹出上述提示

AMD HIP SDK

运行 PowerShell 管理员

1
Get-ComputerInfo | Format-Table CsSystemType,OSName,OSDisplayVersion

查看自己的电脑系统版本

下载SDK:AMD HIP SDK for Windows

默认已都勾选Full,下滑到显示驱动程序,勾选 Install,安装类型 full install,安装完成后要重启一次

驱动安装

安装AMD统一驱动程序包存储库和安装程序脚本

参考官方安装教程

重启后重新打开WSL

根据不同ubuntu版本进行下载,这里用的是22.04的

1
2
3
sudo apt update
wget https://repo.radeon.com/amdgpu-install/6.4.2.1/ubuntu/jammy/amdgpu-install_6.4.60402-1_all.deb
sudo apt install ./amdgpu-install_6.4.60402-1_all.deb

运行以下命令以安装开源图形和 ROCm

1
amdgpu-install -y --usecase=wsl,rocm --no-dkms

安装后验证检查,检查 GPU 是否列为代理

1
rocminfo

预期输出

1
2
3
4
5
6
7
8
9
[...]
*******
Agent 2
*******
Name: gfx1101
Marketing Name: AMD Radeon RX 7700 XT
Vendor Name: AMD
[...]
[...]

torch安装

AMD 建议在使用 ROCm 进行机器学习开发时使用 PIP 安装方法创建 PyTorch 环境

需要下载python3.12(不过默认已经下的就是3.12)

输入命令行:

1
sudo apt install python3-pip -y

更新pip wheel

1
pip3 install --upgrade pip wheel

选择适用的 Ubuntu 版本并输入命令以安装 Torch 和 Torchvision 以支持 ROCm AMD GPU

同样22.04版本

1
2
3
4
5
6
wget https://repo.radeon.com/rocm/manylinux/rocm-rel-6.4.2/torch-2.6.0%2Brocm6.4.2.git76481f7c-cp310-cp310-linux_x86_64.whl
wget https://repo.radeon.com/rocm/manylinux/rocm-rel-6.4.2/torchvision-0.21.0%2Brocm6.4.2.git4040d51f-cp310-cp310-linux_x86_64.whl
wget https://repo.radeon.com/rocm/manylinux/rocm-rel-6.4.2/pytorch_triton_rocm-3.2.0%2Brocm6.4.2.git7e948ebf-cp310-cp310-linux_x86_64.whl
wget https://repo.radeon.com/rocm/manylinux/rocm-rel-6.4.2/torchaudio-2.6.0%2Brocm6.4.2.gitd8831425-cp310-cp310-linux_x86_64.whl
pip3 uninstall torch torchvision pytorch-triton-rocm
pip3 install torch-2.6.0+rocm6.4.2.git76481f7c-cp310-cp310-linux_x86_64.whl torchvision-0.21.0+rocm6.4.2.git4040d51f-cp310-cp310-linux_x86_64.whl torchaudio-2.6.0+rocm6.4.2.gitd8831425-cp310-cp310-linux_x86_64.whl pytorch_triton_rocm-3.2.0+rocm6.4.2.git7e948ebf-cp310-cp310-linux_x86_64.whl

需要时间比较久(不知道为啥网速上不去)

验证 PyTorch 安装

  • 验证是否安装了 Pytorch 并检测到 GPU 计算设备

    1
    python3 -c 'import torch' 2> /dev/null && echo 'Success' || echo 'Failure'

    预期输出

    1
    Success
  • 输入命令以测试 GPU 是否可用

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

    预期输出

    1
    True

    但是到这里非常抽象,我的7700xt不能被识别,直接炸了

事已至此,先用cpu跑吧

在anaconda的虚拟环境中下载torch

1
pip3 install torch torchvision

验证安装

1
2
3
import torch
print(torch.__version__) #输出torch版本
# 2.4.1+cpu

集成vscode

如果显卡能够穿透WSL,因为Linux的图形化并不是很好,如果想要在windows上工作可以利用vscode,在vscode的拓展程序里面搜索WSL,并安装

安装后点击vscode的左下角的绿色标志,然后选择“connect to wsl”,等待一会及连接上了

选择打开文件夹,就可以操作子系统的文件了

这样非常方便,可以在windows系统上操作linux系统的文件

新建Terminal,可以使用命令行工具执行快捷命令