Tabby 在 ROCm 下提示 AMD 设备不受支持怎么解决?
【免费下载链接】tabbySelf-hosted AI coding assistant项目地址: https://gitcode.com/GitHub_Trending/tab/tabby
在 Linux 上用--device rocm启动 Tabby 后,如果你的 AMD 显卡不在 ROCm 的官方支持列表里,启动会因设备不受支持而失败。官方 FAQ 给出的解决办法是设置HSA_OVERRIDE_GFX_VERSION环境变量,让它指向一个 ROCm 支持的相近显卡的 GFX 版本,之后 Tabby 服务即可正常启动并提供代码补全。本文基于 FAQ 与 本地 ROCm 运行文档 给出完整的设置与验证步骤。
前提条件
- Tabby 的 ROCm 支持目前只在 Linux 上可用。按 ROCm 运行文档 的说法,ROCm 支持当时仅存在于 nightly 构建,预计在 0.9 版本转为稳定。
- 系统已在支持的平台上安装好 ROCm(按 AMD 官方安装说明操作,文档中以 Arch Linux 成功安装 ROCm 包为例)。
设置 HSA_OVERRIDE_GFX_VERSION
FAQ 的原文建议:如果存在一块 ROCm 支持的相近 GPU,可以把HSA_OVERRIDE_GFX_VERSION设为对应值。文档给出的示例值:
- RDNA2 架构:
10.3.0 - RDNA3 架构:
11.0.0
方式一:直接运行编译好的 Tabby 二进制
如果你按文档自己编译(需加--features rocm参数)或直接使用 ROCm 版本的二进制,在启动命令前设置该环境变量即可。以下示例沿用文档中的模型与参数,10.3.0需按你的显卡架构替换为文档给出的对应值:
# RDNA2 示例;RDNA3 请改为 11.0.0 HSA_OVERRIDE_GFX_VERSION=10.3.0 ./tabby serve --model TabbyML/StarCoder-1B --device rocm方式二:使用 Docker 部署
文档给出的 ROCm Docker 启动命令使用 GPU 直通参数--device=/dev/kfd --device=/dev/dri。设置环境变量时,参照 FAQ 中docker run -e 变量名=值的写法,在命令中增加一行-e HSA_OVERRIDE_GFX_VERSION=...:
docker run \ --device=/dev/kfd --device=/dev/dri --security-opt seccomp=unconfined --group-add video \ -p 8080:8080 -v $HOME/.tabby:/data \ -e HSA_OVERRIDE_GFX_VERSION=10.3.0 \ tabbyml/tabby-rocm \ serve --device rocm --model StarCoder-1B其中$HOME是 shell 中指向当前用户主目录的变量,-v $HOME/.tabby:/data用于持久化 Tabby 数据,均保持文档原样。
验证服务是否正常
设置生效的判断方式是 Tabby 服务能正常启动并响应补全请求。按 扩展故障排查文档 的步骤检查:
- 服务启动后日志应出现类似
Listening at 0.0.0.0:8080的消息; - 浏览器打开
http://localhost:8080/swagger-ui/,应显示 Swagger UI 页面。文档给出的本地直接运行成功时的输出示例如下(文档示例,实际输出会因版本和模型不同而有差异):
- 在 Swagger UI 中展开
/v1/completions,点击Try it out再点Execute;或者用curl发送补全请求:
curl -X 'POST' \ 'http://localhost:8080/v1/completions' \ -H 'accept: application/json' \ -H 'Content-Type: application/json' \ -d '{ "language": "python", "segments": { "prefix": "def fib(n):\n ", "suffix": "\n return fib(n - 1) + fib(n - 2)" } }'收到补全响应即说明 Tabby 服务运行正常。Linux 安装文档同时说明,启动成功后还可以访问http://localhost:8080打开 Tabby 实例页面。
限制与替代路径
- FAQ 指出 ROCm 下的实际 VRAM 上限目前大多未经测试,但 CodeLlama-7B 在 AMD Radeon RX 7900 XTX 上大约占用 8GB VRAM(依据 ROCm 监控工具)。选型时可参考此数据。
- Tabby 单实例只使用一块 GPU;如需多卡,按 FAQ 的说法启动多个 Tabby 实例并分别设置
HIP_VISIBLE_DEVICES(rocm)或CUDA_VISIBLE_DEVICES(cuda)。 - 如果显卡连相近的 ROCm 支持版本都找不到、仍然无法用 ROCm 运行,可选分支是改用 Vulkan:按 Vulkan 支持文档 下载 Vulkan 预编译二进制并安装 Vulkan 库(Linux 下如 Arch 的
vulkan-icd-loader、AMD 的vulkan-radeon,Debian 的libvulkan1),然后:
./tabby_x86_64-manylinux2014-vulkan serve --model StarCoder-1B --device vulkan启动时若看到 Vulkan 已找到显卡的输出,即表示 GPU 加速可用。
按上述顺序操作后,设备不受支持的报错应消除、服务进入监听状态并返回补全结果;若 Swagger 页面打不开或补全请求无响应,再按 故障排查文档 检查服务端日志中的报错。
【免费下载链接】tabbySelf-hosted AI coding assistant项目地址: https://gitcode.com/GitHub_Trending/tab/tabby
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考