如何炼丹成功,用6650xt A卡在Windows AMD ROCm PyTorch中实现debuff拉满?
摘要:前言 最近经常刷到 z-image 这个模型,感觉挺有意思的。 说来惭愧,我也有段时间没折腾 AI 画图了,工作室那几台服务器早就被大模型拉满了,再继续加任务多少有点不人道。 于是我把主意打到了自己的台式机上。 几年前买的 RX 6650
前言
最近经常刷到 z-image 这个模型,感觉挺有意思的。
说来惭愧,我也有段时间没折腾 AI 画图了,工作室那几台服务器早就被大模型拉满了,再继续加任务多少有点不人道。
于是我把主意打到了自己的台式机上。
几年前买的 RX 6650 XT,当时压根没考虑过拿来炼丹。但几年过去,AMD 的 ROCm 也算是一步步成熟起来了。
以前只能在 Linux 上折腾,而 今年 ROCm v7 开始支持 Windows,这事一下就有点可行性了。
唯一的问题是:PyTorch 还是只有 Linux 官方支持,Windows 上只能自己编译。
行吧,那就来折腾一把。
本文记录的是我在 Windows 11 + AMD 6650 XT + ROCm + PyTorch 这条路上的完整踩坑过程。
截至本文发布时,我还没折腾成功 😂
但我会把这当成一个持续更新的系列,一直写到折腾成功(或者彻底认输)为止。
虚拟环境
这一步属于 Python 基础操作了,简单过一下。
创建虚拟环境
mkdir d:/code/2/_temp
cd d:/code/2/_temp
python -m venv venv
以上命令会在 d:/code/2/_temp/venv 创建虚拟环境,python 版本和系统安装的一样。
当然,也可以使用 conda / mamba / uv 之类的方案。
我一开始是用 Stability Matrix 安装 ComfyUI,它自动帮我创建了虚拟环境,所以干脆就直接用了。
进入虚拟环境
保持在 d:/code/2/_temp 目录里,使用以下命令
venv/scripts/activate
然后一定要验证一下
pip --version
确保输出路径指向的是虚拟环境里的 pip,而不是系统全局的。
安装 ROCm
接下来是最关键的一步:安装 ROCm,可以理解为 AMD 显卡的 CUDA。
我的显卡是 AMD RX 6650 XT,对应的 code name 是 gfx1032。
确认显卡架构
可以在 ROCm 官方文档里查到显卡与架构的对应关系:
https://rocm.docs.amd.com/en/latest/reference/gpu-arch-specs.html
还有另一种方法:使用 GPU-Z 工具查看显卡的架构,比如我这张卡的架构是 Navi 23。
然后再去 Mesa 的源码里查对应的 code name: https://gitlab.freedesktop.org/mesa/mesa/-/blob/main/src/amd/common/amd_family.c 查看源码里对应的 code name
关于显卡支持情况
需要注意的是:AMD 官方的 ROCm v7 没有支持 6x00/6x50 系列显卡。
也就是说,像 6650 XT 这种卡,要么用第三方预构建版本,要么自己编译。
如果你的显卡不在官方支持列表里,可以访问这个页面查看对应的预构建包: https://d2awnip2yjpvqn.cloudfront.net/v2/
如果你刚好是官方支持的型号(比如 7000 系列),那事情就简单多了。直接用 AMD 官方的包,比如以下是 7x00 系列显卡的安装:
pip install --index-url https://rocm.nightlies.amd.com/v2/gfx110X-all/ "rocm[libraries,devel]"
而 6650 XT 对应的安装命令是:
python -m pip install --upgrade --index-url https://d2awnip2yjpvqn.cloudfront.net/v2/gfx103X-dgpu/ rocm rocm-sdk-core rocm-sdk-devel rocm-sdk-libraries-gfx103x-dgpu
装好后测试一下
rocm-sdk test
没问题的话会输出一大堆测试结果,最后面是:
$ rocm-sdk test
...
Ran 22 tests in 258.284s
OK
构建 PyTorch
ROCm 装好之后,接下来就只剩下一个问题了:PyTorch 没有 Windows + ROCm 的官方发行版,只能自己编译。
