开源llama.cpp Releases·原文 2026年10月30日

llama.cpp b12008修正Gemma模型加载顺序,CPU模式显存占用降约 216 MiB

llama.cpp发布b12008版本,调整gemma3n与gemma4的token_embd创建顺序,避免输入输出共享缓冲区类型时重复持有词嵌入表;官方给出gemma-4-E2B-it Q4_K_M在纯CPU、无mmap下模型缓冲区从 3163.73 MiB降至 2947.73 MiB。

AI解读:本次更新针对gemma3n和gemma4模型,在创建与输出层共享权重的输出之前先创建token_embd,原因是重复输出会在其缓冲区上下文中查找token_embd,必须先存在。

旧顺序下,当输入和输出共享同一种缓冲区类型(例如纯CPU运行、-ngl 0)时,词嵌入表会被持有两次。

发布说明给出的实测例子是gemma-4-E2B-it Q4_K_M、不使用mmap、纯CPU模型缓冲区,从 3163.73 MiB降至 2947.73 MiB。

该版本同时提供macOS、iOS、Linux、Android、Windows等多平台预编译包,部分后端如KleidiAI和openEuler构建处于禁用状态。

llama.cpp发布b12008版本,提交说明为“gemma3n, gemma4 : create token_embd before the tied output (#31394)”。改动内容是让token_embd在绑定的输出层之前创建。

加载顺序修正与内存效果

发布说明解释,重复的输出会在其缓冲区上下文中查找token_embd,因此token_embd必须先存在。旧顺序下,当输入和输出共享同一种缓冲区类型时(例如纯CPU运行、-ngl 0),词嵌入表会被持有两次。

发布说明给出的例子是gemma-4-E2B-it Q4_K_M、不使用mmap、纯CPU模型缓冲区,数值从 3163.73 MiB变为 2947.73 MiB。该数据来自发布说明,属于项目方的单例说明。

  • 适用模型:gemma3n、gemma4。
  • 触发条件:输入和输出共享缓冲区类型,如CPU-only、-ngl 0。
  • 示例模型:gemma-4-E2B-it Q4_K_M,no mmap。
  • CPU模型缓冲区:3163.73 MiB → 2947.73 MiB。

预编译包与平台状态

b12008发布页列出了macOS Apple Silicon(arm64)、macOS Intel(x64)、iOS XCFramework、Ubuntu(x64/arm64/s390x及多种加速后端)、Android arm64、Windows(x64/arm64及CUDA、Vulkan、OpenVINO、SYCL、ROCm等构建)的下载包,并包含UI包。

发布页同时标注macOS Apple Silicon的KleidiAI启用版本为DISABLED,openEuler相关构建也为DISABLED。

信息来源

llama.cpp Releases原始来源

更多

新闻专题
外观