Voicebox AMD ROCm配置实战:HSA_OVERRIDE_GFX_VERSION与ROCm Docker完整指南
【免费下载链接】voiceboxThe open-source AI voice studio. Clone, dictate, create.项目地址: https://gitcode.com/GitHub_Trending/voicebox1/voicebox
Voicebox是一个开源的本地 AI 语音工作室(AI Voice Studio),支持声音克隆、语音生成与全局听写,全部在本地机器运行。在 Linux + AMD 显卡环境下跑 Voicebox 时,最容易卡住的就是AMD ROCm 配置:核心是HSA_OVERRIDE_GFX_VERSION这个环境变量,以及官方的ROCm Docker部署方案。本文带你从原理到实战,一次性配好 Voicebox 的 AMD GPU 加速。
为什么 AMD ROCm 需要 HSA_OVERRIDE_GFX_VERSION?
ROCm(AMD 的 GPU 计算平台)运行时靠"图形架构代号"(GFX 版本号,如gfx1030)来匹配 GPU 内核。很多消费级显卡(尤其是 RX 6000 系列)并不被 ROCm 官方原生支持,就需要用HSA_OVERRIDE_GFX_VERSION告诉运行时"把我的 GPU 当成某个受支持的架构"。
好消息是:Voicebox 会自动处理这一步。后端启动时会执行rocminfo检测你的显卡架构:
- 检测到RDNA 2 及更老的卡(gfx 编号 < 1100)→ 自动设置
HSA_OVERRIDE_GFX_VERSION=10.3.0 - 检测到RDNA 3 / RDNA 4(RX 7000 / RX 9000 系列)→ 原生支持,跳过覆盖,避免次优性能
相关逻辑见 backend/app.py。另外它还会清理一个坑:空字符串的HSA_OVERRIDE_GFX_VERSION会污染 HSA 运行时导致 GPU 完全检测不到,所以 Docker Compose 里即使声明了空值,后端也会自动清除。
GFX 版本号速查表:你的显卡该填什么值
| GPU 系列 | 架构 | HSA_OVERRIDE_GFX_VERSION |
|---|---|---|
| RX 5000 系列(RDNA1) | gfx1010 | 10.1.0 |
| RX 6000 系列(RDNA2) | gfx1030 | 10.3.0 |
| RX 7000 系列 / Strix Halo(RDNA3) | gfx1100 | 原生支持,一般无需覆盖(可填11.0.0) |
| RX 9000 系列(RDNA4) | gfx1200 | 原生支持,需 ROCm 7.2,一般无需覆盖 |
| Vega / GCN5 | gfx900 | 9.0.0 |
💡 经验法则:越老的卡越需要覆盖值。RX 7000 / RX 9000 新卡强行设置覆盖值反而可能报错或变慢。
如果自动检测失败,手动设置后再启动即可(详见 docs/content/docs/overview/gpu-acceleration.mdx):
export HSA_OVERRIDE_GFX_VERSION=10.3.0 voicebox一键部署:ROCm Docker 覆盖配置
不想在宿主机装 ROCm 的依赖环境?其实驱动需要装在宿主机上,但所有 ROCm 运行时库都封装在 Docker 镜像里。仓库自带了官方 ROCm 部署方案:
- 基础编排文件:docker-compose.yml(CPU 版,端口
127.0.0.1:17600) - ROCm 覆盖层:docker-compose.rocm.yml
启动命令只需一行(先git clone https://gitcode.com/GitHub_Trending/voicebox1/voicebox进入项目目录):
docker compose -f docker-compose.yml -f docker-compose.rocm.yml up --build这个覆盖层做了几件关键的事:
- 构建 ROCm 版镜像:传入
PYTORCH_VARIANT=rocm,Dockerfile 会把 PyTorch 从官方 ROCm 源(默认ROCM_VERSION=6.3,覆盖 RDNA1-3)装进来,而不是默认的 CUDA 版。 - GPU 设备透传:挂载
/dev/kfd和/dev/dri两个设备节点,容器内才能看到 AMD 显卡。 - 注入
HSA_OVERRIDE_GFX_VERSION:默认留空(走后端自动检测),你可以在启动前export覆盖。 - MIOpen 优化:重定向内核缓存目录(避免
miopenStatusUnknownError)、开启MIOPEN_FIND_MODE=FAST快速内核选择,避免 RDNA4 上逐次生成时的卡顿。
RX 9000 系列(RDNA4)用户记得加上 ROCm 7.2:
ROCM_VERSION=7.2 docker compose -f docker-compose.yml -f docker-compose.rocm.yml up --build验证 ROCm GPU 加速是否生效
三个地方确认:
- 界面:打开 Settings → GPU,应显示 PyTorch ROCm 后端 + 你的显卡型号(而不是 CPU)。
- 启动日志:查看 Settings → Logs 的 Server logs 页签,应出现
Backend: PYTORCH、GPU: HIP (...),以及类似setting HSA_OVERRIDE_GFX_VERSION=10.3.0 for compatibility的自动配置提示。 - 健康接口:访问
http://127.0.0.1:17493/health(容器模式为17600),JSON 里的backend_variant应为rocm。
生成一段语音试试:如果不再是 CPU 的龟速,说明加速已生效 🎉
常见问题排查
| 症状 | 原因与解决 |
|---|---|
| GPU 显示为 CPU | 容器内没看到/dev/kfd;确认用了 ROCm 覆盖层且宿主机装了 ROCm 驱动 |
miopenStatusUnknownError | MIOpen 缓存目录不可写;ROCm 覆盖层已通过MIOPEN_USER_DB_PATH解决,自建容器需照抄 |
检测到gfx1201(RX 9070)却识别不到 GPU | 使用了过低的 ROCM_VERSION;升到ROCM_VERSION=7.2且不要设置HSA_OVERRIDE_GFX_VERSION |
| 生成时系统卡顿 | MIOpen 穷举模式在尝试分配失败的工作区;设置MIOPEN_FIND_MODE=FAST |
| 显存不足 | 换小模型(如 Qwen3 0.6B / Kokoro 82M),或在 Settings → Models 卸载闲置模型释放显存 |
小结
- RX 6000 及更老的卡:核心就是
HSA_OVERRIDE_GFX_VERSION(RDNA2 填10.3.0),Voicebox 后端会自动检测并代劳。 - RX 7000 / RX 9000:ROCm 原生支持,不要强行覆盖;RDNA4 记得
ROCM_VERSION=7.2。 - 最省心的方式是官方ROCm Docker 覆盖层,一条
docker compose命令搞定设备透传、PyTorch ROCm 构建与 MIOpen 调优。
配好之后,Voicebox 的 7 个 TTS 引擎、Whisper 语音转写就能在 AMD 显卡上满速运行,声音克隆与语音生成的速度会快一个数量级。
【免费下载链接】voiceboxThe open-source AI voice studio. Clone, dictate, create.项目地址: https://gitcode.com/GitHub_Trending/voicebox1/voicebox
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考