llama.cpp 有多后端,但后端不是随便选都一样的。同一个 Intel Arc 140T 核显、同一个 Gemma-4-E4B 模型,Vulkan / SYCL / OpenVINO / 原生 CPU 四个后端跑出来,预填充差距最大达到 20 倍。这篇用五组实测数据讲清楚:什么场景该用哪个后端。
基准:llama-bench pp512 / tg128,8 线程。模型 gemma-4-E4B-it-Q4_K_M(4.62GiB,7.52B MoE)。Arc 140T 核显,共享显存已调大。2026-09-01 实测。
完整成绩单(E4B)
| 后端 | 参数 | pp512 (t/s) | tg128 (t/s) |
|---|---|---|---|
| Vulkan(核显) | -ngl 99 | 380.80 ± 4.17 | 20.34 ± 0.25 |
| SYCL(核显) | -ngl 99 | 366.60 ± 2.54 | 16.43 ± 0.01 |
| OpenVINO GPU | -ngl 99 -fa 1 | 1666.84 ± 13.87 | 12.53 ± 0.09 |
| OpenVINO CPU | -ngl 99 | 116.21 ± 4.79 | 8.81 ± 0.06 |
| 原生 CPU | -ngl 0 | 84.37 ± 2.49 | 14.92 ± 0.03 |
柱状图更直观(生成速度):
逐后端解读
Vulkan:最均衡,默认首选
pp 380.8 / tg 20.3,两项都在第一梯队,没有明显短板。日常聊天、文档生成、Agent 交互,闭眼选 Vulkan。它是 llama.cpp 在核显上的默认主力,驱动成熟,坑最少。
SYCL:与 Vulkan 同门,略慢一档
pp 366.6 / tg 16.4,全面比 Vulkan 慢 ~10-20%。SYCL 的优势主要在支持更多硬件(NVIDIA/AMD/Intel 通吃),Intel 核显上没必要,但在 26B 部分 offload 时它反而是唯一能跑的(调显存前)。
OpenVINO GPU:预填充怪兽,生成拉胯
pp 1666.8 t/s,是 Vulkan 的 4.4 倍、原生 CPU 的 20 倍——Intel 自家的东西在自家核显上预填充就是不讲道理地快。但 tg 只有 12.5,比 CPU 还慢。适合重 prompt 轻生成的场景:长系统提示词的 Agent、RAG 检索、大批量文档分析。
原生 CPU vs OpenVINO CPU:CPU 版反杀
原生 CPU tg 14.9、pp 84.4;OpenVINO CPU tg 8.8、pp 116。反直觉的是生成速度原生 CPU 快 70%,只有预填充 OpenVINO 略快。纯 CPU 场景用原生版就好,OpenVINO CPU 没有优势。
选择矩阵
| 场景 | 推荐后端 | 理由 |
|---|---|---|
| 日常聊天 / 文档 / Agent 交互 | Vulkan | pp 380 / tg 20 均衡无短板 |
| 重 prompt(长系统提示词 / RAG) | OpenVINO GPU | pp 1667 一骑绝尘 |
| 无 GPU / 纯 CPU 机器 | 原生 CPU | tg 14.9 比 OpenVINO CPU 快 70% |
| 多厂商硬件兼容 | SYCL | NVIDIA/AMD/Intel 通吃 |
| 大模型显存不够时 | SYCL 部分 offload | 调显存前唯一能跑 26B 的后端 |
后端的差异本质是底层调度实现:Vulkan 对 MoE 有异步专家调度优化(生成快),OpenVINO 对 Intel 核显做了预填充深度优化。选对后端,同一块核显能白拿 4 倍预填充性能。
