Qwen3.5-2B 在 MacBook Neo 上跑 33 tok/s——同样是 8GB,为什么比手机快 2.5 倍?
一、缘起
之前我在手机上折腾了三篇文章来跑 Qwen3.5-2B:K30 Pro 上 CPU 优化到 13 t/s,vivo X100 Pro 上 GPU 跑到 17 t/s。
现在换到 MacBook Neo 上,我很好奇——同样的模型文件,同样的 8GB 内存,MacBook 能跑多快?跟手机的差距到底有多大?
上次我在MacBook Neo上测试了Qwen2.5-0.5B-Instruct Q2_K 在Ollama和llama.cpp上的区别,这次同样在Neo上下好 Qwen3.5-2B-Q4_K_M(1.3GB,跟手机上是同一个模型),开始跑分。
二、跑分
2.1 Ollama vs llama.cpp
| 项目 | llama-bench (Metal GPU) | Ollama (API) |
|---|---|---|
| Prompt 处理速度 | 416 tok/s | 480 tok/s |
| 文本生成速度 | 30 tok/s | 33 tok/s |
| 生成 512 tokens 耗时 | ~17s | ~15.5s |
| 模型加载耗时 | 每次重载 | 仅首次 0.14s |
| GPU 常驻 | ❌ 每次退出释放 | ✅ 后台常驻 |
llama-bench 数据是标准化跑分(pp128 + tg256),Ollama 数据是 API 实测(41 token prompt + 512 token 生成)。两者条件不完全一致,但大致能反映真实水平。
Ollama 比 llama.cpp 快了约 10%,差距不大。两者在 Metal GPU 后端上都已经很成熟。
2.2 跟手机对比
同样 Qwen3.5-2B,同样 8GB RAM:
| 设备 | SoC | 加速方式 | 文本生成 |
|---|---|---|---|
| K30 Pro (LineageOS) | 骁龙 865 | CPU dotprod | 13 t/s |
| K30 Pro (MIUI) | 骁龙 865 | CPU dotprod | 12 t/s |
| MacBook Neo 🏆 | A18 Pro | Metal GPU | 33 t/s |
MacBook Neo 是 K30 Pro 的 2.5 倍。 同样 8GB 内存,为什么差距这么大?下一节细说。
三、为什么 MacBook 比手机快 2.5 倍?
3.1 最核心的差距:内存带宽
LLM 推理时,每生成一个 token 都要把全部模型参数从内存搬运到计算单元。搬运速度就是内存带宽,它直接决定了推理速度的上限。
| 设备 | 内存类型 | 理论带宽 |
|---|---|---|
| 手机 (骁龙 865) | LPDDR5 | ~44 GB/s |
| MacBook (A18 Pro) | LPDDR5X | ~60 GB/s |
MacBook 的带宽比手机高了约 1.4 倍。更关键的是,手机受限于功耗和散热,实际跑推理时很难达到理论峰值。这是物理层的差距,软件无法弥补。
3.2 GPU vs CPU
K30 Pro 的 Adreno 650 在手机上根本跑不了 GPU 推理(驱动问题),只能靠 CPU dotprod 硬扛。而 MacBook 的 A18 Pro 有完整的 Metal GPU 加速。
CPU 和 GPU 的效率差异有多大?可以这样理解:
村口要搬一吨水泥。CPU 是一个人一袋一袋扛,每趟还要走进走出仓库(缓存层级),忙活半天。GPU 是一辆卡车,后斗装满了一次拉完。
对于 2B 模型这种「数据量大、计算重复」的场景,GPU 的效率远高于 CPU。
3.3 散热——隐形差距
K30 Pro 被动散热,跑模型 2-3 分钟后机身明显发热,系统会降频保护,大核从 2.84GHz 降到 1.8GHz,速度腰斩。
MacBook Neo 虽然也是无风扇设计,但笔记本的散热面积是手机的 5-6 倍,热容量大得多,短时间推理不会像手机那样迅速降频。
3.4 简而言之
手机 (K30 Pro) → 带宽窄 + CPU 硬扛 + 降频风险 = 13 t/s
MacBook Neo → 带宽宽 + GPU 加速 + 散热好 = 33 t/s
三个因素叠加在一起,2.5 倍的差距就完全合理了。手机输的不是「不够强」,而是物理层面就不在一个赛道。MacBook 有更高的带宽、更强的散热、更成熟的 GPU 栈,这些不是软件优化能追上的。
四、那手机跑模型还有价值吗?
有,但要摆正预期。
12-13 t/s 的速度,日常聊天完全够用。如果你有一台闲置旧手机,插电挂在那当本地 AI 助手,不占地方、不费电、不依赖云服务,体验很不错。
但如果你需要快速响应、长文本生成、或者跑更大的模型,桌面设备(哪怕是 MacBook Neo 这种入门级)在物理层面有天然优势。这不是手机不够努力,而是两者的设计目标本来就不同。
手机的优势在于:便携 + 零成本再利用。 一台吃灰的旧手机 + Termux + llama.cpp,就是你零成本的本地 AI 服务器。
五、后记
这次测试给我最大的感受是:
-
MacBook 比手机快 2.5 倍,根子在物理层。 内存带宽、GPU 加速、散热,每一个都是设计之初就决定的差异。软件优化只能锦上添花,不能改变物理上限。
-
Ollama 确实比 llama.cpp 快,但差距不大。 同一 Metal GPU 后端下,2B 模型差距约 10%,但是模型越小,差距越大。选哪个更多取决于你「想直接用」还是「想调参数」。
-
手机跑模型的正确姿势是「废物利用」。 别指望它比电脑快,但当个免费的、不占地方的本地 AI 服务器,这本身就是很好的价值。
最后附上本次测试的环境:
设备: MacBook Neo (A18 Pro, 8GB)
系统: macOS 26.5
模型: Qwen3.5-2B-Q4_K_M (1.3 GB)
Ollama: v0.31.1 + Metal + Flash Attention + q8_0 KV Cache
llama.cpp: master branch (自编译) + Metal GPU
如果你也在本地跑大模型,建议用你实际要用的模型去测——结果可能和你想象的不同。