
Android 上的 LLM 基准测试: 骁龙、Tensor 和 Exynos 对比
通过 llama.cpp 在 Android 上运行 LLM 的真实基准数据。骁龙 8 Gen 2/3、Tensor G3/G4、Exynos 2400 和中端芯片组的 token 速度,以及实用的部署指南。
Android 的芯片组多样性对于端侧 AI 既是挑战也是机遇。不像 iOS 只需针对少数 A 系列芯片, Android 横跨高通骁龙、Google Tensor、三星 Exynos 和联发科天玑,分布在数百种设备型号上。
好消息是: 旗舰和近期中端 Android 设备以可用速度运行 1-3B 参数模型。如果你针对正确的层级,碎片化是可管理的。
芯片组格局
旗舰(2023-2026)
| 芯片组 | 代表设备 | RAM | GPU |
|---|---|---|---|
| 骁龙 8 Gen 3 | Galaxy S24, OnePlus 12 | 8-12GB | Adreno 750 |
| 骁龙 8 Elite | Galaxy S25, OnePlus 13 | 12-16GB | Adreno 830 |
| Tensor G3 | Pixel 8, 8 Pro | 12GB | Mali-G715 |
| Tensor G4 | Pixel 9, 9 Pro | 12-16GB | Mali-G715 |
| Exynos 2400 | Galaxy S24(国际版) | 8-12GB | Xclipse 940 |
| 天玑 9300 | 各品牌旗舰 | 8-16GB | Immortalis-G720 |
中端(2024-2026)
| 芯片组 | 代表设备 | RAM | GPU |
|---|---|---|---|
| 骁龙 7+ Gen 3 | 2024+ 中端 | 8-12GB | Adreno 732 |
| 骁龙 7 Gen 3 | 2024+ 中端 | 6-8GB | Adreno 720 |
| 天玑 8300 | 2024+ 中端 | 8-12GB | Mali-G615 |
| Tensor G2 | Pixel 7 系列 | 8GB | Mali-G710 |
入门级(2024-2026)
| 芯片组 | 代表设备 | RAM | GPU |
|---|---|---|---|
| 骁龙 6 Gen 3 | 2024+ 入门级 | 4-6GB | Adreno 710 |
| 天玑 7300 | 2024+ 入门级 | 6-8GB | Mali-G615 |
| Helio G99 | 入门级设备 | 4-6GB | Mali-G57 |
基准测试结果
所有基准测试使用 llama.cpp,配合 CPU 推理(多线程)和 Vulkan GPU 加速(可用时)。GGUF Q4_K_M 量化, 2048 上下文长度。
1B 参数模型(约 600MB GGUF Q4)
| 芯片组 | CPU (tok/s) | GPU/Vulkan (tok/s) | 内存 |
|---|---|---|---|
| 骁龙 8 Elite | 35-45 | 45-55 | ~800MB |
| 骁龙 8 Gen 3 | 30-40 | 40-50 | ~800MB |
| 骁龙 8 Gen 2 | 25-35 | 35-45 | ~800MB |
| Tensor G4 | 28-35 | 35-42 | ~800MB |
| Tensor G3 | 25-32 | 30-38 | ~800MB |
| Exynos 2400 | 25-35 | 32-42 | ~800MB |
| 骁龙 7+ Gen 3 | 22-28 | 28-35 | ~800MB |
| 骁龙 7 Gen 3 | 18-25 | 22-30 | ~800MB |
| 天玑 8300 | 20-28 | 25-33 | ~800MB |
| 骁龙 6 Gen 3 | 12-18 | 15-22 | ~800MB |
过去 2-3 年的每一款旗舰和中端芯片组都以 20+ token/秒运行 1B 模型。即使是入门级的骁龙 6 Gen 3 也能提供可用性能。
3B 参数模型(约 1.7GB GGUF Q4)
| 芯片组 | CPU (tok/s) | GPU/Vulkan (tok/s) | 内存 |
|---|---|---|---|
| 骁龙 8 Elite | 18-25 | 22-30 | ~2.2GB |
| 骁龙 8 Gen 3 | 15-22 | 20-28 | ~2.2GB |
| 骁龙 8 Gen 2 | 12-18 | 16-22 | ~2.2GB |
| Tensor G4 | 14-20 | 18-24 | ~2.2GB |
| Tensor G3 | 12-16 | 15-20 | ~2.2GB |
| Exynos 2400 | 12-18 | 16-22 | ~2.2GB |
| 骁龙 7+ Gen 3 | 10-14 | 13-18 | ~2.2GB |
| 骁龙 7 Gen 3 | 7-11 | 9-14 | ~2.2GB |
| 骁龙 6 Gen 3 | 4-7 | 5-9 | ~2.2GB |
3B 模型在旗舰设备上运行良好(GPU 下 15+ tok/s)。中高端设备(骁龙 7+ Gen 3、天玑 8300)可用。中低端和入门级设备难以达到 10 tok/s 的舒适聊天门槛。
Vulkan GPU 加速
Vulkan GPU 加速是 Android 上快速端侧推理的关键。相比纯 CPU 推理的提升范围在大多数设备上为 20-40%:
- 骁龙 8 Gen 3: Vulkan 提升 +30-35%
- Tensor G4: +25-30%
- Exynos 2400: +20-30%
- 中端骁龙 7: +20-25%
llama.cpp 通过 n_gpu_layers 参数启用 Vulkan 加速。将其设置为模型的完整层数即可将所有计算卸载到 GPU。
碎片化策略
通过分层方案, Android 碎片化是可管理的:
第一层: 1B 模型(4GB+ RAM)
覆盖 85%+ 的活跃 Android 设备。包括过去 3-4 年的所有智能手机和过去 2 年的大多数入门级设备。
- 模型大小: ~600MB (Q4_K_M)
- RAM 需求: 推理时 800MB
- 速度: 12-55 tok/s,取决于芯片组
- 适用于: 分类、自动补全、智能建议、短响应
第二层: 3B 模型(8GB+ RAM)
覆盖过去 2-3 年的旗舰和中高端设备。在发达市场约占活跃 Android 设备的 40-50%,且每年在增长。
- 模型大小: ~1.7GB (Q4_K_M)
- RAM 需求: 推理时 2.2GB
- 速度: 在支持的设备上 10-30 tok/s
- 适用于: 聊天、摘要、内容生成、复杂任务
运行时检测
在运行时检测可用 RAM 和芯片组以选择合适的模型:
fun selectModelTier(): ModelTier {
val memInfo = ActivityManager.MemoryInfo()
val activityManager = getSystemService(ACTIVITY_SERVICE) as ActivityManager
activityManager.getMemoryInfo(memInfo)
val totalRamGb = memInfo.totalMem / (1024 * 1024 * 1024)
return when {
totalRamGb >= 8 -> ModelTier.THREE_B
totalRamGb >= 4 -> ModelTier.ONE_B
else -> ModelTier.NONE // 设备性能过低
}
}
热量与电池影响
热节流
Android 设备在持续推理时比 iPhone 更容易出现热节流。节流行为因制造商而异:
- 三星: 激进节流,持续负载 3-5 分钟后速度降低 20-40%
- Pixel: 适中节流, 5-7 分钟后降低 15-25%
- OnePlus/游戏手机: 更宽松, 10-20% 降低
电池消耗
推理大致消耗:
- 1B 模型: 生成时 2-3W
- 3B 模型: 生成时 3-5W
作为参考,典型手机电池容量为 4,000-5,500 mAh。3B 模型持续生成每分钟约消耗 1% 电量。对于典型使用(每小时几次短交互),电池影响可以忽略。
优化
- 使用与设备性能核心匹配的 CPU 线程数(通常为 4)
- 不使用时卸载模型以消除空闲功耗
- 对于后台任务(分类、标记),批处理比逐个调用更节能