ROCm GPU discovery times out on AMD Radeon AI PRO R9700 (gfx1201) – CPU fallback only

在 Ollama 0.13.0 配合 AMD Radeon AI PRO R9700(gfx1201)使用 ROCm 后端时,GPU 发现过程卡住并超时,导致回退到 CPU。优先确认 ROCm 版本是否支持 gfx1201(建议 ≥6.4.1),并开启详细日志定位卡死点。

快速结论:在 Ollama 0.13.0 配合 AMD Radeon AI PRO R9700(gfx1201)使用 ROCm 后端时,GPU 发现过程卡住并超时,导致回退到 CPU。优先确认 ROCm 版本是否支持 gfx1201(建议 ≥6.4.1),并开启详细日志定位卡死点。

适用环境:Linux Mint(Ubuntu‑based)、Kernel 6.14/6.17;AMD Radeon AI PRO R9700(gfx1201);ROCm 6.3.3(Docker 镜像)或 7.1(本地安装);Ollama 0.13.0(原生及 Docker rocm 镜像均复现)。

最快修复方案:暂无确认的一步修复方案。Issue 讨论中未验证任何能完全解决此超时问题的变更,推荐优先尝试更新 ROCm 到 6.4.1+(官方宣布支持 gfx12xx)并配合调试环境变量排查。

注意事项:即使 ROCm 版本满足要求,仍有卡死可能(如用户本地已使用 ROCm 7.1 仍失败)。所有方案仅为尝试性,不保证修复。Docker 镜像内 ROCm 版本为 6.3.3,可能缺少对 gfx12xx 的支持。

问题场景

用户使用 Ollama 启动 ollama serve(原生安装或官方 ollama/ollama:rocm Docker 镜像),ROCm 后端(libggml‑hip)尝试初始化 AMD Radeon AI PRO R9700(gfx1201)GPU,但 GPU 发现阶段阻塞约 30 秒后超时,最终回退到纯 CPU 推理。Ollama 检测到 GPU 描述和架构,但发现阶段无法完成。

报错原文

failure during GPU discovery error="failed to finish discovery before timeout"
filtering device which didn't fully initialize id=GPU-b718cad49010a54e
total vram = 0 B
devices=[]

核心错误:ROCm GPU discovery times out on AMD Radeon AI PRO R9700 (gfx1201) – CPU fallback only

原因分析

可能原因是 Ollama 的 ROCm 后端(libggml‑hip)在初始化 gfx1201 GPU 时,内部某个 HSA 或驱动调用卡住(死锁、旋转等待、驱动未响应),导致超过 Ollama 预设的 ~30 秒超时。报错日志显示 GPU 描述和内存信息已读取,但后续阶段(如代码对象加载或上下文创建)未返回。此外,Docker 镜像绑定的 ROCm 6.3.3 可能不包含对 gfx1201(AMD Radeon AI PRO R9700)的完整支持,官方支持于 ROCm 6.4.1 引入。但即使用户在本地安装 ROCm 7.1,问题依然存在,说明 gfx12xx 架构在 Ollama 当前后端实现中可能存在兼容性缺陷。另一推测是 libggml‑hip 针对 gfx12xx 的代码路径尚未充分测试,导致初始化阻塞。

环境排查

celebrityanime
celebrityanime
文章: 15216

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注