如何炼丹成功,用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 的官方发行版,只能自己编译。
阅读全文