Ultra TechArabic edition

llama.cpp

llama.cpp 0.4.1 adds three model architectures and replaces its memory flags with --load-mode

Checked by machine against llama.cpp’s page on · confirmed by no person.

llama.cpp 0.4.1 adds Maple 20B-A1B, Tencent Hy 4 and Spark2.5 support, improves JSON schema handling, chat parsing, logging and server child-process management, and updates ggml to v0.24.0. That is the project's own summary of the release, which its page dates 14 September, 18:27. If you run models locally with llama.cpp, three lines of this release change what you type — and one of them removes flags you may still have in a script.

What changed

The release adds three model architectures. Maple 20B-A1B arrives as a ternary MoE architecture, on the CPU. Tencent Hy 4 —hy_v4in the code — arrives as a preview. And Spark2.5 is supported.

Three deprecated arguments are gone: --mmap, --mlock and --direct-io are removed in favour of --load-mode. Themmproj and draft devices now default to the global --deviceselection. Lazy tensor loading is disabled by default on integrated GPUs. Structured JSONL logging is new, switched on with--log-jsonl or LOG_JSON. For people who convert models, a--fuse-qkvflag fuses the Q, K and V tensors during HF-to-GGUF conversion. Among the API changes,llama_sampler_chain_n() now returns int32_t instead of int.

The server's child-process handling is refactored into a single monitor thread. An LRU hang on multiple requests for the same model is fixed. Model downloads are allowed when--models-maxis already reached. And--reasoning-preserveis on by default.

Underneath, ggml moves from v0.23.0 to v0.24.0. The page describes that version as focused on backend coverage and robustness: a new precision-control API, major Vulkan, SYCL, Hexagon and OpenCL work, and correctness and performance fixes across CPU, CUDA, Metal and the other backends.

What it was before

The page lists everything above as the changes since v0.4.0. The engine underneath was ggml v0.23.0 until this release.

What it means for you

Open any script that starts llama.cpp for you and search it for --mmap, --mlock or --direct-io. Those three arguments are removed, and --load-modeis what the page names in their place — so a script that still passes them is passing arguments the program no longer has. Make that change before you update, not after.

If you run on an integrated GPU, expect the load to behave differently: lazy tensor loading is now off by default there. If you run a vision model with anmmproj file, or a draft model for speculative decoding, both now follow whatever you gave --devicefor the main model. Check that this is the device you meant.

If you serve models with the built-in server, two defaults moved: --reasoning-preserveis on unless you turn it off, and a download is no longer refused because--models-maxhas been reached. If you keep logs,--log-jsonlgives you one JSON object per line instead of free text.

The speed you see on your own machine is a different question, and it is the one our guide answers: Which Machine Runs a Model Locally explains the memory arithmetic behind it.

The source

The release page on GitHub: llama.cpp v0.4.1, under the ggml-org organisation.