少女祈祷中...

前言

  • 最近要进行模型的训练,恰好有一张 AMD RX6750GRE 10G 的卡,打算用这张卡来跑一下。

在Windows上的实验

  • 先说结论,在 Windows 上虽然有 DirectMLWSL 这种方案,但基本上是不能用的,至少在我这张卡上正常配置后是不能用的。

DirectML

  • 先说 DirectML,这玩意的想法很不错,而且程序也成功识别到了这张卡,但也仅仅是识别到了,真开始训练就会报出各种错误。比如无法计算 tensor count 之类的。即使使用 .to(device) 也会报。

  • 推理的话。尽管 ai 觉得推理可以跑,但实测下来也是基本不行,报错和上面一样。

WSL

  • 主讲WSL2,因为很多文章都说这样可以支持,而且官方也有教程。但实测下来,也是不支持的。使用rocminfo直接搜不到卡。

  • 当然主要是我这张卡,也许其他的卡能用这个方法。但显然,我的这张卡不包括在内。

题外话

  • 微软这个WSL2在我电脑经常会出现长时间无响应的状态,具体的解决方法有两个,一个是重启一个是关掉对应的进程树,参考这篇文章 CSDN_windows子系统-wsl命令基础用法和无响应问题排查及解决方法

    1
    2
    // 得到LxssManager的PID
    tasklist /svc /fi "imagename eq svchost.exe"
  • 直接去任务管理器那关掉这个PID对应的那个进程树就行了。

  • 还有就是最好不要像在正常 Linux 系统那样随意更新内核,可能会出现一些奇奇怪怪的问题。(虽然本来也不应该随意更新内核)

  • 如果只是拿来跑包暴力破解一些东西的话,装上 AMD HIP 就可以用了。

在Linux上的实验

  • 这个就比较顺风顺水了。按照官网教程直接安装显卡驱动,ROCm 和 AMD 专用的 torch,基本没出什么太大的问题。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    wget https://repo.radeon.com/amdgpu-install/6.4.3/ubuntu/noble/amdgpu-install_6.4.60403-1_all.deb
    sudo apt install ./amdgpu-install_6.4.60403-1_all.deb
    sudo apt update
    sudo apt install python3-setuptools python3-wheel
    sudo usermod -a -G render,video $LOGNAME
    sudo apt install rocm

    // 安装torch
    pip install --no-cache-dir --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/rocm6.4/
  • 修改用户组后需要重启才能生效。不然 torch 作为普通用户是访问不到显卡的。

  • torch 的安装上需要注意的是,AMD 的包在 4G 多的大小,安装的时候需要加上--no-cache-dir 才能安装,不然就会显示内存超出。

  • 在实际使用中,因为没有针对 gtx1032 的计算库,跑的时候会报错找不到这个文件。可以选择将就用 1030 的,不然就需要自己编译。将就用 1030 的话可以选择设置下环境变量再跑。

    1
    export HSA_OVERRIDE_GFX_VERSION=10.3.0
  • 虽然使用1030的计算库会导致第一次训练的时间增加(因为好像会自己编译对应的计算库),但也没啥事,慢一点点而已,后面还是正常训练的。

小插曲

  • 本来一开始我是用的 Ubuntu 2404 的镜像( gnome 那个版本)安装的(现在是24.04.3)。但是在安装的时候就会经常出现报错,报内部错误啥的。毕竟 Ubuntu 是内部错误”大师”,我也没多在意,然后安装就卡住无法进行了。甚至重新打开安装程序也会卡住。

  • 我本以为是镜像写入的时候出现了啥问题,重新写入了一遍,然后就无法启动内核了。reddit 论坛那边的说新的安装程序有问题。

  • 退回 2204 之后确实好多了,直接一步到位,顺风顺水的。

参考文章