]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/log
pkg/ggml/sources/llama.cpp
4 months agospec : refactor params (#22397)
Georgi Gerganov [Tue, 28 Apr 2026 06:07:33 +0000 (09:07 +0300)]
spec : refactor params (#22397)

* spec : refactor params

* cont : fix

* cont : rename "sparam" to "sampling"

* cont : add spec params category

* cont : add info about removed arguments

* cont : skip param length check for spec params

* cont : adapt server tests

4 months agoserver: use pos_next instead of n_tokens for m-rope (#22439)
Aman Gupta [Tue, 28 Apr 2026 05:41:00 +0000 (13:41 +0800)]
server: use pos_next instead of n_tokens for m-rope (#22439)

4 months agoggml-webgpu: add Q1_0 support (#22374)
Rithik Sharma [Mon, 27 Apr 2026 22:50:59 +0000 (15:50 -0700)]
ggml-webgpu: add Q1_0 support (#22374)

* add fast matmul matvec q1_0 kernel

* ggml-webgpu: drop redundant zero-fills in Q1_0 shmem init

4 months agoserver: (router) Forward form-data to model server (Fixes #22044) (#22118)
tha80 [Mon, 27 Apr 2026 21:55:00 +0000 (23:55 +0200)]
server: (router) Forward form-data to model server (Fixes #22044) (#22118)

* This commit enables the router to forward form-data to model server.
Fixes #22044 (enabling to use the /v1/audio/transcriptions in router mode)

* * Applied the suggestion from Copilots first comment: using the non-throwing json::parse overload.
* Addressed Copilots third comment by extending the files representation to also include filename and content-type
* Addressed Copilots fourth comment by making the RNG thread_local

* Changed variable body from std::string to std::ostringstream in build_multipart_body
as suggested by ngxson in https://github.com/ggml-org/llama.cpp/pull/22118#discussion_r3127099053

* Added sanitize_field lambda in build_multipart_body for key, filename and content_type
as suggested by ngxson in https://github.com/ggml-org/llama.cpp/pull/22118#discussion_r3127104647

* explicitly checking if value/item is string before calling value/item.get<std::string>()
as requested by ngxson in https://github.com/ggml-org/llama.cpp/pull/22118#discussion_r3127111279

* Added double quote to the sanitize lambda and throw on json parse failure

---------

Co-authored-by: Ralph Paßgang <redacted>
4 months agoadd fast mat-vec kernels for i-quants (#22344)
Rithik Sharma [Mon, 27 Apr 2026 15:25:45 +0000 (08:25 -0700)]
add fast mat-vec kernels for i-quants (#22344)

4 months agoAdditional test for common/gemma4 : handle parsing edge cases (#22420)
Igor Rudenko [Mon, 27 Apr 2026 14:36:59 +0000 (17:36 +0300)]
Additional test for common/gemma4 : handle parsing edge cases (#22420)

* Additional test for common/gemma4 : handle parsing edge cases

* Move tests to Gemma 4 test group

4 months agofix: rpc-server cache may not work in Windows environments (#22394)
unraido [Mon, 27 Apr 2026 14:25:09 +0000 (23:25 +0900)]
fix: rpc-server cache may not work in Windows environments (#22394)

* fix: create directory and log cache file name.

* Remove GGML_LOG_INFO conditional compilation.

---------

Co-authored-by: kotaro <redacted>
4 months agoFix type casting for unaccounted memory calculation (#22424)
rankaiyx [Mon, 27 Apr 2026 12:31:13 +0000 (20:31 +0800)]
Fix type casting for unaccounted memory calculation (#22424)

4 months agodownload : prefer q8_0 when q4_k not available (#22428)
Georgi Gerganov [Mon, 27 Apr 2026 12:30:29 +0000 (15:30 +0300)]
download : prefer q8_0 when q4_k not available (#22428)

4 months agomodel : remove duplicate wo_s scale after build_attn (Qwen3, LLaMA) (#22421)
ynankani [Mon, 27 Apr 2026 07:58:48 +0000 (07:58 +0000)]
model : remove duplicate wo_s scale after build_attn (Qwen3, LLaMA) (#22421)

Signed-off-by: Yash Nankani <redacted>
4 months agoconvert : remove input_scale for dequantized fp8 modelopt (#22356)
Sigbjørn Skjæret [Mon, 27 Apr 2026 06:45:01 +0000 (08:45 +0200)]
convert : remove input_scale for dequantized fp8 modelopt (#22356)

4 months agoggml : use 64 bytes aligned tile buffers (#21058)
Adrien Gallouët [Mon, 27 Apr 2026 06:30:55 +0000 (08:30 +0200)]
ggml : use 64 bytes aligned tile buffers (#21058)

| Model                            | Test   |   t/s OLD |   t/s NEW |   Speedup |
|:---------------------------------|:-------|----------:|----------:|----------:|
| qwen35 0.8B BF16                 | pp512  |    584.59 |    595.41 |      1.02 |
| qwen35 0.8B BF16                 | tg128  |     52.23 |     52.82 |      1.01 |
| qwen35 0.8B IQ2_M - 2.7 bpw      | pp512  |    260.64 |    261.70 |      1.00 |
| qwen35 0.8B IQ2_M - 2.7 bpw      | tg128  |     81.17 |     80.89 |      1.00 |
| qwen35 0.8B IQ2_XXS - 2.0625 bpw | pp512  |    302.36 |    302.56 |      1.00 |
| qwen35 0.8B IQ2_XXS - 2.0625 bpw | tg128  |     84.93 |     85.12 |      1.00 |
| qwen35 0.8B IQ3_XXS - 3.0625 bpw | pp512  |    263.22 |    260.01 |      0.99 |
| qwen35 0.8B IQ3_XXS - 3.0625 bpw | tg128  |     80.29 |     78.94 |      0.98 |
| qwen35 0.8B IQ4_NL - 4.5 bpw     | pp512  |    728.65 |    742.09 |      1.02 |
| qwen35 0.8B IQ4_NL - 4.5 bpw     | tg128  |     82.39 |     84.46 |      1.03 |
| qwen35 0.8B IQ4_XS - 4.25 bpw    | pp512  |    681.33 |    677.06 |      0.99 |
| qwen35 0.8B IQ4_XS - 4.25 bpw    | tg128  |     80.18 |     79.28 |      0.99 |
| qwen35 0.8B Q2_K_M               | pp512  |    413.28 |    415.94 |      1.01 |
| qwen35 0.8B Q2_K_M               | tg128  |     81.90 |     82.78 |      1.01 |
| qwen35 0.8B Q3_K_M               | pp512  |    493.17 |    495.08 |      1.00 |
| qwen35 0.8B Q3_K_M               | tg128  |     82.75 |     83.23 |      1.01 |
| qwen35 0.8B Q3_K_S               | pp512  |    429.35 |    427.64 |      1.00 |
| qwen35 0.8B Q3_K_S               | tg128  |     86.69 |     87.02 |      1.00 |
| qwen35 0.8B Q4_0                 | pp512  |    783.46 |    782.32 |      1.00 |
| qwen35 0.8B Q4_0                 | tg128  |     88.23 |     87.90 |      1.00 |
| qwen35 0.8B Q4_1                 | pp512  |    741.71 |    729.76 |      0.98 |
| qwen35 0.8B Q4_1                 | tg128  |     85.44 |     86.01 |      1.01 |
| qwen35 0.8B Q4_K_M               | pp512  |    676.24 |    681.31 |      1.01 |
| qwen35 0.8B Q4_K_M               | tg128  |     76.59 |     77.06 |      1.01 |
| qwen35 0.8B Q4_K_S               | pp512  |    683.12 |    688.81 |      1.01 |
| qwen35 0.8B Q4_K_S               | tg128  |     80.50 |     81.19 |      1.01 |
| qwen35 0.8B Q5_K_M               | pp512  |    635.33 |    642.11 |      1.01 |
| qwen35 0.8B Q5_K_M               | tg128  |     72.07 |     72.49 |      1.01 |
| qwen35 0.8B Q5_K_S               | pp512  |    660.95 |    658.18 |      1.00 |
| qwen35 0.8B Q5_K_S               | tg128  |     72.19 |     72.95 |      1.01 |
| qwen35 0.8B Q6_K                 | pp512  |    647.97 |    638.84 |      0.99 |
| qwen35 0.8B Q6_K                 | tg128  |     72.83 |     72.49 |      1.00 |
| qwen35 0.8B Q8_0                 | pp512  |    805.01 |    785.49 |      0.98 |
| qwen35 0.8B Q8_0                 | tg128  |     70.10 |     70.13 |      1.00 |

Signed-off-by: Adrien Gallouët <redacted>
4 months agocommon: fix missing exports in llama-common (#22340)
Max Krasnyansky [Mon, 27 Apr 2026 05:06:39 +0000 (22:06 -0700)]
common: fix missing exports in llama-common (#22340)

* common: refactor common/debug to move abort_on_nan into base_callback_data

Passing bool abort_on_nan as template parameter for common_debug_cb_eval is unnecessary and creates an issue with LTO.
It should just be a member of the base_callback_data instead.

* cont : cleanup

* common : use pimpl in debug.h to reduce header dependencies

Move common_debug_cb_user_data's data members (std::regex,
std::vector<uint8_t>) into a private impl struct in debug.cpp.

This removes the includes of common.h and <regex> from debug.h,
reducing transitive dependencies for any translation unit that
includes the header.

Assisted-by: llama.cpp:local pi
---------

Co-authored-by: Georgi Gerganov <redacted>
4 months agopr2wt : symlink .pi (#22386)
Georgi Gerganov [Sun, 26 Apr 2026 16:49:26 +0000 (19:49 +0300)]
pr2wt : symlink .pi (#22386)

4 months agoadd performance-portable tuning for register-tile and subgroup matmul (#22241)
Rithik Sharma [Sun, 26 Apr 2026 16:26:28 +0000 (09:26 -0700)]
add performance-portable tuning for register-tile and subgroup matmul (#22241)

4 months agoFix recurrent state serialization for partial reads and writes (#22362)
Gaurav Garg [Sun, 26 Apr 2026 11:34:40 +0000 (17:04 +0530)]
Fix recurrent state serialization for partial reads and writes (#22362)

The previous code worked only for full tensor reads and writes and was hitting `GGML_ASSERT(size == ggml_nbytes(tensor)); ` assert when tested with llama-server.

4 months agoGithub: set meta backend code owner (#22388)
Johannes Gäßler [Sun, 26 Apr 2026 11:34:13 +0000 (13:34 +0200)]
Github: set meta backend code owner (#22388)

4 months agoCUDA: better coalesce data-access for contiguous concat (#22330)
Oliver Simons [Sun, 26 Apr 2026 07:21:45 +0000 (09:21 +0200)]
CUDA: better coalesce data-access for contiguous concat (#22330)

Also, distribute all elements across CTAs evenly instead of launching
one CTA per dim

4 months agoggml-cpu : re-enable fast gelu_quick_f16 (#22339)
Sigbjørn Skjæret [Sun, 26 Apr 2026 06:28:14 +0000 (08:28 +0200)]
ggml-cpu : re-enable fast gelu_quick_f16 (#22339)

4 months agoggml-cpu: optimize avx2 q6_k (#22345)
Eve [Sun, 26 Apr 2026 06:27:50 +0000 (06:27 +0000)]
ggml-cpu: optimize avx2 q6_k (#22345)

4 months agoopencl: add iq4_nl support (#22272)
lhez [Sun, 26 Apr 2026 04:21:58 +0000 (21:21 -0700)]
opencl: add iq4_nl support (#22272)

* opencl: add general support for iq4_nl

* opencl: add iq4_nl gemm/gemv for adreno

* opencl: pack 2 lut entries into a uint

4 months agohexagon: guard HMX clock request for v75+ platforms (#22377)
Trivikram Reddy [Sun, 26 Apr 2026 00:58:26 +0000 (19:58 -0500)]
hexagon: guard HMX clock request for v75+ platforms (#22377)

4 months agochat: fix handling of space in reasoning markers (#22353)
Piotr Wilkin (ilintar) [Sat, 25 Apr 2026 19:24:13 +0000 (21:24 +0200)]
chat: fix handling of space in reasoning markers (#22353)

* chat: fix handling of space in reasoning markers

* fix tests

* whitespace

4 months agospec : fix vocab compat checks (#22358)
Georgi Gerganov [Sat, 25 Apr 2026 17:11:35 +0000 (20:11 +0300)]
spec : fix vocab compat checks (#22358)

4 months agoCUDA: reduce MMQ stream-k overhead (#22298)
Johannes Gäßler [Sat, 25 Apr 2026 12:15:03 +0000 (14:15 +0200)]
CUDA: reduce MMQ stream-k overhead (#22298)

* CUDA: reduce MMQ stream-k overhead

* use 32 bit integers for kbc

4 months agometal : optimize Metal Tensor API usage for GGML_OP_MUL_MAT (#20962)
Developer-Ecosystem-Engineering [Sat, 25 Apr 2026 12:14:28 +0000 (05:14 -0700)]
metal : optimize Metal Tensor API usage for GGML_OP_MUL_MAT (#20962)

* Optimize Metal Tensor API usage for matmul2d

Separates the Metal Tensor API (matmul2d) path in kernel_mul_mm into its own standalone kernel, gated by GGML_METAL_HAS_TENSOR.

The legacy simdgroup_matrix kernel is preserved under #else.

Previously both paths were interleaved via #ifdef blocks within a single kernel, forcing the tensor path to share the legacy kernel's data layout and threadgroup memory scheme. Splitting the kernel enabled memory and dispatch optimizations that weren't possible when the two paths shared code structure.

* cont : cleanup

* cont : cleanup

* cont : cleanup

---------

Co-authored-by: Georgi Gerganov <redacted>
4 months agollama-quant : default ftype param `Q5_1` --> `Q8_0` (#20828)
ddh0 [Sat, 25 Apr 2026 06:25:35 +0000 (01:25 -0500)]
llama-quant : default ftype param `Q5_1` --> `Q8_0` (#20828)

Change the default `ftype` in `llama_model_quantize_params` from
`LLAMA_FTYPE_MOSTLY_Q5_1` to `LLAMA_FTYPE_MOSTLY_Q8_0`.

In case some external program naively uses the default quantization
params, we should probably default to a known-good type like Q8_0 rather
than Q5_1, which is rather old.

4 months agogitignore : add .pi + personal SYSTEM.md (#22316)
Georgi Gerganov [Sat, 25 Apr 2026 06:20:45 +0000 (09:20 +0300)]
gitignore : add .pi + personal SYSTEM.md (#22316)

* gitignore : add .pi + personal SYSTEM.md

* cont : fix requirements heading in PR template

* cont : shorten line

4 months ago[SYCL] Optimize Q4_0 mul_mat for Arc770, add scripts (#22291)
Neo Zhang [Sat, 25 Apr 2026 06:20:14 +0000 (14:20 +0800)]
[SYCL] Optimize Q4_0 mul_mat for Arc770, add scripts (#22291)

* opt arc770 for Q4_0

* add for Q4_0

* update the script

* add help script for windows

* update guide

* fix format issue

* convert from dos to unix for format issue

* fix missed -sm parameter

4 months agoggml-webgpu: support for SSM_SCAN and disable set_rows error checking (#22327)
Reese Levine [Sat, 25 Apr 2026 06:18:15 +0000 (23:18 -0700)]
ggml-webgpu: support for SSM_SCAN and disable set_rows error checking (#22327)

* Implement ssm_scan

* Remove blocking in graph_compute and check for set rows

* Fix bindings

* Update op support

4 months agoparser: fix structured output bug (#22302)
Piotr Wilkin (ilintar) [Fri, 24 Apr 2026 21:19:55 +0000 (23:19 +0200)]
parser: fix structured output bug (#22302)

* fix very stupid structured output bug

* Things just cannot be too easy.

4 months agoHexagon: Bump HMX Frequency to Max Corner (#22334)
Trivikram Reddy [Fri, 24 Apr 2026 20:55:17 +0000 (15:55 -0500)]
Hexagon: Bump HMX Frequency to Max Corner (#22334)

* hexagon: bump HMX freq to max corner

* hex-mm: fix error in log msg

4 months agoCI Snapdragon: Switch ubuntu-latest to ubuntu-slim runner (#22303)
Shreya Jain [Fri, 24 Apr 2026 19:21:36 +0000 (12:21 -0700)]
CI Snapdragon: Switch ubuntu-latest to ubuntu-slim runner (#22303)

* switch ubuntu-latest to ubuntu-slim

* Fix the path for upload so CI doesn't fail

* Update .github/workflows/build-and-test-snapdragon.yml

Co-authored-by: Sigbjørn Skjæret <redacted>
* Use -slim image for key check and consistent naming for artifact dir

Signed-off-by: Max Krasnyansky <redacted>
* Remove check-secret extra job

* move QDC key check for Run QDC jobs step specifically

* add a step before to check the secret for qdc jobs

---------

Signed-off-by: Max Krasnyansky <redacted>
Co-authored-by: Max Krasnyansky <redacted>
Co-authored-by: Sigbjørn Skjæret <redacted>
4 months agoggml-webgpu: enable FLASH_ATTN_EXT on browser without subgroup matrix (#22199)
Zheyuan Chen [Fri, 24 Apr 2026 17:39:09 +0000 (10:39 -0700)]
ggml-webgpu: enable FLASH_ATTN_EXT on browser without subgroup matrix  (#22199)

* ggml-webgpu: add tile flash attention fallback

* ggml-webgpu: add new fields and discard usage of mnk for tile version

* ggml-webgpu: modify the vec path to discard the mnk parameter

* ggml-webgpu: enable flash attention vec and tile version for broswer

* ggml-webgpu: stagging KV for flash attention tile version

* formatting

* turn on subgroup uniformity check

* remove Q_TILE as it is always 1 for vec path

* make row_max and exp_sum to local register

* make different bindings with same underlying buffer to have the same usage flags

* move path selection into the shader library and have the host consume a single flash-attn decision object.

* turn off skip_validation and address buffer overlapping when nwg==1

* formatting

* merge binding when kv overlap

4 months agohexagon: use DIRID 13 in libggml-htp.inf for modern InfVerif (#22306)
Mengsheng Wu [Fri, 24 Apr 2026 16:21:33 +0000 (00:21 +0800)]
hexagon: use DIRID 13 in libggml-htp.inf for modern InfVerif (#22306)

4 months agometal : print GPU description (#22318)
Georgi Gerganov [Fri, 24 Apr 2026 10:56:03 +0000 (13:56 +0300)]
metal : print GPU description (#22318)

4 months agocommon : fix jinja warnings with clang 21 (#22313)
Adrien Gallouët [Fri, 24 Apr 2026 10:36:02 +0000 (12:36 +0200)]
common : fix jinja warnings with clang 21 (#22313)

Signed-off-by: Adrien Gallouët <redacted>
4 months agoggml : minor coding style (#22308)
Georgi Gerganov [Fri, 24 Apr 2026 08:02:00 +0000 (11:02 +0300)]
ggml : minor coding style (#22308)

4 months agojinja : remove unused header (#22310)
Georgi Gerganov [Fri, 24 Apr 2026 08:01:46 +0000 (11:01 +0300)]
jinja : remove unused header (#22310)

4 months agoserver : fix swa-full logic (#22288)
Georgi Gerganov [Fri, 24 Apr 2026 07:17:37 +0000 (10:17 +0300)]
server : fix swa-full logic (#22288)

4 months agoserver: rename debug tags to match --cache-idle-slots naming (#22292)
Yes You Can Have Your Own [Fri, 24 Apr 2026 06:28:44 +0000 (09:28 +0300)]
server: rename debug tags to match --cache-idle-slots naming (#22292)

4 months agohexagon: add SOLVE_TRI op (#21974)
Mengsheng Wu [Fri, 24 Apr 2026 01:39:13 +0000 (09:39 +0800)]
hexagon: add SOLVE_TRI op (#21974)

* hexagon: add SOLVE_TRI op

* ggml: fix TODO description for solve_tri

* hexagon: rm unused variable/function warnings

* hexagon: chunk vs batch processingfor better thread utilization

* hexagon: vectorize partial f32 loads

* hexagon: move HVX f32 add/sub/mul wrappers to hvx-base.h

---------

Co-authored-by: Todor Boinovski <redacted>
4 months agofix(shader): handle the buffer aliasing for rms fuse (#22266)
Chen Yuan [Thu, 23 Apr 2026 23:32:59 +0000 (19:32 -0400)]
fix(shader): handle the buffer aliasing for rms fuse (#22266)

4 months agocli: Remove redundant local sampling variables (#20429) (#22264)
Ethan Turner [Thu, 23 Apr 2026 22:53:23 +0000 (15:53 -0700)]
cli: Remove redundant local sampling variables (#20429) (#22264)

This change implements the third requested change in issue 20429.
Because defaults.sampling contains the reasoning budget token count and
the reasoning budget message, it's not necessary to assign them to
struct variables.

4 months agohexagon: add support for basic and extended Op profiling (#22269)
Max Krasnyansky [Thu, 23 Apr 2026 21:17:21 +0000 (14:17 -0700)]
hexagon: add support for basic and extended Op profiling  (#22269)

* hexagon: restore HTP_OPMASK_QUEUE

* hexagon: honor OPMASK_SKIP_COMPUTE in hmx-matmul

* hex-prof: restore op profiling

* hex-prof: enable PMU

* hexagon: simplify and improve op-queuing with full profiling support

Add separate profile descriptors.

* hexagon: remove opsync and rename opmask into opstage

opsync is no longer needed since the profiler is fully async now.
opmask name was confusing and opstage is more accurate.

* hexagon: refactor opbatch queue handling

* hexagon: add iface hooks for enabling profiler from the host

Also move all the PMU setup stuff out of the hex-utils since it's not inteded for normal use.

* hexagon: make profiler mode configurable

On older devices getting PMU counters is expensive so it's now optional.

* hexagon: add support for setting profiler pmu events from env

* hexagon: simplify profiler output (no need to print buffs, etc)

* hexagon: simplify pmu counter formating

* hexagon: add a simple profile post-proc tool

* hex-prof: add support for reading logs from stdin

* hexagon: document GGML_HEXAGON_PROFILE

* hex-prof: update default width for dims field

* hex-prof: fix linter warnings and errors

* Update ggml/src/ggml-hexagon/htp/htp-ops.h

Co-authored-by: Sigbjørn Skjæret <redacted>
* Update scripts/snapdragon/ggml-hexagon-profile.py

Co-authored-by: Sigbjørn Skjæret <redacted>
---------

Co-authored-by: Trivikram Reddy <redacted>
Co-authored-by: Sigbjørn Skjæret <redacted>
4 months agoEnable testing on Snapdragon devices (#21051)
Shreya Jain [Thu, 23 Apr 2026 20:08:10 +0000 (13:08 -0700)]
Enable testing on Snapdragon devices (#21051)

* Add the tests that we want to run on external CI

* remove extra files

* Fixes python issues, reove the deadlock on CI

* remove unecessary changes

* use override to ty.toml

* fix pre-commit and try tests with secret in external repo not upstream

* skip if key is unavailable

* Fix feedback

* switch hexagon to snapdragon

* cleanup

* fix secrets

* remove the copyrights at the top of the files

4 months agoserver : convert_anthropic_to_oai: also copy chat_template_kwargs (#22154)
srkizer [Thu, 23 Apr 2026 18:32:46 +0000 (03:32 +0900)]
server : convert_anthropic_to_oai: also copy chat_template_kwargs (#22154)

4 months agoserver: fix heap-buffer-overflow from negative n_discard (CVE-2026-21869) (#22267)
Song Li [Thu, 23 Apr 2026 16:39:07 +0000 (12:39 -0400)]
server: fix heap-buffer-overflow from negative n_discard (CVE-2026-21869) (#22267)

* server: clamp n_discard to non-negative at JSON parse boundary (CVE-2026-21869)

A negative n_discard from client JSON causes heap-buffer-overflow in
update_slots() context-shift loop (CWE-787, CVSS 8.8). Clamp to 0 at
ingress; n_discard=0 already triggers auto-discard (n_left/2).

Ref: GHSA-8947-pfff-2f3c

* cont : cleaner

* cont : cleanerer

* cont : cleanest

---------

Co-authored-by: Georgi Gerganov <redacted>
4 months agovendor : update LibreSSL to 4.3.1 (#22285)
Adrien Gallouët [Thu, 23 Apr 2026 15:45:56 +0000 (17:45 +0200)]
vendor : update LibreSSL to 4.3.1 (#22285)

Signed-off-by: Adrien Gallouët <redacted>
4 months agoserver: (anthropic API) fix prefix caching (#21793)
kvc0 [Thu, 23 Apr 2026 15:45:02 +0000 (08:45 -0700)]
server: (anthropic API) fix prefix caching (#21793)

When testing claude code against llama.cpp, I noticed that only
n_past 18577 was used even when context was 60k or more. The log
in llama-server says:
```
slot update_slots: id  3 | task 10342 | old: ... ; cch= | defa0;You are
slot update_slots: id  3 | task 10342 | new: ... ; cch= | 1c8b4;
```
I observed that the cch value changed every time. Reading about that,
the x-anthropic-billing-header system message seems to be specially
handled inside of the anthropic api. I could remove it, but there
is a meaningful string sometimes included at the end. So instead,
I just replace the changing cch checksum with fffff.

I'm treating this as an anthropic message body API detail - I think this
is the right way to do this, but by all means please correct me!

It's always 5 hexadecimal characters, but I've written the replacement
defensively in case they change the protocol.

4 months agofix build number for sycl release (#22283)
Sigbjørn Skjæret [Thu, 23 Apr 2026 13:38:58 +0000 (15:38 +0200)]
fix build number for sycl release (#22283)

4 months agomodel-conversion : fix mmproj output file name [no ci] (#22274)
Daniel Bevenius [Thu, 23 Apr 2026 13:07:38 +0000 (15:07 +0200)]
model-conversion : fix mmproj output file name [no ci] (#22274)

* model-conversion : fix mmproj output file name [no ci]

This commit updates the convert-model.sh script to properly handle
mmproj output files.

The motivation for this that currently the same name as the original
model is used as the mmproj file, which causes the original model to
be overwritten and no mmproj-<model_name>.gguf to be created.

* model-conversion : use MODEL_NAME [no ci]

4 months agocli : cleanup auto-completion code (#21745)
Matthias Straka [Thu, 23 Apr 2026 13:03:28 +0000 (15:03 +0200)]
cli : cleanup auto-completion code (#21745)

4 months agoserver: Enable transcriptions API for LFM2-Audio (#22000)
Tarek Dakhran [Thu, 23 Apr 2026 08:47:26 +0000 (10:47 +0200)]
server: Enable transcriptions API for LFM2-Audio (#22000)

4 months agometal : fix event synchronization (#22260)
Georgi Gerganov [Thu, 23 Apr 2026 05:22:49 +0000 (08:22 +0300)]
metal : fix event synchronization (#22260)

4 months agogitignore: add AGENTS.local.md (#22246)
Georgi Gerganov [Thu, 23 Apr 2026 05:22:24 +0000 (08:22 +0300)]
gitignore: add AGENTS.local.md (#22246)

* gitignore: add AGENTS.local

Assisted-by: llama.cpp:local pi
Signed-off-by: Georgi Gerganov <redacted>
* gitignore: rename AGENTS.local to AGENTS.local.md

Assisted-by: llama.cpp:local pi
Signed-off-by: Georgi Gerganov <redacted>
---------

Signed-off-by: Georgi Gerganov <redacted>
4 months agoggml-base: use MATH_LIBRARY variable instead of hardcoded 'm' (#22239)
Georgi Gerganov [Thu, 23 Apr 2026 05:22:08 +0000 (08:22 +0300)]
ggml-base: use MATH_LIBRARY variable instead of hardcoded 'm' (#22239)

Fixes #22237 — the find_library(MATH_LIBRARY m) result was being
discarded and the target linked against the literal 'm' string.

This prevents users from overriding the math library (e.g. for AMD AOCL)
via CMake variables. Now the discovered MATH_LIBRARY is used directly.

4 months ago[SYCL] Update oneapi 2025.3.3, Seperate SYCL build, release Ubuntu 24 package. (...
Neo Zhang Jianyu [Thu, 23 Apr 2026 05:21:36 +0000 (13:21 +0800)]
[SYCL] Update oneapi 2025.3.3, Seperate SYCL build, release Ubuntu 24 package. (#22078)

* upgrade oneAPI to 2025.3.3

* update

* seperate SYCL CI and support release binary package for ubuntu 24

* add dependence

* remove wrong copy lines

* add missed line

* remove other task to test the release for SYCL

* rm more for test release

* fix file name

* correct the error in running

* support build for fp32/fp16

* rm ubuntu-24-sycl-fp16 for duplicated

* refactor build setting

* update guide for ubuntu 24 release package, restore the release.yml for other backend

* user docker replace to install oneAPI

* use download installation package to replace docker

* use wget to download and install oneapi, replace the apt cmd

* enable ccache for oneAPI installation

* fix format error

* enable cache for oneAPI installation

* update guide

* Update .github/workflows/release.yml

Co-authored-by: Sigbjørn Skjæret <redacted>
* Update .github/workflows/release.yml

Co-authored-by: Sigbjørn Skjæret <redacted>
* Update .github/workflows/build-sycl.yml

Co-authored-by: Sigbjørn Skjæret <redacted>
* Update .github/workflows/release.yml

Co-authored-by: Sigbjørn Skjæret <redacted>
---------

Co-authored-by: Sigbjørn Skjæret <redacted>
4 months agoconvert : Handle ModelOpt produced mixed precision model during convert to GGUF ...
ynankani [Thu, 23 Apr 2026 05:19:51 +0000 (05:19 +0000)]
convert : Handle ModelOpt produced mixed precision model during convert to GGUF (#22247)

* Handle ModelOpt produced mixed precision model during convert to GGUF

* Apply suggestions from code review

Co-authored-by: Sigbjørn Skjæret <redacted>
* Apply suggestions from code review

Co-authored-by: Sigbjørn Skjæret <redacted>
---------

Co-authored-by: Sigbjørn Skjæret <redacted>
4 months agosycl : fused MoE mul_mat_vec_q for TG (#21920)
abotsis [Thu, 23 Apr 2026 05:18:56 +0000 (23:18 -0600)]
sycl : fused MoE mul_mat_vec_q for TG (#21920)

* sycl : fused MoE mul_mat_vec_q for TG

Create an MMVQ kernel so ggml_sycl_mul_mat_id can consolidate
n_experts_used matmuls in a single kernel launch. The kernel
also reads expert IDs directly, removing a per-call host sync.

This is similar to the CUDA backend's ggml_cuda_mul_mat_vec_q*
paths.

All types supported in the current MMVQ are supported here as well:
Q2_K, Q3_K, Q4_K, Q5_K, Q6_K, Q4_0, Q4_1, Q5_0, Q5_1, Q8_0

It will fall back to the existing per-expert path when src0 has been rewritten
by opt_for_reorder(), and for any shape the fused path doesn't handle.

test-backend-ops passes for supported type/shape combos.

Benchmark: Qwen3-Next-35B-A3B Q4_K_M on Intel Arc B70 (SYCL0),
baseline 707c0b7a6, 16k context, -fa 0.

  build/bin/llama-bench -hf unsloth/Qwen3.5-35B-A3B-GGUF:Q4_K_M \
    -p 1024 -n 128 -d 16384 -ngl 99 -fa 0 -ub 2048 -r 2 -dev SYCL0

Before (3 runs on 707c0b7a6):

  | test            |            run 1 |            run 2 |            run 3 |
  | --------------- | ----------------:| ----------------:| ----------------:|
  | pp1024 @ d16384 |   533.26 ±  4.87 |   535.20 ±  2.78 |   524.27 ±  3.10 |
  | tg128  @ d16384 |    33.47 ±  0.02 |    33.31 ±  0.02 |    33.17 ±  0.05 |

After (3 runs on 707c0b7a6 + this patch):

  | test            |            run 1 |            run 2 |            run 3 |
  | --------------- | ----------------:| ----------------:| ----------------:|
  | pp1024 @ d16384 |   534.06 ±  0.97 |   531.95 ±  0.02 |   520.94 ± 20.10 |
  | tg128  @ d16384 |    45.85 ±  0.21 |    45.95 ±  0.45 |    46.22 ±  0.12 |

disclosure: Claude wrote it, but I reviewed and understand the implementation
(albeit my C is a little rusty).

* sycl: also support nvfp4 and mxfp4 expert types

* sycl: terser comments/nested dispatch in response to review

* sycl: more comment cleanup in mmvq.cpp/hpp

---------

Co-authored-by: Debian <redacted>
4 months agoggml-webgpu: add support for im2col (#22259)
Chen Yuan [Thu, 23 Apr 2026 03:17:41 +0000 (23:17 -0400)]
ggml-webgpu: add support for im2col (#22259)

* shader(im2col): implement the im2col shader

* shader(im2col): clean the formatting issues

* shader(im2col): clean the editorconfig checker warning

* fix(shader): address the workgroup issues of im2col and conv2d

4 months agoCUDA: fuse relu + sqr (#22249)
Anav Prasad [Thu, 23 Apr 2026 02:28:56 +0000 (02:28 +0000)]
CUDA: fuse relu + sqr (#22249)

4 months agoHIP: flip GGML_HIP_GRAPHS to default on (#22254)
uvos [Thu, 23 Apr 2026 00:34:31 +0000 (02:34 +0200)]
HIP: flip GGML_HIP_GRAPHS to default on (#22254)

In #11362 hip graph was disabled by default as, at the time, its performance impact was negative. Due to improvements in rocm and our usage and construction of graphs this is no longer true, so lets change the default.

4 months ago[WebGPU] Implement async tensor api and event api (#22099)
Nikhil Jain [Wed, 22 Apr 2026 17:52:01 +0000 (10:52 -0700)]
[WebGPU] Implement async tensor api and event api  (#22099)

* Only run webgpu CI on my fork

* Implement set_tensor_async

* Implement synchronize api

* Implement event creation and deletion API

* Cleanup

* Cleanup

* Comment out jobs for local CI run

* Add webgpu only workflow

* Delete .github/workflows/build-webgpu.yml

* Cleanup

* Cleanup

* Update API with function handlers

* Run clang-format

* Replace one-shot buffer with a direct queue.WriteBuffer using the buffer context

4 months agoggml-webgpu: Add fused RMS_NORM + MUL (#21983)
Masashi Yoshimura [Wed, 22 Apr 2026 17:51:40 +0000 (02:51 +0900)]
ggml-webgpu: Add fused RMS_NORM + MUL (#21983)

* fused rms_norm_mul + mul

* Add GGML_WEBGPU_DISABLE_FUSION for being able to disable kernel fusion.

* Decouple num_fused_ops from webgpu_context; misc cleanup

* Fix eps handling and remove disable_fusion.

* Fix not to use c++20 initializers.

4 months agochat: fix parallel_tool_calls default setting based on model capabilities, add tests...
Piotr Wilkin (ilintar) [Wed, 22 Apr 2026 16:10:56 +0000 (18:10 +0200)]
chat: fix parallel_tool_calls default setting based on model capabilities, add tests for parallel tool calls and structured outputs (#22217)

* chat: fix parallel_tool_calls default setting based on model capabilities, add tests for parallel tool calls and structured outputs

* Fix ty errors.

* Fix flake8 err

4 months agospeculative-simple : add checkpoint support (#22227)
Georgi Gerganov [Wed, 22 Apr 2026 12:44:45 +0000 (15:44 +0300)]
speculative-simple : add checkpoint support (#22227)

* speculative-simple : add checkpoint support

* cont : fix build

4 months agosycl: Improve mul_mat_id memory efficiency and add BF16 fast path (#22119)
Akarshan Biswas [Wed, 22 Apr 2026 12:32:56 +0000 (18:02 +0530)]
sycl: Improve mul_mat_id memory efficiency and add BF16 fast path (#22119)

* sycl: size mul_mat_id staging buffers by routed rows

Previously src1_contiguous/dst_contiguous in ggml_sycl_mul_mat_id were
sized to ggml_nelements(src1/dst), which over-allocates when ne12 > 1
and can fail with UR_RESULT_ERROR_OUT_OF_HOST_MEMORY on Level Zero for
MoE models (notably with --cpu-moe). Size them by the actual number of
routed rows (ids->ne[1] * n_ids) instead.

* sycl: add bf16 mul_mat fast path via DNNL

When src0 is BF16 (commonly the case for lm_head / output.weight), the
existing f16 path is skipped because bf16 isn't covered, and the f32
fallback dequantizes the entire src0 slab to f32 in a single pool alloc
(row_diff*ne00 floats). For large-vocab models this can reach several
GB and fail with UR_RESULT_ERROR_OUT_OF_HOST_MEMORY on Level Zero.

Add a bf16xbf16 -> f32 DNNL matmul fast path that uses the bf16 storage
in place and only materializes a small src1 bf16 conversion buffer. bf16
matmul accumulates in f32, so it's correct even when the op requests
GGML_PREC_F32 (as lm_head does).

- gemm.hpp: map bfloat16 to dnnl::memory::data_type::bf16.
- convert.{hpp,cpp}: expose ggml_get_to_bf16_sycl for f32/f16/bf16 -> bf16.
- ggml-sycl.cpp: take the bf16 path early in ggml_sycl_op_mul_mat_sycl
  when DNNL and GGML_SYCL_HAS_BF16 are both available.

4 months agomtmd: also support LLAMA_ROPE_TYPE_NONE (#22242)
Xuan-Son Nguyen [Wed, 22 Apr 2026 10:16:29 +0000 (12:16 +0200)]
mtmd: also support LLAMA_ROPE_TYPE_NONE (#22242)

4 months agoserver: ignore reasoning content from transcription api (#21905)
Xuan-Son Nguyen [Wed, 22 Apr 2026 10:10:50 +0000 (12:10 +0200)]
server: ignore reasoning content from transcription api (#21905)

4 months agomtmd, llama : Update HunyuanVL vision-language model support (#22037)
manayang [Wed, 22 Apr 2026 09:58:43 +0000 (17:58 +0800)]
mtmd, llama : Update HunyuanVL vision-language model support (#22037)

* mtmd, llama : add HunyuanVL vision-language model support

- add LLM_ARCH_HUNYUAN_VL with M-RoPE (XD-RoPE) support
- add PROJECTOR_TYPE_HUNYUANVL with PatchMerger vision encoder
- add HunyuanVL-specific M-RoPE position encoding for image tokens
- add GGUF conversion for HunyuanVL vision and text models
- add smoke test in tools/mtmd/tests.sh

* fix: fix HunyuanVL XD-RoPE h/w section order

* fix: Remove redundant code

* convert : fix HunyuanOCR / HunyuanVL conversion
 - Tested locally: both HunyuanOCR and HunyuanVL-4B convert to GGUF
 - successfully and produce correct inference output on Metal (F16 / Q8_0).

* clip : fix -Werror=misleading-indentation in bilinear resize

* fix CI: convert_hf_to_gguf type check error
 - convert_hf_to_gguf.py: give HunyuanVLTextModel.__init__ an explicit `dir_model: Path` parameter so ty can infer the type for load_hparams instead of reporting `Unknown | None`.

---------

Co-authored-by: wendadawen <redacted>
4 months agocommon: Refactoring sampler parameters (#20429) (#22233)
Ethan Turner [Wed, 22 Apr 2026 08:40:19 +0000 (01:40 -0700)]
common: Refactoring sampler parameters (#20429) (#22233)

This change refactors the reasoning_budget_message parameter from the
common params into the sampling parameters specifically. It also removes
the reasoning_budget common parameter and standardizes on the existing
reasoning_budget_tokens parameter in the sampling configuration.

Issue: https://github.com/ggml-org/llama.cpp/issues/20429
Original PR: https://github.com/ggml-org/llama.cpp/pull/20297

4 months agocommon/chat, server: refactor, move all conversion functions to common, add tests...
Piotr Wilkin (ilintar) [Wed, 22 Apr 2026 08:28:45 +0000 (10:28 +0200)]
common/chat, server: refactor, move all conversion functions to common, add tests (#20690)

* Refactor conversion functions

4 months agoggml-webgpu(shader): support conv2d kernels. (#21964)
Chen Yuan [Wed, 22 Apr 2026 03:18:57 +0000 (23:18 -0400)]
ggml-webgpu(shader): support conv2d kernels.  (#21964)

* ggml(webgpu): fix the busy-polls in Emscripten  in the waitAny after #20618, and remove the busy webgpu log

* Merge with upstream

* Fix GET_ROWS packed integer NaN when using f16 as memory buffer in shader quants

* Update Unary wgsl EXP and EXPM1 for f16 stability

* Fix GET_ROWS IQ4_XS strcut for NaN f16 canonicalization

* Fix numerical percision for unary sqrt when working with f16

* Fix NaN canonicalization for packed integers using f16

* Update err threshold for binary div ops when using f16

* backend: Keep one Dawn/WebGPU instance alive for the lifetime of the static backend

* clean: uncomment existing code logs

* clean: clean the unncessary debug info

* Refactor and generalize dequant helpers

* Remove deprecated quant structs

* Refactor shader defines to reduce repetition

* Remove error override for F16 type

* fix: fix the accidential removal of the proper initialization of ctx

* clean: clean legacy and format code

* fix: did not modify tests ops

* shader(conv2d): add conv2d shader kernels and pass f32 and f16 tests

* shader(conv2d): fix the out of bounds memory access in the weight indexing

* shader(conv2d): clean unused variables and optimize the computation

* merge: use the new entries function

* clean: address the formatting issues

* clean: address the warning issues

* clear: clean the shader editorconfig-checker issues

* clear: clean the shader editorconfig-checker with utf-8

---------

Co-authored-by: Jeremy J. Hartmann <redacted>
4 months agohexagon: add support for FILL op (#22198)
Aparna M P [Tue, 21 Apr 2026 23:24:20 +0000 (04:54 +0530)]
hexagon: add support for FILL op (#22198)

Co-authored-by: Max Krasnyansky <redacted>
4 months agoggml-webgpu: reset CPU/GPU profiling time when freeing context (#22050)
Masashi Yoshimura [Tue, 21 Apr 2026 23:05:21 +0000 (08:05 +0900)]
ggml-webgpu: reset CPU/GPU profiling time when freeing context (#22050)

* Reset the CPU/GPU profiling time when freeing context.

* move GPU profiling time from global context to webgpu_context.

4 months agoserver: allow cancel loading model (#21814)
Xuan-Son Nguyen [Tue, 21 Apr 2026 22:26:09 +0000 (00:26 +0200)]
server: allow cancel loading model (#21814)

4 months agoHexagon: DAIG op (#22195)
Shreya Jain [Tue, 21 Apr 2026 21:16:04 +0000 (14:16 -0700)]
Hexagon: DAIG op (#22195)

* hexagon: Add DIAG op

* hexagon: add HVX support and DMA double buffering

* hexagon: fix fatal error

* hexagon: remove as many pragma(s) as possible

4 months agohexagon: fix missing v79 entry in libggml-htp.inf (#22194)
Mengsheng Wu [Tue, 21 Apr 2026 20:53:44 +0000 (04:53 +0800)]
hexagon: fix missing v79 entry in libggml-htp.inf (#22194)

4 months agospec : reset i_last when low acceptance streak occurs (#22168)
Paul Dubs [Tue, 21 Apr 2026 18:29:07 +0000 (20:29 +0200)]
spec : reset i_last when low acceptance streak occurs (#22168)

By resetting i_last to zero, we will include the current context when rebuilding the speculative map.

4 months agomtmd: Add support for Reka Edge 2603 (#21616)
Kwa Jie Hao [Tue, 21 Apr 2026 18:02:49 +0000 (02:02 +0800)]
mtmd: Add support for Reka Edge 2603 (#21616)

* feat: (vocab) fix stray text appended in llama_decode_text

Remove accidental concatenation of the full `text` string when
formatting UNK_BYTE hex escapes. Only the closing "]" should be appended.

* feat(mtmd): add Yasa2 vision encoder support

Add a Yasa2 (ConvNeXtV2-based) vision encoder for reka-edge:
- Register PROJECTOR_TYPE_YASA2 and tensor name definitions
- Add yasa2_block/yasa2_stage model structs
- Implement graph builder with ConvNeXt stages, GRN, adaptive pooling
- Wire into clip.cpp switch statements and mtmd.cpp init_vision
- Use mtmd_image_preprocessor_fixed_size for image preprocessing

* feat(chat): add reka-edge template handler (tools, thinking)

- Add chat-reka.cpp/h implementing PEG-based parser for reka-edge format
- Add Reka-Edge.jinja chat template
- Detect reka-edge template in try_specialized_template()
- Add LLAMA_EXAMPLE_MTMD to chat-template-file arg

* feat: add reka vlm to gguf conversion script

Converts Reka Yasa2 hf checkpoints to GGUF format:
- Text decoder: Llama-arch with tiktoken/BPE vocab
- Mmproj (--mmproj): ConvNeXt vision backbone + language_projection
- Generates 2D sincos positional embeddings for vision encoder

* test: add Reka Edge chat template and parser tests

- test-chat-template: oracle tests comparing Jinja engine output vs
  common_chat_templates_apply for text, tools, thinking, images, video
- test-chat: PEG parser tests for Reka Edge format, round-trip tests
  for image/video content parts, common path integration tests

* scripts: add Reka Edge mixed quantization helper

Q4_0 base quantization with Q8_0 override for the last 8 transformer
blocks (layers 24-31) via --tensor-type regex.

* fix: adapt chat-reka and tests to upstream API

- Use autoparser::generation_params (not templates_params)
- Add p.prefix(generation_prompt) to PEG parser
- Simplify reasoning parser to match LFM2 pattern
- Remove image/video oracle tests (unsupported by oaicompat parser;
  no other multimodal models test this path)

* fix: avoid duplicate tensor loading in yasa2 vision encoder

TN_YASA_PATCH_W and TN_PATCH_EMBD both resolve to "v.patch_embd.weight",
causing the same tensor to be loaded twice into ctx_data and overflowing
the memory pool. Reuse the tensors already loaded by the common section.

* chore: update image pre-processing settings

The reka-edge model depends on the following settings in an older
fork of llama.cpp:
1. Fixed square resize
2. BICUBIC
3. add_padding=false

In current llama.cpp, this means setting:
- image_resize_algo = RESIZE_ALGO_BICUBIC
- image_resize_pad = false

* chore: remove reka gguf conversion script

* chore: remove reka quantization script

* chore: remove unnecessary changes from PR scope

This commit removes a couple of unnecessary changes for the PR scope:
1. BPE decoder bug fix - this affects reka edge because there's a bug
in our tokenization that doesn't represent <think> tokens as special
tokens. However this isn't meant to be a thinking model so when run
with --reasoning off the edge case does not affect us

2. --chat-template-file support from llama-mtmd-cli - the focus is on
llama-server and the reka edge gguf contains the necessary metadata
to detect the chat template

3. reka edge oracle test cases - no other model has similar test cases,
so I removed it for standardization

* chore: remove unnecessary ggml_cast

This commit removes unnecessary ggml_cast after updating the
reka vlm -> gguf conversion script on hugging face.

* chore: remove redundant code

* chore: remove unnecessary ggml_cont calls

This commit removes all ggml_cont calls except the four that
precede ggml_reshape_3d/ggml_reshape_4d. Those are necessary
because ggml_reshape recomputes strides assuming contiguous
layout and asserts ggml_is_contiguous.

Other operations (ggml_mean, ggml_add, ggml_mul etc.) use
stride-based indexing and handle non-contiguous inputs
correctly and so we are ok to remove ggml_cont for those.

* chore: remove unnecessary ggml_repeat calls

This commit removes unnecessary ggml_repeat calls because the underlying
ops already broadcast automatically.

Every ggml_repeat in yasa2.cpp was expanding a smaller tensor to match
a larger one's shape before passing both to an elementwise op (ggml_add,
ggml_sub, ggml_mul, or ggml_div). This is unnecessary because all four
of these ops already support broadcasting internally.

* chore: restore ggml_cont needed for cpu operations

* refactor: locate reka chat template handler in chat.cpp

* chore: remove unnecessary warmup tokens

* chore: add code comments on image_resize_pad

* chore: remove custom reka parsing code

* chore: revert common/chat.cpp

* Uncomment debug logging for PEG input parsing

---------

Co-authored-by: Piotr Wilkin (ilintar) <redacted>
4 months agoarg : add --spec-default (#22223)
Georgi Gerganov [Tue, 21 Apr 2026 16:52:02 +0000 (19:52 +0300)]
arg : add --spec-default (#22223)

4 months agoopenvino: driver setup, CI split, thread safety, and NPU optimizations (#21944)
Zijun Yu [Tue, 21 Apr 2026 15:58:34 +0000 (23:58 +0800)]
openvino: driver setup, CI split, thread safety, and NPU optimizations (#21944)

* Thread safety per request only

* Fix ROPE yarn case

* Fix sticky stateful config

* Use i4/i8 directly for symmetric quant

* Use weightless caching

* Add WeightlessCacheAttribute to reduce NPU memory usage

* Gelu tanh support (#125)

* Imrope support (#126)

* fix(openvino): explicit ov::Tensor frees in ggml_backend_openvino_free

* add GPU,NPU support in OV Dockerfile

* add build-openvino.yml ci

* Fix sticky stateful config

* add concurrency to ov-gpu ci runs. Move OV CI to build-openvino.yml

* fix thread-safety of shared runtime context

* rope type abstraction for frontend translations

* fix editorconfig

---------

Co-authored-by: Mustafa Cavus <redacted>
Co-authored-by: Dan Hoffman <redacted>
Co-authored-by: Ravi Panchumarthy <redacted>
4 months agovendor : update cpp-httplib to 0.43.1 (#22143)
Alessandro de Oliveira Faria (A.K.A.CABELO) [Tue, 21 Apr 2026 14:45:48 +0000 (11:45 -0300)]
vendor : update cpp-httplib to 0.43.1 (#22143)

* vendor : update cpp-httplib to 0.43.0

* vendor : update cpp-httplib to 0.43.0

4 months agometal : workaround macOS GPU interactivity watchdog (#22216)
Georgi Gerganov [Tue, 21 Apr 2026 14:24:55 +0000 (17:24 +0300)]
metal : workaround macOS GPU interactivity watchdog (#22216)

4 months agovulkan: Support F16 OP_FILL (#22177)
Jeff Bolz [Tue, 21 Apr 2026 09:01:56 +0000 (11:01 +0200)]
vulkan: Support F16 OP_FILL (#22177)

4 months agomtmd: correct mtmd_decode_use_mrope() (#22188)
Xuan-Son Nguyen [Tue, 21 Apr 2026 08:53:37 +0000 (10:53 +0200)]
mtmd: correct mtmd_decode_use_mrope() (#22188)

4 months agollama-ext : fix exports (#22202)
Georgi Gerganov [Tue, 21 Apr 2026 08:04:46 +0000 (11:04 +0300)]
llama-ext : fix exports (#22202)

4 months agosync : ggml
Georgi Gerganov [Tue, 21 Apr 2026 08:03:42 +0000 (11:03 +0300)]
sync : ggml

4 months agoggml : bump version to 0.10.0 (ggml/1463)
Georgi Gerganov [Tue, 21 Apr 2026 08:02:56 +0000 (11:02 +0300)]
ggml : bump version to 0.10.0 (ggml/1463)

4 months agofit-params : refactor + add option to output estimated memory per device (#22171)
Georgi Gerganov [Tue, 21 Apr 2026 06:54:36 +0000 (09:54 +0300)]
fit-params : refactor + add option to output estimated memory per device (#22171)

* fit-params : add option to output estimated memory per device

* cont : minor

* cont : refactor

* cont : move fit params implementation to libcommon

* cont : header

* cont : headers

* cont : codeowners

4 months agoserver : fix hardcoded proxy connection timeout in router mode (#18760) (#22003)
xris99 [Tue, 21 Apr 2026 04:41:14 +0000 (06:41 +0200)]
server : fix hardcoded proxy connection timeout in router mode (#18760) (#22003)

Fixes: https://github.com/ggml-org/llama.cpp/issues/18760
Co-authored-by: Christian <redacted>
4 months agoggml-cuda: flush legacy pool on OOM and retry (#22155)
leonardHONG [Mon, 20 Apr 2026 21:30:38 +0000 (05:30 +0800)]
ggml-cuda: flush legacy pool on OOM and retry (#22155)

* ggml-cuda: flush legacy pool on OOM and retry

Signed-off-by: 梁厚宏 <redacted>
* Address review comments: add explicit sync, update destructor, clean up MUSA macros

Signed-off-by: 梁厚宏 <redacted>
---------

Signed-off-by: 梁厚宏 <redacted>
4 months agomtmd: correct get_n_pos / get_decoder_pos (#22175)
Xuan-Son Nguyen [Mon, 20 Apr 2026 21:29:19 +0000 (23:29 +0200)]
mtmd: correct get_n_pos / get_decoder_pos (#22175)

4 months agoserver : remove /api endpoints (#22165)
Georgi Gerganov [Mon, 20 Apr 2026 17:41:19 +0000 (20:41 +0300)]
server : remove /api endpoints (#22165)

* server : remove /api endpoints

* cont : remove /api/tags

4 months agoTensor-parallel: Fix delayed AllReduce on Gemma-4 MoE (#22129)
Gaurav Garg [Mon, 20 Apr 2026 16:25:39 +0000 (21:55 +0530)]
Tensor-parallel: Fix delayed AllReduce on Gemma-4 MoE (#22129)

* Fix delayed AllReduce on Gemma-4 MoE

Skip forward past nodes that don't consume the current one, and allow a chain of MULs.

* Check for all sources before skipping nodes

* Address review comments

4 months agoTP: fix 0-sized tensor slices, AllReduce fallback (#21808)
Johannes Gäßler [Mon, 20 Apr 2026 16:09:39 +0000 (18:09 +0200)]
TP: fix 0-sized tensor slices, AllReduce fallback (#21808)

* TP: fix 0-sized tensor slices, AllReduce fallback

* fix layer structure <-> GPU count aliasing

* add missing std::fill

* fix CUDA device set, max ggml ctx size

4 months agoggml-cpu: Optimized x86 and generic cpu q1_0 dot (follow up) (#21636)
pl752 [Mon, 20 Apr 2026 16:02:54 +0000 (21:02 +0500)]
ggml-cpu: Optimized x86 and generic cpu q1_0 dot (follow up) (#21636)

* Implemented optimized q1_0 dot for x86 and generic

* Removed redundant helper definition

* Removed two redundant instructions from AVX q1_0 dot

* Fixed inconsistency with fp16 conversion for generic q1_0 dot and deduplicated generic fallback

* Style cleanup around AVX q1_0 dot

* Replaced explicitly unrolled blocks with inner for loop for q1_0

* Replaced scalar ARM q1_0 impl with new generic one

4 months agoggml-webgpu: updated matrix-vector multiplication (#21738)
neha-ha [Mon, 20 Apr 2026 14:37:17 +0000 (07:37 -0700)]
ggml-webgpu: updated matrix-vector multiplication (#21738)

* merged properly, but slow q3_k and q5_k with u32 indexing

* Start on new mat-vec

* New format float paths working

* Working q4_0

* Work on remaining legacy q-types

* port k-quants to new matvec

* remove old shader

* Remove old constants, format

* remove accidental file

---------

Co-authored-by: Neha Abbas <redacted>
Co-authored-by: Reese Levine <redacted>
4 months agomtmd: refactor mtmd_decode_use_mrope (#22161)
Xuan-Son Nguyen [Mon, 20 Apr 2026 12:45:11 +0000 (14:45 +0200)]
mtmd: refactor mtmd_decode_use_mrope (#22161)