适用人群:
- AMD 7840HS / 7940HS 等 Phoenix APU(780M iGPU)
- 飞牛 OS / 类 Debian NAS 系统
- 想在 不折腾 ROCm 的情况下,让 iGPU 参与 Ollama 推理
一、背景与结论先行
- ROCm 不支持 gfx1103(780M),即使强行 hack 也不稳定
- Vulkan + Mesa RADV 是目前唯一可维护方案
- Ollama 0.13.x 已支持 Vulkan backend(实验性,但可用)
最终效果:
- Ollama 明确使用
library=Vulkan
- 780M iGPU 参与推理
- 不回退 CPU
- 可长期后台运行(AppCenter)
二、系统与环境要求
- 飞牛 OS(基于 Debian 12 / Bookworm)
- Linux 内核 ≥ 6.x(自带 amdgpu 驱动)
- 确认 iGPU 已被识别:
应看到 Phoenix / amdgpu。
三、安装 Vulkan 运行环境(Mesa)
验证 Vulkan:
正确输出应包含:
(忽略 llvmpipe)
四、为 Vulkan 固定 RADV(避免 llvmpipe)
再次确认:
五、飞牛 AppCenter Ollama 的关键问题
飞牛 OS 的 Ollama AppCenter 版本结构为:
没有 start.sh / stop.sh,
AppCenter 是 直接 exec 二进制,不会加载系统环境变量。
👉 必须使用“二进制包装器(wrapper)”方案
六、创建 Ollama Vulkan 启动包装器(核心步骤)
1️⃣ 重命名原始二进制
2️⃣ 创建新的 ollama 启动脚本
写入以下内容:
保存退出。
3️⃣ 添加执行权限(非常重要)
七、启动并验证 Vulkan 是否生效
手动启动一次验证
必须看到以下关键日志:
这表示:
- Vulkan backend 初始化成功
- 使用的是 780M(gfx1103)
- 未回退 CPU
八、关于 GPU 利用率显示的说明(重要)
在 APU + RADV + Vulkan 场景下:
长期显示 0 是正常的。
原因:
- 该接口对 Vulkan com** 不可靠
- UMA 架构无法准确统计 GPU busy
- RADV 官方也不保证此数值
👉 不能用它判断 Vulkan 是否生效
九、如何确认不是 CPU fallback(推荐方法)
方法 1:看 Ollama 日志
是否明确显示:
方法 2:对比 CPU-only 运行
再用 Vulkan 跑一次对比。
Vulkan 特征:
- 首 token 较慢
- 输出更平稳
- CPU 占用低于纯 CPU(但不会很低)
十、模型选择建议(7840HS / 780M)
| 模型规模 |
建议 |
| 1.5B / 3B |
强烈推荐 |
| 7B Q4 |
勉强可用 |
| ≥7B Q8 |
不推荐 |
| ≥13B |
不现实 |
推荐模型示例:
十一、最终结论
- 这是目前 Phoenix APU 跑 Ollama 的最优可维护方案
- 不依赖 ROCm
- 不需要打内核补丁
- 不怕系统升级
- 适合 NAS / 7×24 后台运行
十二、回滚方法(如需恢复原状)