GPU 层数(GPU Offload)——手机上能不能用上 NPU/GPU
GPU Offload 是什么
GGUF 模型加载后默认全部跑在手机 CPU 上。GPU Offload 让你把一部分模型层(比如 5~20 层)卸载到手机的 GPU 或 NPU 上运行——速度能翻倍甚至更多。
Local AI 的 GGUF 精细设置里有「GPU 层数」这个滑块,值从 0 到模型总层数。0 表示全部跑 CPU,数字越大越多层卸载到硬件加速单元。
手机端的硬件加速现状
安卓手机的芯片架构(骁龙、天玑、麒麟等)各家的 GPU/NPU 实现不同:
- 骁龙 8 Gen 2+ / 8 Gen 3+:GPU Offload 效果好,建议开到 8~16 层
- 天玑 9200+ / 9300+:NPU 加速支持较好
- 中端芯片(骁龙 7 系、天玑 7 系):Offload 效果有限,开 2~6 层试试
- 麒麟芯片:取决于具体 HarmonyOS / EMUI 版本的底层支持
Local AI 底层用 llama.cpp 的 Vulkan 后端,在支持 Vulkan 的设备上 GPU Offload 才有效。
怎么判断你的手机能不能用
最简单的方法:装一个 GGUF 模型后,去 GGUF 精细设置:
- 保持「禁用 GPU 加速」开关为关闭
- 把 GPU 层数滑块从 0 往上调(比如调到 5)
- 进对话页发一条消息
- 观察回复速度有没有明显变快
如果速度没变化甚至变慢,说明你的手机 Vulkan 加速效率不高——把 GPU 层数调回 0 即可(CPU 跑反而更快)。
避免开反了
有些手机开了 GPU Offload 反而更慢——原因是 CPU-GPU 之间的数据传输开销比加速本身还大。如果出现以下情况,说明你需要关掉:
- 回复速度反而不如 CPU 全跑
- 应用闪退或崩溃
- 设备发热异常严重
优先试 GPU Offload 的值 0 和一个中间值(比如 5),对比两次的 token/s 速度,选快的那个。
和其他参数的配合
- GPU Offload 和内存锁定(mlock)一起开,效果最好——模型层被锁定在内存里不会被系统换出,Offload 层也能稳定访问
- 手机内存小于 8 GB 时,GPU Offload 可能反而增加内存压力——建议先在 CPU 模式下确保不闪退