Arc Pro B70调优后,速度约5090一半,价格仅五分之一
购买背景与结论
上周我在 Amazon 的 ASRock 官方店以 1299 美元买到 Arc Pro B70 32GB。B65 也是 32GB 但更慢,只便宜 100 美元(1199 美元),所以我干脆加钱上了 B70。我当然也想要同显存的 RTX 5090 和它的速度,但 Newegg 上 5090 现在卖到 6500 美元以上,而且我个人很怕买二手硬件,所以想看看 32GB 的 Intel 卡能追到多近。开箱即用时它真的很难用,但做了几项调整后,我把它调到了大约 5090 一半的速度。按五分之一的价格(约 41 美元/GB 对 200 美元+/GB)来看,这笔交易很划算。而且它对我来说不只是跑 LLM,做渲染和模拟等创作负载也很好。
说明:我和 Intel/ASRock 没有任何关联。下表中的 5090 数据来自其他人的帖子(Hugging Face 讨论帖等),不是我的机器;我没有烧钱给 NVIDIA 的预算。
Qwen3.8-27B Q6,约 3k token 提示词,开启 MTP(多 token 预测,Multi-Token Prediction):
| 指标 | Arc Pro B70 | RTX 5090 |
|---|---|---|
| 价格 | 1299 美元 | 6550 美元+ |
| 提示词处理(prefill) | 约 960 tok/s | 约 2830 tok/s |
| 生成(decode) | 约 52 tok/s | 约 98 tok/s |
大致是 5 倍价格换 2 倍生成速度和 3 倍 prefill 速度。如果你真能按 1999 美元官方建议零售价(MSRP)买到 5090,那恭喜你,但那样这张便宜的 Intel 卡就不值了。
测试平台
- CPU:Threadripper 1950X(5 年前一家公司倒闭清库存时 100 美元买的)
- 内存:128GB DDR4(本周和 B70 一起新升级,DDR4 价格不到 DDR5 的一半)
- 主板:老 x399m Taichi,PCIe 3.0(所以用不上 GPU 的 PCIe 5 支持;模型进显存后影响不大,主要影响 MoE(Mixture of Experts,混合专家))
- 系统:Ubuntu 24.04 无头服务器版
截图展示统计信息(位于导航栏和聊天框之间),来自我的笔记本;Qwen 模型由我家庭办公室那台装有 Intel GPU 的机器上的 llama-server 提供服务。
开箱即用为什么很慢
原帖标题里的“after best setup”说明默认状态很差。如果你已经买了或准备买,按下面 5 步做,让它从难用变成可用。按顺序做,不要跳步,因为后面的 SYCL 和 MTP 依赖前面的内核、ReBAR 和运行时。
第一步:升级内核、开启 Resizable BAR,并安装 Intel 计算运行时
需要:
- 内核 6.17+(我用的是 Ubuntu 的 7.0 HWE 内核,HWE 即 Hardware Enablement,硬件支持扩展)
- 开启 Resizable BAR(可变基址寄存器,让 CPU 能访问全部显存;需要关闭 CSM)
- 从 ppa:kobuk-team/intel-graphics 安装 Intel 的计算运行时(compute runtime)
CSM 是 Compatibility Support Module(兼容支持模块)。这一步一开始非常折腾(也可能是我老主板的操作问题):BIOS 在插着一张使用 CSM 的显卡时甚至不允许关闭 CSM。我之前有一张约 14 美元的 GeForce 210“显卡”,它只能渲染终端;而且我得先把 BIOS 从 3.80 刷到 4.03,才能看到这些选项。为什么重要:SYCL 后端依赖 Intel 计算运行时,ReBAR 则让 CPU 能访问整块显存,避免可用显存被截断。
第二步:把 Mesa 升级到 26.x
添加 ppa:kisak/kisak-mesa,把 Mesa 升到 26.x。Ubuntu 24.04 自带的 Mesa 25.2 在这张卡上非常慢,慢到离谱。只升这一项,ollama 走 Vulkan 的生成速度就大约提升 3 倍。为什么重要:Mesa 是 Vulkan 的用户态驱动,版本太旧会直接拖垮 Arc 的 Vulkan 性能。
第三步:如果继续用 Vulkan,KV 缓存保持 f16
如果你继续用 Vulkan(ollama、LM Studio 等),把 KV 缓存保持在 f16。任何量化 KV(q8_0/q4_0)都会导致生成速度大幅下降:低上下文时约 1.75 倍惩罚,64k+ 上下文时 3 倍以上。也就是说,在 Vulkan 下压缩 KV 显存是用速度换显存,这很反直觉也很烦。为什么重要:量化 KV 在 Vulkan 路径上没有优化,省下的显存不够补偿损失的速度。
第四步:改用 SYCL 构建 llama.cpp,并运行 llama-server
所以更合适的方法是:用 SYCL(Intel oneAPI 的异构计算编程模型)构建 llama.cpp,然后运行 llama-server。ollama 没有 SYCL 后端,但 llama-server 提供 OpenAI 兼容 API。为什么重要:SYCL 路径能绕开 Vulkan 的量化 KV 减速,还能正确看到整块 32GB 显存。
第五步:在 SYCL 下用 q8_0 KV,并开启 MTP
在 SYCL 下可以使用 q8_0 KV,不再有 Vulkan 那种量化 KV 减速,而且能塞进更多上下文。同时用以下参数开启 MTP:
--spec-type draft-mtp --spec-draft-n-max 4
另外要注意:llama-server 走 Vulkan 时默认不会看到/访问完整的 32GB 显存(我看到约 29GB),而 SYCL 会。后来我搞清楚,Vulkan 下只是自动适配(auto-fit)的限制;你也可以用 --fit off 并配合 -c 指定上下文,让它用满 32GB。为什么重要:q8_0 在 SYCL 下不会触发 Vulkan 的减速,MTP 则能进一步提高生成吞吐。
调优一天的提升过程
下表是 Qwen3.8-27B Q6 在一天调试中的提示词/生成 tok/s 变化:
| 步骤 | 16k 上下文 | 64k 上下文 | 卡上最大上下文 |
|---|---|---|---|
| 基础 ollama,Mesa 25.2 | 137 / 6.8 | 未测试 | 224k(q8/q4 KV) |
| Mesa 26.2 | 324 / 19.4 | 106 / 7.8 | 224k(q8/q4 KV) |
| Mesa 26.2,f16 KV | 376 / 33 | 146 / 23 | 104k |
| llama.cpp SYCL,f16 KV | 908 / 49 | 913 / 40 | 144k |
| SYCL,q8_0 KV,MTP 4 | 1032 / 56.5 | 756 / 52.7 | 223k |
Vulkan 最糟糕的部分是长上下文的首 token 时间。一个 215k token 的提示词,在 ollama/Vulkan 上首 token 要 1.9 小时(没错),在 SYCL 上只要 8.6 分钟。SYCL 下 Qwen3.6-35B-A3B 也能完全放进卡里,262k 上下文,16k 时达到 1748 / 74 tok/s,当然上下文变长后会变慢。
结论:谁该买
从原始性能、速度和软件栈质量来看,NVIDIA 仍然是王者。所以我现在唯一认为它输的地方是速度价格比(按实际市场价和涨价后的价格)。如果你需要绝对最快的推理,买 5090;如果你想要 32GB 显存、能接受约一半生成速度和三分之一 prefill 速度、预算只有五分之一,Arc Pro B70 是很有吸引力的选择。
完整表格、质量分数(Q6 vs Q4_K_XL vs 几个 MoE)和构建命令,原帖放在评论中;也欢迎分享你的非 NVIDIA GPU 结果和更多技巧。