AI Pulse

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 B70RTX 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.2137 / 6.8未测试224k(q8/q4 KV)
Mesa 26.2324 / 19.4106 / 7.8224k(q8/q4 KV)
Mesa 26.2,f16 KV376 / 33146 / 23104k
llama.cpp SYCL,f16 KV908 / 49913 / 40144k
SYCL,q8_0 KV,MTP 41032 / 56.5756 / 52.7223k

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 结果和更多技巧。

阅读原文
📚 相关主题 本地大模型硬件评测llama.cpp

订阅 AI Pulse

每天 08:00 · 12:30 · 18:30 · 23:50 更新