手机跑 12-17 t/s,MacBook 跑 33 t/s,台式机能跑多少?我找了一台 6 年前的旧电脑,上面有一块 GTX 1650,结果让我重新思考「硬件决定论」。
一、同一模型,四台设备
这个系列的上一篇文章《同样是8GB,MacBook比手机快2.5倍——Qwen3.5-2B跨设备跑分对比》,我在 MacBook Neo 上测了 Qwen3.5-2B-Q4_K_M(1.3GB),33 t/s,是手机 K30 Pro 的 2.5 倍。
当时我写下结论:MacBook 的内存带宽、GPU 加速、散热条件,每一个都在物理层面碾压手机。软件优化只能锦上添花,不能改变物理上限。
这个结论没错。但我也很好奇——如果换到一台有独立显卡的台式机上呢?同样 8GB 左右的预算级硬件,能跑到什么水平?
于是我把同一个模型文件扔到了这台台式机上:
| 硬件 | 型号 |
|---|---|
| CPU | Intel i5-9400F @ 2.9GHz(6C6T,无超线程) |
| GPU | NVIDIA GeForce GTX 1650(4GB GDDR5,896 CUDA 核心) |
| RAM | 16 GB DDR4 |
| 系统 | Ubuntu 22.04 LTS |
| 模型 | Qwen3.5-2B-Q4_K_M (1.3 GB) |
"等等,你文章标题不是说『8GB 不是全部』吗?你这台机器有 16GB RAM 啊?"
没错,但关键点不在总内存——GTX 1650 的显存只有 4GB,而 Qwen3.5-2B-Q4_K_M 模型文件是 1.3GB,KV Cache 还要占几百 MB 到 1GB+。4GB 显存刚好够用但捉襟见肘,这才是真正的瓶颈。
所以这场对比的核心问题其实是:4GB 显存的入门独显,对上 8GB 统一内存的 MacBook 和手机,谁能赢?
这也是最近测试的设备中第一台x86的机器!
二、跑分
2.1 Ollama 基准测试
用 Ollama v0.31.1,开启 Flash Attention + q8_0 KV Cache,同一模型跑三轮取平均:
| 指标 | 数值 |
|---|---|
| 模型加载耗时 | 348 ms |
| Prompt 处理速度 | 554 tok/s |
| Token 生成速度 | 59 tok/s |
59 t/s。MacBook 是 33 t/s,刚好是 1.79 倍。
2.2 全系列完整对比
四台设备,同一个模型文件,放在一起看:
| 设备 | SoC/CPU | GPU | 加速方式 | 文本生成 |
|---|---|---|---|---|
| K30 Pro (LineageOS) | 骁龙 865 | Adreno 650 (废弃) | CPU dotprod | 13 t/s |
| K30 Pro (MIUI) | 骁龙 865 | Adreno 650 (官方) | CPU dotprod | 12 t/s |
| vivo X100 Pro | Dimensity 9300 | Mali-G720 | Vulkan GPU | 17 t/s |
| MacBook Neo | A18 Pro | A18 Pro (统一) | Metal GPU | 33 t/s |
| x86 台式机 🏆 | i5-9400F | GTX 1650 | CPU/Ollama | 59 t/s 🏆 |
2.3 Flash Attention 的影响
跟 MacBook 上的发现一致,Flash Attention 对 Prompt 处理影响巨大:
| 配置 | Prompt 处理 | 文本生成 |
|---|---|---|
| FA=1 + q8_0 KV | 554 t/s 🏆 | 59 t/s 🏆 |
| FA=0 + fp16 KV | 171 t/s | 58 t/s |
| 提升 | +224% | +2% |
Flash Attention 对 Prompt 处理有 3 倍提升,但对文本生成基本没影响。和 MacBook 上的结论完全吻合。
2.4 CPU vs GPU——一个意外的结果
测试中最让我意外的是这个:
| 模式 | Prompt 处理 | 文本生成 |
|---|---|---|
| GPU (ngl=99) | 205 t/s | 58 t/s |
| CPU (ngl=0) | 840 t/s 🏆 | 60 t/s 🏆 |
CPU 把 GPU 反杀了。
GTX 1650 的 CUDA 后端在这台机器上反而比纯 CPU 慢——不是 GPU 不行,而是 GTX 1650 的 4GB GDDR5 显存带宽太有限(~128 GB/s),对于 1.3GB 的模型来说,GPU 搬运参数的瓶颈和 CPU 差不多。i5-9400F 支持 AVX2 dotprod 指令,在 2B 小模型上的效率非常高。
这个现象跟 K30 Pro 上的结论如出一辙——小模型在 CPU 上用 SIMD 优化,已经能接近甚至超过入门独显的带宽极限。
三、为什么台式机能赢?
3.1 内存带宽的真相
先看理论带宽:
| 设备 | 内存/显存类型 | 理论带宽 |
|---|---|---|
| K30 Pro (骁龙 865) | LPDDR5 | ~44 GB/s |
| vivo X100 Pro (Dimensity 9300) | LPDDR5T | ~60 GB/s |
| MacBook Neo (A18 Pro) | LPDDR5X | ~60 GB/s |
| x86 台式机 | GDDR5 (GTX 1650) | ~128 GB/s |
| x86 台式机 (CPU)** | DDR4 系统内存 | ~25 GB/s |
关键就在这里:
- CPU 模式下,系统内存只有 ~25 GB/s 带宽,但 CPU 利用的是 AVX2 指令集对 Q4_K_M 量化格式的深度优化,实际有效带宽远高于理论值。59 t/s 就是最好的证明。
- GPU 模式下,GTX 1650 的 GDDR5 有 128 GB/s 带宽,但受限于 CUDA kernel 启动开销和 896 个 CUDA 核心在小 batch size 下的闲置,实际吞吐并没有比 CPU 高。
- MacBook 的 33 t/s 受限于它的 8GB 统一内存既要装模型又要装系统,功耗墙限制峰值性能。
3.2 散热——台式机的主场
K30 Pro 被动散热,跑 2-3 分钟后降频。MacBook Neo 无风扇设计,短时间还好,持续推理温热。
x86台式机 有 CPU 塔式散热器 + GPU 主动风扇——跑了 10 分钟 benchmark,CPU 温度 52°C,GPU 温度 32°C,完全不用考虑降频问题。
3.3 还有一个隐形成本:价钱
| 设备 | 当前二手价格 |
|---|---|
| K30 Pro | ~500-800 元 |
| MacBook Neo | ~3000-3500 元 |
| x86 台式机 (含 GTX 1650) | ~1500-2000 元 |
一台二手旧台式机配块 GTX 1650,总价可能不到 MacBook Neo 的一半,跑模型速度快近 2 倍。
四、系列回顾
从第一篇文章到现在,我们经历了整个本地大模型推理的探索之旅:
- K30 Pro CPU dotprod (13 t/s) — 手机没有 GPU 驱动怎么办?CPU 硬扛
- K30 Pro MIUI Adreno (12 t/s) — 原厂驱动也救不了 Adreno 650
- vivo X100 Pro Mali GPU (17 t/s) — Mali 官方驱动开箱即用,但手机散热是硬伤
- MacBook Neo Ollama vs llama.cpp — Ollama 更快,因为默认开了 Flash Attention + q8_0 KV Cache
- MacBook Neo Qwen3.5-2B (33 t/s) — 统一内存 + Metal GPU,手机的两倍
- 本集:AtomCode 服务器 GTX 1650 (59 t/s) — 六年前的旧台式机,把 MacBook 和手机都干翻了
设备 速度
K30 Pro (LineageOS) ████████████████ 13 t/s
K30 Pro (MIUI) ███████████████ 12 t/s
vivo X100 Pro █████████████████████ 17 t/s
MacBook Neo █████████████████████████████████████ 33 t/s
x86 台式机 █████████████████████████████████████████████████████████████████ 59 t/s 🏆
五、后记
1. GTX 1650 是个奇葩——但恰恰说明了一个道理
GTX 1650 发布于 2019 年,是 Turing 架构最低端的桌面卡。4GB GDDR5、896 CUDA 核心、128 bit 位宽——在当年就是入门中的入门。
但即便如此,它跑 2B 模型的推理速度依然超过 MacBook Neo:59 vs 33 t/s。不是因为 GTX 1650 有多强,而是因为「物理层面的差距」的确是真实存在的——台式机的散热、功耗、独立显存带宽,每一个都碾压移动设备。
同时,CPU 模式反超 GPU 这个现象,也说明了另一个道理:条件有限时,优化比硬件更重要。 i5-9400F 没有超线程、没有 AVX-512,但 AVX2 + dotprod 优化在 2B 小模型上已经足够高效。K30 Pro 的骁龙 865 CPU 也有同样的 SDOT 指令,所以它跑 13 t/s 其实已经接近 GTX 1650 GPU 模式下 58 t/s 的 1/4——考虑到价格和功耗差距,这个效率非常惊人。
2. 所以本地跑模型到底该怎么选?
看完整个系列,你应该已经明白了:
- 如果你有闲置旧手机 → 装 Termux + llama.cpp,零成本获得一个本地 AI 服务器。12-17 t/s 足够日常聊天。
- 如果你是 Mac 用户 → Ollama + Metal,开箱即用,33 t/s 的体验非常流畅。
- 如果你是台式机用户 → 哪怕只有 GTX 1650 这种入门卡,也比 MacBook 快。而且 Ollama 的 CPU 模式反而更快——不用纠结有没有显卡。
- 结论:本地推理的甜区就是 1.5B-3B 模型。 这个规模下,6 年前的旧电脑、吃灰的旧手机,都能跑出可用的速度。7B+ 模型需要大量内存/显存,性价比急剧下降。
最后,附上本次测试环境:
| 项目 | 值 |
|---|---|
| 设备 | x86 台式机 |
| CPU | Intel i5-9400F (6C6T, 2.9GHz) |
| GPU | NVIDIA GeForce GTX 1650 (4GB GDDR5) |
| RAM | 16 GB DDR4 |
| 系统 | Ubuntu 22.04 LTS (linux x86_64) |
| 模型 | Qwen3.5-2B-Q4_K_M (1.3 GB) |
| Ollama | v0.31.1 + Flash Attention + q8_0 KV Cache |
2026-07-13 · AtomCode Server / i5-9400F / GTX 1650 / 16GB RAM