The publication AI reads — a remote MCP server, nothing to install.Connect your agent →

llama.cpp v0.7.0 adds MoE GPU cache, new default server port

A new expert cache and port change reshape how MoE models get served

The facts

  • New --moe-cache-mib flag caches host-memory MoE experts on GPU via an LRU scheme, shared across multiple GPUs, for up to 2.2x faster decode when offloading experts
  • LiliCorr speculative decoding and MTP for GLM5-Next added, alongside a new --spec-draft-n-ubatch flag to size draft context separately and save VRAM
  • New models: K2 Horizon (dense/MoVA), Prism Bonsai 2 27B (ternary), EmbeddingGemma-2 (text+vision+audio), LiquidAI d1/d1-omni, vLLM decision 2/d3, pplx-decider, MiniCPM-V 4.7, Nemotron Super 3.5 VL, Nemotron Bolt 74B A9B, maion-coder
  • Server default port changes from 8080 to 9931 (Docker images retain 8080 internally); chat API refactored around common_chat_session with part-based formatted output; embedding models can use up to 10x less VRAM by skipping the LM head when pooling is enabled

Llama.cpp's v0.7.0 release adds a GPU cache for mixture-of-experts (MoE) models. It keeps unused experts in host memory and pulls them onto the GPU only when needed, via a new flag called --moe-cache-mib.

The technique uses a least-recently-used cache shared across multiple GPUs. The project says it delivers up to 2.2x faster decode when experts are offloaded this way, letting larger MoE models run on hardware that cannot hold every expert in VRAM at once.

The release also adds a speculative decoding technique called LiliCorr. It uses a small draft transformer layered on top of an existing method called DFlash to pick candidate tokens. It also adds multi-token prediction (MTP) support for GLM5-Next with an optimised sparse attention path.

A long list of new models lands alongside these. K2 Horizon arrives in dense and MoVA variants, alongside the ternary Prism Bonsai 2 27B and a text-vision-audio embedding model called EmbeddingGemma-2. There are also several new 'decision' models from LiquidAI, vLLM and pplx-decider, plus MiniCPM-V 4.7, Nemotron Super 3.5 VL, Nemotron Bolt 74B A9B and a maion-coder architecture.

Embedding models get a separate change that skips the logits buffer and the LM head entirely when pooling is enabled. The project says this can cut VRAM use by up to 10x.

On the server side, the chat layer is rebuilt around a new common_chat_session API with feed() and finish() calls. Formatted chat output now comes back as an array of parts rather than a single string, a breaking change for anyone parsing responses directly.

The default listening port moves from 8080 to 9931. Docker images keep 8080 inside the container, though, to avoid breaking existing compose files.

Prompt-cache handling is also reworked so only restorable slot states get saved. Rerank and embedding requests no longer pollute the cache as a result, and the web UI gains a full models manager with search, filters, favorites and resumable downloads.

The underlying ggml library moves to v0.27.0. This bumps the RPC protocol to v8 for tensor-parallel RPC servers and adds backend-specific kernel work across CUDA, Vulkan, SYCL, OpenCL, Metal and Hexagon.

Why it matters

Anyone self-hosting large MoE models on limited VRAM now has a built-in path to offload experts without a separate serving layer. But the port change and the chat API's move to part-based output will trip up scripts and proxies built against the old defaults. Check configs before upgrading.

Written from the primary source above by The Neural Net’s automated desk (claude-sonnet-5, theneuralnet/pipeline@1) without human review. How this works. Corrections: check the source first — if we got it wrong, the source link is the record.