]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/log
pkg/ggml/sources/llama.cpp
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)

4 months agofix: GLM-DSA crash in llama-tokenize when using vocab_only (#22102)
SamareshSingh [Mon, 20 Apr 2026 07:32:46 +0000 (02:32 -0500)]
fix: GLM-DSA crash in llama-tokenize when using vocab_only (#22102)

* llama: fix crash in print_info for GLM-DSA when vocab_only is set

* addressed code review comments

* cont : simplify

---------

Co-authored-by: Georgi Gerganov <redacted>
4 months agoserver : refactor "use checkpoint" logic (#22114)
Georgi Gerganov [Mon, 20 Apr 2026 05:42:37 +0000 (08:42 +0300)]
server : refactor "use checkpoint" logic (#22114)

4 months ago[SYCL] Fix reorder MMVQ assert on unaligned vocab sizes (#22035)
Katostrofik [Mon, 20 Apr 2026 05:39:45 +0000 (01:39 -0400)]
[SYCL] Fix reorder MMVQ assert on unaligned vocab sizes (#22035)

* [SYCL] Fix reorder MMVQ assert on unaligned vocab sizes

The reorder mul_mat_vec_q dispatchers for Q4_0, Q8_0, Q4_K, and Q6_K
asserted that block_num_y was a multiple of 16 subgroups. Models with
a vocab size not divisible by 16 (for example HY-MT at 120818) aborted
on model load when the output projection tripped the assert.

I replaced the assert with padding: block_num_y now rounds up to a
whole number of subgroup-sized workgroups. The kernel already has the
row bounds check (`if (row >= nrows) return;`) so the extra padded
threads early-exit cleanly. Row values are uniform across a subgroup
so the collective reduce stays safe.

For aligned vocab sizes the padded block_num_y equals the old value,
so the kernel launch is identical and there is no regression.

Thanks to @arthw for flagging the relationship to #21527.

Fixes #22020.

AI assisted coding, tested on Intel B70 hardware.

* sycl: use WARP_SIZE for num_subgroups in reorder MMVQ launches

Replaces the hardcoded 16 with WARP_SIZE in the four reorder_mul_mat_vec
launch helpers (Q4_0, Q8_0, Q4_K, Q6_K). Compile-time no-op on the Intel
target where WARP_SIZE is 16, but makes the relationship to subgroup
size explicit. Per review by @NeoZhangJianyu on #22035.

Assisted by Claude.

4 months agoserver: rename --clear-idle to --cache-idle-slots (#21741)
Yes You Can Have Your Own [Mon, 20 Apr 2026 05:30:24 +0000 (08:30 +0300)]
server: rename --clear-idle to --cache-idle-slots (#21741)

4 months agovendor : update cpp-httplib to 0.42.0 (#21781)
Alessandro de Oliveira Faria (A.K.A.CABELO) [Sun, 19 Apr 2026 22:41:43 +0000 (19:41 -0300)]
vendor : update cpp-httplib to 0.42.0 (#21781)

4 months agoCUDA: refactor mma data loading for AMD (#22051)
Johannes Gäßler [Sun, 19 Apr 2026 16:26:59 +0000 (18:26 +0200)]
CUDA: refactor mma data loading for AMD (#22051)

* CUDA: refactor mma data loading for AMD

* fix CDNA MMQ occupancy

* fix CDNA3 mma

* fix RDNA3 compile

4 months agocommon/autoparser : allow space after tool call (#22073)
Aldehir Rojas [Sun, 19 Apr 2026 11:28:35 +0000 (06:28 -0500)]
common/autoparser : allow space after tool call (#22073)

4 months agoHIP: Remove unesscary NCCL_CHECK (#21914)
uvos [Sun, 19 Apr 2026 10:59:44 +0000 (12:59 +0200)]
HIP: Remove unesscary NCCL_CHECK (#21914)

4 months agomtmd: add pos_0 to mtmd_image_tokens_get_decoder_pos (breaking change) (#22082)
Xuan-Son Nguyen [Sun, 19 Apr 2026 09:57:21 +0000 (11:57 +0200)]
mtmd: add pos_0 to mtmd_image_tokens_get_decoder_pos (breaking change) (#22082)

* mtmd: add pos_0 to mtmd_image_tokens_get_decoder_pos

* fix build

4 months agoggml : reduce CPU overhead in meta backend (#22041)
Gaurav Garg [Sun, 19 Apr 2026 09:48:35 +0000 (15:18 +0530)]
ggml : reduce CPU overhead in meta backend (#22041)

* cache subgraph splits when cgraph is unchanged

Skip per-call subgraph construction in ggml_backend_meta_graph_compute when the same ggml_cgraph is used consecutively.

Assign uid to every sub-graph so that CUDA's fast uid check path hits too.

* Address review comments

* Keep the scope as is

* Rename last_uid and last_n_subgraphs field. Remove last_max_tmp_size field. Refactor code.

* Address review comments

* Update ggml/src/ggml-backend-meta.cpp

Co-authored-by: Johannes Gäßler <redacted>
* Update ggml/src/ggml-backend-meta.cpp

Co-authored-by: Johannes Gäßler <redacted>
---------

Co-authored-by: Johannes Gäßler <redacted>
4 months agoci : install spirv-headers for vulkan-cross (#22109)
Sigbjørn Skjæret [Sun, 19 Apr 2026 07:32:08 +0000 (09:32 +0200)]
ci : install spirv-headers for vulkan-cross (#22109)

4 months agoconvert : support sentence-transformer 5.4 config files (#22087)
Dowon [Sun, 19 Apr 2026 07:25:39 +0000 (16:25 +0900)]
convert : support sentence-transformer 5.4 config files (#22087)

* convert : support sentence-transformer 5.4 config files

* fix: embeddinggemma

* fix: mapping

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

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

Co-authored-by: Sigbjørn Skjæret <redacted>
4 months agocmake: remove CMP0194 policy to restore MSVC builds (#21934)
texasich [Sun, 19 Apr 2026 07:25:05 +0000 (02:25 -0500)]
cmake: remove CMP0194 policy to restore MSVC builds (#21934)

#21630 added the CMP0194 NEW policy to silence a CMake warning, but on Windows runners it caused CMake to prefer the MinGW toolchain for ASM and broke MSVC builds.

Reverting only that policy block restores the previous working behavior. The CMake 4.1+ warning comes back, but that is cosmetic and does not break any platform.

Reported-by: oobabooga
Refs: #21630

Co-authored-by: texasich <redacted>
4 months agoserver : speculative checkpointing (#19493)
Sascha Rogmann [Sun, 19 Apr 2026 07:24:06 +0000 (09:24 +0200)]
server : speculative checkpointing (#19493)

* server : speculative decoding using checkpoints

* server : fix draft check with checkpoints

* server : rename spec vars

* server : log levels

* server : refactored spec logic to speculative.cpp

* server : renamed spec checkpoints option

* server : fix spec checkpoints, logging

* speculative : checkpoints with draft model, logging

* server : n_tokens_cur and create_checkpoint in draft

* server : fix server_speculative_callback (slot.id)

* spec : fix ngram-map/begin idx_last_check

* spec : init ckpt (begin() wasn't called)

* chore: update webui build output

* server : restore sampler in spec checkpoint and clear mem

* cont : avoid --spec-use-checkpoints argument

* cont : remove server_prompt_checkpoint_with_size

* spec : rename (leave_draft_state)

* cont : clean-up

* cont : do not ignore partial drafts even if the are short

* cont : spec callback owned by session

* cont : simplify

* cont : avoid empty speculative session

* cont : simplify

* cont : simplify

* cont : enable mtmd speculative decoding

* cont : keep the spec sampler alive

* cont : simplify

* cont : fix nullptr deref + draft checkpoints

* cont : remove common_speculative_accept_response

* cont : remove callback

* cont : simplify

* cont : minor

* cont : simplify

* cont : fix accepted number

---------

Co-authored-by: Georgi Gerganov <redacted>
4 months agorpc : refactor the RPC transport (#21998)
Radoslav Gerganov [Sun, 19 Apr 2026 07:21:53 +0000 (10:21 +0300)]
rpc : refactor the RPC transport (#21998)

* rpc : refactor the RPC transport

Move all transport related code into a separate file and use the
socket_t interface to hide all transport implementation details.

* fix win32

* better socket_t construction

4 months agoserver: Expose `media_tag` on /props endpoint. (#22028)
Cetarthoriphros [Sat, 18 Apr 2026 22:27:17 +0000 (19:27 -0300)]
server: Expose `media_tag` on /props endpoint. (#22028)

4 months agomodel : refactor bias tensor variable names (#22079)
Sigbjørn Skjæret [Sat, 18 Apr 2026 18:12:00 +0000 (20:12 +0200)]
model : refactor bias tensor variable names (#22079)

* refactor bias tensor variable names

* use create_tensor_qkv for jina-bert-v2

4 months agoandroid : libcommon -> libllama-common (#22076)
Sigbjørn Skjæret [Sat, 18 Apr 2026 09:19:40 +0000 (11:19 +0200)]
android : libcommon -> libllama-common (#22076)

4 months agoggml-backend-meta: add multi-segment read support in get_tensor (#22063)
SamareshSingh [Sat, 18 Apr 2026 08:04:51 +0000 (03:04 -0500)]
ggml-backend-meta: add multi-segment read support in get_tensor (#22063)

4 months agoci : free disk space for rocm release (#22012)
Sigbjørn Skjæret [Sat, 18 Apr 2026 07:37:30 +0000 (09:37 +0200)]
ci : free disk space for rocm release (#22012)

4 months agoconvert : fix (ignore for now) typings errors (#22002)
Sigbjørn Skjæret [Sat, 18 Apr 2026 07:36:41 +0000 (09:36 +0200)]
convert : fix (ignore for now) typings errors (#22002)

4 months agollama: fit ctx size for CPU only (#21568)
Johannes Gäßler [Sat, 18 Apr 2026 06:16:04 +0000 (08:16 +0200)]
llama: fit ctx size for CPU only (#21568)

4 months agoggml-webgpu: fix compiler warnings and refactor FlashAttention encoding (#21052)
Reese Levine [Fri, 17 Apr 2026 16:17:11 +0000 (09:17 -0700)]
ggml-webgpu: fix compiler warnings and refactor FlashAttention encoding (#21052)

* Update workflows to remove dependence on llvmpipe

* Try setting Dawn_DIR

* remove c++20 initializers

* Move to proper guid

* Try avoiding segfaults on vulkan backend process exit

* Remove compiler warnings on parameter casting

* Fix soft_max and update reg_tile accumulation to f32 for better precision

* Refactor flash_attn a bit

* remove c++20 initializers and format

* Increase div precision for NVIDIA

* revert div precision and comment out ggml-ci node for now

* Formatting

* Try debugging on a failing CI node

* Revert "Try debugging on a failing CI node"

This reverts commit 1971e33cba919915e12bcfd5828abfbd54ca942e.

4 months agoCUDA: use LRU based eviction for cuda graphs (#21611)
Aman Gupta [Fri, 17 Apr 2026 15:24:21 +0000 (23:24 +0800)]
CUDA: use LRU based eviction for cuda graphs (#21611)

* CUDA: use a ring-buffer for cuda graphs

* bump limit to 128

* use LRU eviction

* better naming

* do periodic clean-up

4 months agoci : add android arm64 build and release (#21647)
Yuri Khrustalev [Fri, 17 Apr 2026 09:32:24 +0000 (05:32 -0400)]
ci : add android arm64 build and release (#21647)

* server: respect the ignore eos flag

* ci: add android arm64 build and release

* patch

* pin android-setup actions to v4

* Apply suggestions from code review

Co-authored-by: Sigbjørn Skjæret <redacted>
* lf in the suggestion

---------

Co-authored-by: Sigbjørn Skjæret <redacted>
4 months agomtmd: add missing struct tag (#22023)
65a [Fri, 17 Apr 2026 08:48:33 +0000 (01:48 -0700)]
mtmd: add missing struct tag (#22023)

4 months agolibs : rename libcommon -> libllama-common (#21936)
Georgi Gerganov [Fri, 17 Apr 2026 08:11:46 +0000 (11:11 +0300)]
libs : rename libcommon -> libllama-common (#21936)

* cmake : allow libcommon to be shared

* cmake : rename libcommon to libllama-common

* cont : set -fPIC for httplib

* cont : export all symbols

* cont : fix build_info exports

* libs : add libllama-common-base

* log : add common_log_get_verbosity_thold()

4 months agomodel : Gemma4 model type detection (#22027)
Eric Zhang [Fri, 17 Apr 2026 08:07:11 +0000 (16:07 +0800)]
model : Gemma4 model type detection (#22027)

* model : Gemma4 model type detection

* model : Gemma4 model type detection

4 months agoopencl: refactor q8_0 set_tensor and mul_mat host side dispatch for Adreno (#21938)
lhez [Fri, 17 Apr 2026 05:28:33 +0000 (22:28 -0700)]
opencl: refactor q8_0 set_tensor and mul_mat host side dispatch for Adreno (#21938)

* opencl: refactor q8_0 gemm/gemv Adreno dispatch

* opencl: refactor q8_0 set_tensor

* opencl: fix whitespace

4 months agocli : use get_media_marker (#22017)
Sigbjørn Skjæret [Thu, 16 Apr 2026 22:12:31 +0000 (00:12 +0200)]
cli : use get_media_marker (#22017)

4 months agocmake: use glob to collect src/models sources (#22005)
Xuan-Son Nguyen [Thu, 16 Apr 2026 21:25:16 +0000 (23:25 +0200)]
cmake: use glob to collect src/models sources (#22005)

4 months agohexagon: optimize HMX matmul operations (#21071)
nullname [Thu, 16 Apr 2026 20:48:34 +0000 (04:48 +0800)]
hexagon: optimize HMX matmul operations (#21071)

* optimize hmx_mat_mul functions by calculating row and column tiles upfront

* refactor core_dot_chunk_fp16 to use size_t for tile counts and improve readability

* wip

* set scale outside of loop

* wip

* refactor core_mma_chunk_fp16 and mat_mul_qk_0_d16a32 to use size_t for tile counts

* wip

* wip

* refactor transfer_output_chunk_fp16_to_fp32 to use size_t for dimensions

* refactor core_dot_chunk_fp16 to use size_t for tile row stride calculation

* wip

* refactor hmx_mat_mul functions to use hvx_vec_splat_f16 for column scales initialization

* refactor hmx_mat_mul_permuted_w16a32_batched to streamline scale setting and locking

* refactor core_dot_chunk_fp16 to improve tile stride calculations for output

* refactor hmx_mat_mul functions to use Q6_V_vsplat_R for column scales initialization

* fix compiling error

* wip

* optimize row and column tile indexing in core_mma_chunk_fp16 function

* wip

* Revert "wip"

This reverts commit cde679eff79c4a28dd2d89d32f710015e09592b6.

* Add size limit check for HAP_mmap in htp_iface_mmap and drop_mmap functions

* wip

4 months agomodel: using single llm_build per arch (#21970)
Xuan-Son Nguyen [Thu, 16 Apr 2026 19:10:22 +0000 (21:10 +0200)]
model: using single llm_build per arch (#21970)

* model: using single llm_build per arch

* fix merge

* nits

4 months agoopencl: add q5_K gemm and gemv kernels for Adreno (#21595)
shaofeiqi [Thu, 16 Apr 2026 19:08:33 +0000 (12:08 -0700)]
opencl: add q5_K gemm and gemv kernels for Adreno (#21595)

4 months agoserver: tests: fetch random media marker via /apply-template (#21962) (#21980)
Pascal [Thu, 16 Apr 2026 17:46:21 +0000 (19:46 +0200)]
server: tests: fetch random media marker via /apply-template (#21962) (#21980)

* server: tests: fetch random media marker via /apply-template (#21962 fix)

* server: allow pinning media marker via LLAMA_MEDIA_MARKER env var

get_media_marker() checks LLAMA_MEDIA_MARKER at first call and uses it
as-is if set, falling back to the random marker otherwise.

Tests no longer need to fetch the marker dynamically via /apply-template:
the fixture sets LLAMA_MEDIA_MARKER=<__media__> so the hardcoded prompts
work as before.

Address review feedback from ngxson

* server: make get_media_marker() thread-safe via magic statics

Use a C++11 static local with a lambda initializer instead of a global
static with an empty-check. The runtime guarantees initialization exactly
once without explicit locking.

Address review feedback from ggerganov

* nits

* nits

4 months agomodel : refactor QKV into common build_qkv and create_tensor_qkv helpers (#21245)
PikaPikachu [Thu, 16 Apr 2026 15:41:34 +0000 (23:41 +0800)]
model : refactor QKV into common build_qkv and create_tensor_qkv helpers (#21245)

* model : refactor QKV into common build_qkv and create_tensor_qkv helpers

* model : extend build_qkv to bert/mpt/dbrx/olmo/lfm2/nemotron-h/granite-hybrid/gemma3n-iswa/t5-dec and fix wqkv_s

4 months agomodel : support NVFP4 tensors for Gemma4 (#21971)
Sigbjørn Skjæret [Thu, 16 Apr 2026 14:51:47 +0000 (16:51 +0200)]
model : support NVFP4 tensors for Gemma4 (#21971)

* support nvfp4 tensors for Gemma4

* add wo_s to build_attn

* add wo_s to build_attn

* fix glm4

4 months agocodeowners: add team member comments (#21714)
Ruben Ortlam [Thu, 16 Apr 2026 10:13:11 +0000 (12:13 +0200)]
codeowners: add team member comments (#21714)

4 months agoConvert: Fix NemotronH Config Parsing (#21664)
Anav Prasad [Thu, 16 Apr 2026 10:11:45 +0000 (10:11 +0000)]
Convert: Fix NemotronH Config Parsing (#21664)

* fix NemotronH vocab loading by using trust_remote_code for unsupported config patterns

* fix NemotronH tokenizer loading by overriding set_vocab with trust_remote_code

4 months agoggml: add graph_reused (#21764)
Aman Gupta [Thu, 16 Apr 2026 09:21:28 +0000 (17:21 +0800)]
ggml: add graph_reused (#21764)

* ggml: add graph_reused

* use versioning instead of reuse flag

* increment version with atomic

* use top bits for split numbering

* add assert

* move counter to ggml.c

* set uid in split_graph only

* fix windows

* address further review comments

* get next_uid rather than doing bit manipulation

* rename + add comment about uid

4 months agometal: Implement ROLL op (#21946)
Kusha Gharahi [Thu, 16 Apr 2026 08:54:37 +0000 (03:54 -0500)]
metal: Implement ROLL op (#21946)

* nix: support unified apple-sdk

* Impl roll op for Metal

* Revert "nix: support unified apple-sdk"

This reverts commit abfa473360471532c547de8b202c780507924d4b.

* update ops.md

* update op docs

4 months agoggml-cpu: add 128-bit RVV implementation for Quantization Vector Dot (#20633)
rehan-10xengineer [Thu, 16 Apr 2026 08:15:15 +0000 (13:15 +0500)]
ggml-cpu: add 128-bit RVV implementation for Quantization Vector Dot (#20633)

* ggml-cpu: add 128-bit impls for i-quants, ternary quants

* ggml-cpu: add 128-bit impls for iq2_xs, iq3_s, iq3_xxs, tq2_0

Co-authored-by: Rehan Qasim <redacted>
* ggml-cpu: refactor; add rvv checks

---------

Co-authored-by: taimur-10x <redacted>
Co-authored-by: Rehan Qasim <redacted>
4 months agoggml : implemented simd_gemm kernel for riscv vector extension (#20627)
rehan-10xengineer [Thu, 16 Apr 2026 08:14:26 +0000 (13:14 +0500)]
ggml : implemented simd_gemm kernel for riscv vector extension (#20627)

Co-authored-by: Rehan Qasim <redacted>
4 months agodevops : added spirv-headers to nix (#21965)
Yuannan [Thu, 16 Apr 2026 08:12:52 +0000 (08:12 +0000)]
devops : added spirv-headers to nix (#21965)