AMD Ryzen AI Max 395 上跑 Flux 图像生成:从零到一的完整踩坑指南
AMD Ryzen AI Max 395 上跑 Flux 图像生成:从零到一的完整踩坑指南
历时数天,踩遍 ROCm、bitsandbytes、triton 的坑,终于让 FLUX.1-dev 在 AMD 平台上成功生成第一张图。
写在前面
最近在 AMD Ryzen AI Max 395(RDNA 3.5 架构,gfx1151)上尝试部署 Flux 图像生成模型。本以为有 ROCm 加持会顺利很多,结果从环境配置到模型运行,一路踩坑不断。这篇文章记录了完整的折腾过程,希望能帮到同样在 AMD 平台上玩 AI 生成的朋友。
硬件环境
- CPU/GPU:AMD Ryzen AI Max 395(集成 Radeon 8060S 显卡,RDNA 3.5 架构)
- 显存:统一内存架构,容量充足(大显存优势)
- 系统:Ubuntu 24.04 (Noble)
第一阶段:ROCm 环境配置
1.1 安装 ROCm
AMD 官方推荐使用 amdgpu-install 工具来安装 ROCm,不要手动拼包名。
1 | # 下载 amdgpu-install(Ubuntu 24.04 版本) |
1.2 踩坑记录:apt 源问题
如果你的 apt update 报错,通常是第三方源(如 Chrome、Docker)的公钥问题。可以暂时禁用它们:
1 | sudo mv /etc/apt/sources.list.d/qqbrowser-browser.list /etc/apt/sources.list.d/qqbrowser-browser.list.bak |
找到 Chrome 源藏在 qqbrowser-browser.list 里,这个问题折腾了我好一会儿。
第二阶段:Python 环境与依赖管理
2.1 使用 uv 管理环境
uv 是一个极快的 Python 包管理器,比 pip 快很多。
1 | # 创建虚拟环境 |
2.2 踩坑记录:bitsandbytes 编译地狱
bitsandbytes 是 Flux 量化加速的关键库,但在 AMD 平台上安装是一场噩梦。
第一次尝试:直接 uv add bitsandbytes → 失败(不支持 AMD)
第二次尝试:从 AMD 官方 ROCm 分支安装
1 | uv add "bitsandbytes @ git+https://github.com/ROCm/bitsandbytes.git" |
安装成功,但运行时找不到 libbitsandbytes_rocm72.so。
第三次尝试:从源码编译
1 | git clone https://github.com/bitsandbytes-foundation/bitsandbytes.git |
然后遇到了 cmake: command not found → 安装 cmake:
1 | sudo apt install cmake build-essential |
接着遇到 setuptools>=77.0.0 与 packaging>=24.2 的兼容性问题:
1 | # 降级 setuptools 到兼容版本 |
然后是 pyproject.toml 格式问题:
license = "MIT"改为license = { text = "MIT" }- 删除
license-files字段
最终成功安装:
1 | uv pip install ./bitsandbytes --no-build-isolation --no-cache-dir |
教训:在 AMD 平台上编译 bitsandbytes,需要先安装所有构建依赖(cmake、scikit_build_core、packaging 等),然后用
--no-build-isolation绕过 uv 的构建隔离。
第三阶段:运行 Flux 模型
3.1 初始代码
1 | import torch |
3.2 踩坑记录:triton 相关错误
错误信息:
1 | AttributeError: module 'triton' has no attribute 'language' |
环境里安装了 triton-rocm 3.7.1,但与 PyTorch 版本不兼容。
解决方案:
1 | uv pip uninstall triton-rocm |
卸载后,PyTorch 自动回退到不使用 triton 的模式,同时出现警告但可以运行:
1 | W0815 16:51:47.836000 triton not found; flop counting will not work |
3.3 最终成果
模型成功加载,生成一张 512x512 的图像:
- 时间:28 步约 10 分 31 秒(CPU Offload 模式)
- 显存:充足,无需优化卸载
性能优化建议
如果你也是 AMD Max 395 大显存用户:
| 优化项 | 操作 | 预期效果 |
|---|---|---|
| 减少步数 | num_inference_steps=20 或更少 |
速度提升 30-40% |
| 启用 ROCm 调优 | export PYTORCH_TUNABLEOP_ENABLED=1 |
后续运行加快 |
| 移除 CPU Offload | 注释 enable_model_cpu_offload() |
速度提升数倍 |
| 换用 Schnell 模型 | black-forest-labs/FLUX.1-schnell,4 步即可 |
速度提升 5-10 倍 |
总结:AMD 平台跑 AI 的得与失
优势
- ROCm 生态日趋成熟,PyTorch 官方支持良好
- Ryzen AI Max 395 的统一内存架构,大显存优势明显
- 性价比高,无需高价购买 NVIDIA 显卡
挑战
- bitsandbytes 编译困难:需要手动编译,依赖众多
- triton 兼容性问题:AMD 版本的 triton 与 PyTorch 容易冲突
- 社区支持较少:遇到问题需要自己探索,参考文档有限
- 性能优化需要更多调优:无法直接套用 NVIDIA 的最佳实践
核心经验
- 使用
amdgpu-install安装 ROCm,不要手动拼包名 - bitsandbytes 用源码编译,别指望预编译包
- 卸载 triton-rocm,如果它导致 AttributeError
- 大显存环境下移除 CPU Offload,直接用
pipe.to("cuda") - 善用
--no-build-isolation绕过 uv 的构建隔离
附录:快速命令清单
1 | # 环境准备 |
希望这篇记录能帮到正在 AMD 平台上折腾 AI 生成的你。如果遇到其他问题,欢迎在评论区交流讨论!





