]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/log
pkg/ggml/sources/llama.cpp
5 weeks agoggml: guard KleidiAI DOWNLOAD_EXTRACT_TIMESTAMP for cmake < 3.24 (#20767)
Sundaram krishnan [Thu, 19 Mar 2026 19:36:23 +0000 (01:06 +0530)]
ggml: guard KleidiAI DOWNLOAD_EXTRACT_TIMESTAMP for cmake < 3.24 (#20767)

5 weeks agoci : improve action for duplicate issue (#20772)
Georgi Gerganov [Thu, 19 Mar 2026 19:11:53 +0000 (21:11 +0200)]
ci : improve action for duplicate issue (#20772)

* ci : show thinking traces of the agent

* cont : increase thinking

* cont : remove agent files

* cont : move the model selection to the provider

5 weeks agohip: Avoid compiler bug in RDNA code generation during debug builds on Windows (...
Rail Chabdarov [Thu, 19 Mar 2026 18:14:08 +0000 (19:14 +0100)]
hip: Avoid compiler bug in RDNA code generation during debug builds on Windows (#20655)

5 weeks agoserver: Add cached_tokens info to oaicompat responses (#19361)
Ryan Goulden [Thu, 19 Mar 2026 18:09:33 +0000 (11:09 -0700)]
server: Add cached_tokens info to oaicompat responses (#19361)

* tests : fix fetch_server_test_models.py

* server: to_json_oaicompat cached_tokens

Adds OpenAI and Anthropic compatible information about the
number of cached prompt tokens used in a response.

5 weeks agochat : handle tool calls with no required args in TAG_WITH_TAGGED format (#20764)
James O'Leary [Thu, 19 Mar 2026 16:53:11 +0000 (09:53 -0700)]
chat : handle tool calls with no required args in TAG_WITH_TAGGED format (#20764)

* chat : handle tool calls with no required args in TAG_WITH_TAGGED format

* Update tests/test-chat.cpp [no ci]

Co-authored-by: Aldehir Rojas <redacted>
---------

Co-authored-by: Piotr Wilkin (ilintar) <redacted>
Co-authored-by: Aldehir Rojas <redacted>
5 weeks agoci : clarify gh command for viewing issues (#20766)
Georgi Gerganov [Thu, 19 Mar 2026 16:43:54 +0000 (18:43 +0200)]
ci : clarify gh command for viewing issues (#20766)

5 weeks agohexagon: add Matrix Extensions (HMX) for Hexagon NPU backend (#20693)
Yiwei Shao [Thu, 19 Mar 2026 16:11:06 +0000 (09:11 -0700)]
hexagon: add Matrix Extensions (HMX) for Hexagon NPU backend (#20693)

* migrate(vtcm): unify VTCM management for HMX merge

- Add HMX fields to htp_context (#ifdef HTP_HAS_HMX): hmx_enabled,
  hmx_dma, vtcm_scratch_size, exp2_table
- Add HTP_VTCM_SESSION_HOLD CMake option (default ON): hold VTCM for
  entire session instead of per-op acquire/release
- Add vtcm_op_acquire/vtcm_op_release inline wrappers: no-op in
  session-hold mode, delegate in per-op mode
- Add VTCM tail reservation for precompute tables (256KB, 64KB aligned)
  in htp_iface_start under HTP_HAS_HMX
- Add HMX init/cleanup hooks in htp_iface_start/stop
- Add precompute table recovery in vtcm_acquire after VTCM preemption
- Do NOT migrate vtcm_mgr from htp-ops-lib (replaced by tail reservation)

* migrate(repack): replace x4x2 with HMX tile-permuted super-block format

- Add hmx_block_q4_0/q8_0 struct definitions (scales-first + sequential quants)
- Implement forward repack: repack_q4_0_to_hmx_superblock, repack_q8_0_to_hmx_superblock, repack_f16_to_tile_permuted
- Implement inverse repack for get_tensor debug verification
- Route set_tensor/get_tensor via opt_arch >= 73 to HMX path, else existing HVX x4x2
- MXFP4 on v73+ falls back to HVX x4x2 repack (not memcpy)
- Extend supports_op: add IQ4_NL for v73+, F16 tile alignment checks
- Tail blocks (K not multiple of 256): repack to x4x2 via pad-repack-truncate
- Add CMake GGML_HEXAGON_HMX_TAIL_HVX option (default ON); OFF rejects non-256-aligned K in supports_op

* migrate(dma): add dma_queue_push_1d() convenience wrapper for HMX ops

Add 1D linear DMA transfer helper to hex-dma.h for upcoming HMX op
migration. Reuses existing dma_queue_flush() for sync points instead
of adding redundant dma_queue_drain().

* migrate(hmx): reorganize HMX files into htp/hmx/ and simplify HMX locking

Move all 14 HMX-related files from htp/ to htp/hmx/ subdirectory for
cleaner separation between HVX and HMX code. Simplify HMX hardware
locking by replacing the two-level lock design (SHARED HAP lock +
custom asm spin-lock) with direct HAP_compute_res_hmx_lock/unlock
on the existing vtcm_rctx, which already has HMX capability.

Key changes:
- Create htp/hmx/ subdirectory with all HMX infrastructure and ops
- Replace hmx_mgr_ctx_id + spin-lock with HAP_compute_res_hmx_lock(vtcm_rctx)
- Remove hmx_manager_enable/disable_execution() (SHARED lock no longer needed)
- Add hmx_set_vtcm_state() call in main.c (was missing, caused null globals)
- Update main.c includes to use hmx/ prefix
- Clean up duplicate declarations from hmx-worker-pool.h

* migrate(hmx-infra): consolidate HMX infrastructure into htp_context

- Remove hmx-mgr.c/h: eliminate global HMX state singleton, thread htp_context through all HMX ops
- Remove hmx-worker-pool.c/h: replace separate HMX worker pool with main worker_pool API (worker_pool_run_func)
- Replace hmx_unit_acquire/release with direct HAP_compute_res_hmx_lock/unlock on ctx->vtcm_rctx
- Remove HTP_VTCM_SESSION_HOLD compile option: always use per-op vtcm_acquire/release
- Remove hmx_dma from htp_context: HMX ops use ctx->dma[0] instead of separate DMA queue
- Simplify main.c init/cleanup: remove hmx_manager_setup/reset and vtcm_op_acquire/release wrappers
- Delete upstream llama.cpp AGENTS.md (not applicable to fork)

* migrate(flash-attn): remove HTP_EXP2_TABLE_COPIES, use single exp2 table

- Remove HTP_EXP2_TABLE_COPIES compile definition and CMake cache variable
- Remove table duplication loop in precompute-table.c
- Remove worker_index % N sub-table indexing in hmx-flash-attn-ops.c
- Fix table_size to 65536 (single 64 KB copy) in main.c

The exp2 lookup table is read-only; concurrent VTCM reads do not cause
bank conflicts, so duplicating the table wastes 192 KB of VTCM for no
benefit.

* migrate(dsp-main): add HMX priority dispatch in packet_callback

- Add proc_hmx_matmul_req() wrapper for HMX mat_mul (F16 and quantized types)
- Add proc_hmx_flash_attn_req() wrapper for HMX simple_flash_attn (FP16 only, falls back to HVX for non-FP16)
- Add proc_hmx_rms_norm_req() wrapper using hvx_rms_norm_f32
- Route MUL_MAT, FLASH_ATTN_EXT, RMS_NORM through HMX path when ctx->hmx_enabled
- Split RMS_NORM and SCALE into separate case blocks for independent dispatch
- All HMX wrappers guarded by #ifdef HTP_HAS_HMX

* migrate(cmake-dsp): add HMX source files and -mhmx for v73+ skels

Add HTP_VTCM_SESSION_HOLD option (default ON) and v73+ HMX build
integration: compile hmx-matmul-ops, hmx-flash-attn-ops,
hmx-rms-norm-ops and precompute-table into v73/v75/v79/v81 skels
with -mhmx flag and HTP_HAS_HMX=1 definition. v68/v69 skels remain
unchanged.

* migrate(hmx-ops): fix compile errors in HMX ops for ggml struct compatibility

- hmx-matmul-ops.c: include ggml-common.h for block_q4_0/block_q8_0 definitions
- hmx-matmul-ops.c: rename quants->qs, scale->d to match upstream ggml field names
- hmx-flash-attn-ops.c: suppress -Wunused-function/-Wunused-variable warnings
- hmx-flash-attn-ops.c: inline ctx->n_threads, remove unused n_workers variable

* hmx: set Q/O element type to fp16 for flash attention

The llama.cpp integration passes fp16 Q/O tensors, so qo_fp32_element
should be false to match the actual data layout.

* hexagon: unify HMX weight format to x4x2, add IQ4_NL and DSP-side fallback

Remove the v73+ HMX-specific super-block/tile-permuted weight format
and unify all architectures on the HVX x4x2 packed format. The DSP now
decides at runtime whether to use the HMX or HVX matmul path based on
dimension constraints (M%32, N%32, K%256 alignment), rather than the
host rejecting ops in supports_op. This simplifies the host repack
logic, eliminates ~400 lines of HMX super-block code, and adds IQ4_NL
quantization support across host and DSP.

Key changes:
- Remove hmx_block_q4_0/q8_0 types, repack functions, and F16 tile
  permutation (ggml-hexagon.cpp, hmx-quants.h)
- Simplify set_tensor/get_tensor to always use x4x2 repack, add IQ4_NL
- Force is_host=false so tensor copies go through format conversion
- Add HTP_TYPE_IQ4_NL to DSP message protocol (htp-msg.h)
- Rewrite DSP dequantizers to work directly on x4x2 layout
  (hmx-matmul-ops.c)
- Fix mxclracc.hf placement: clear per output tile, not once globally
- Move HMX eligibility checks to DSP proc_hmx_matmul_req (main.c)
- Remove dma_queue_push_1d wrapper, use 2D DMA for weight sub-blocks
- Add VTCM allocation overflow asserts
- Remove GGML_HEXAGON_HMX_TAIL_HVX build option (CMakeLists.txt)

* Enhance HMX debugging capabilities with new tile dumping functions

- Introduced hmx_dump_tile_mem and hmx_dump_fp32_tile_region for improved memory layout visualization of tile data.
- Updated hmx_dump_tile_rows to provide raw memory output for debugging.
- Added debug logging for activation and weight tile pairs during processing to facilitate troubleshooting.
- Refined existing macros for dumping HVX vector values to streamline debugging output.

These changes aim to enhance the debugging experience for HMX matmul operations, ensuring better visibility into data handling and transformations.

* OK for small mat mul

* hexagon: fix UDMA roiwidth 16-bit overflow in HMX matmul DMA transfers

The UDMA descriptor roiwidth field is 16-bit (max 65535), but large matrix
DMA transfers (e.g. 32×2304 = 73728 bytes) exceeded this limit, causing
truncated transfers and NaN results. Fix by using 2D DMA (per-row stride ×
n_rows) instead of 1D (total_size × 1) for all 4 DMA push calls in both
x4x2 and fp16 weight paths.

Also includes:
- Use standard vlut16 instead of _nomatch variant for dequantization
- Add per-tile vscatter drain barrier for correctness
- Add compile-time HMX_DEBUG_TRACE_VALUES instrumentation (disabled by default)

* hexagon: remove HMX RMS norm fallback and re-enable matmul pipeline

Remove hmx-rms-norm-ops.c as the HVX RMS norm offers no benefit over
the generic unary path. Re-enable DMA pipeline mode for QK matmul.

* hexagon: guard all HMX matmul DMA transfers against UDMA 16-bit field overflow

All UDMA type1 descriptor fields (roiwidth, roiheight, srcstride, dststride)
are 16-bit (max 65535). Commit 40d2a9cc fixed roiwidth overflow in the
non-pipeline path by switching from 1D to 2D DMA, but the pipeline path
(3 call sites) was left unchanged and still used 1D DMA with
chunk_size = n_cols * row_stride as roiwidth, which overflows for any
practical matrix size when the pipeline is active.

Add a local hmx_dma_push_safe() helper that transparently handles overflow:
- Fast path (zero overhead): all params fit in 16 bits -> direct call.
- Contiguous block: reshapes into a single 2D descriptor with sub_width
  that fits in 16 bits, preserving async DMA behavior.
- Stride overflow: row-by-row fallback for future large-k models where
  per-row stride itself exceeds 65535.

Convert all 8 external dma_queue_push calls in hmx-matmul-ops.c to use
the safe helper, including the 3 pipeline sites (1D -> 2D fix), the
FP16 and x4x2 weight paths, qweight_fetch sub-block DMA, and the
output-stationary activation fetch.

* hexagon: multithread activation/output transfer and add HMX matmul fallback

- Replace single-threaded transfer_activation_chunk_fp32_to_fp16 with
  transfer_activation_chunk_multithread across all HMX matmul paths
- Add multi-threaded transfer_output_chunk_multithread for FP16-to-FP32
  output store, following the same worker pool pattern
- Rename transfer_activation_chunk_no_prefetch back to
  transfer_activation_chunk_fp32_to_fp16 and clean up stale comments
- Add HVX fallback in proc_hmx_matmul_req when HMX matmul returns error

* [todo]: dynamic alloc vtcm, cause prefill regression.

* hexagon: constrain HMX mxmem tile load region to avoid VTCM bank boundary faults

Set activation/weight mxmem Rt to 2047 for single-tile loads and document the 4MB VTCM bank boundary constraint, preventing precise bus errors when dynamic VTCM allocation places tiles near bank edges.

* hexagon: split unaligned-M HMX matmul into HMX+HVX phases

- keep HMX for the 32-aligned head rows and process tail rows with HVX
- force re-quantization for HVX tail after HMX phase to avoid stale VTCM state
- preserve fallback behavior when N is unaligned or no aligned M rows exist

* hexagon: batch-4 Q4_0 dequantize fast path and remove debug traces

Add dequantize_x4x2_q4_0_x4groups_hvx() that processes 4 contiguous
K-tiles with a single vmemu + vlut16 per row, reducing per-tile overhead.
The dequantize loop now takes the batch-4 path when 4 aligned K-tiles
are available within the same column tile, falling back to the original
single-tile path otherwise.

Also removes HMX_DEBUG_TRACE_VALUES instrumentation blocks that are no
longer needed.

* hexagon: abort on DSP error and fix HMX-to-HVX fallback quantize flag

Promote DSP response error from log to GGML_ABORT for fail-fast
behavior. Clear SKIP_QUANTIZE flag when falling back from HMX to HVX
matmul so the HVX path correctly re-quantizes activations.

* hexagon: support batch matmul. This fix perplexity issue
The problem comes from Grouped-Query Attention(GQA).  Strides between batches are not well respected
TODO: optimize batch matmul to reuse weights between batches.

* hexagon: reuse weights in fp16 batch matmul

* hexagon: remove unused HMX flash attention operations and precomputation table, remove the log system for test

* hexagon: remove unused HVX math helpers, debug infrastructure, and stale build options

* hexagon: fix HMX not enabled due to missing force_hvx parameter in IDL

* hexagon: remove the unnecessary changes not related to HMX

* hexagon: bypass HMX by default

* hexagon: add upstream repo link to htp-ops-lib ported file headers

* hexagon: restore host buffer support

* hexagon: add HMX=1 option for the adb scripts

* hex-hmx: improve DMA pipelining

* hex-hmx: further improvements to dma pipelining

* hex-hmx: minor cleanup

* hex-hmx: move hmx lock out of inner loops/calls

* hex-hmx: remove unnecessary state and wrappers

* hex-hmx: remove hmx dir and unify f32 to f16 conversions

* hex-hmx: further unify hvx conversions

* hex-hmx: revert f16 converter to the original for now

* hex-hmx: minor cleanup for f16 to f32 converter

* hex-mm: replace incorrect fp16-to-fp32 hmx converter and reformated related code

* hex-dma: move chanied dma push into hex-dma.h header and update hmx-mm

* hex-mm: use hex_is_aligned instead of a duplicated hmx_is_aligned

* hex-mm: use hvx_vec_splat_f16 in the hmx code

* hex-mm: use VLEN and HTP types in hmx-code

* hex-mm: remove duplicate QK and defs

* hexagon: pre-shuffle quants before vlut16

* hexagon: enable HMX by default

* hex-mm: code indent fixes for hmx-matmul

* hexagon: update hex-utils to include align/smin/etc helpers and use that in hmx mm

* hex-mm: more formatting fixes

* hex-mm: minor naming updates in hmx code

* hex-mm: remove leftover from rebase conflict

* Fix the incorrect indents

---------

Co-authored-by: Max Krasnyansky <redacted>
5 weeks agoci : add hip quality check (#20430)
uvos [Thu, 19 Mar 2026 16:05:44 +0000 (17:05 +0100)]
ci : add hip quality check (#20430)

* CI: add hip quality check

* Update scripts/hip/gcn-cdna-vgpr-check.py

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

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

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

Co-authored-by: Sigbjørn Skjæret <redacted>
* Update scripts/hip/gcn-cdna-vgpr-check.py

Co-authored-by: Sigbjørn Skjæret <redacted>
* Update scripts/hip/gcn-cdna-vgpr-check.py

Co-authored-by: Sigbjørn Skjæret <redacted>
* Update scripts/hip/gcn-cdna-vgpr-check.py

Co-authored-by: Sigbjørn Skjæret <redacted>
* Update scripts/hip/gcn-cdna-vgpr-check.py

Co-authored-by: Sigbjørn Skjæret <redacted>
* Revert "Update .github/workflows/hip-quality-check.yml"

This reverts commit efa0bfcdb01dfac0feee674987a0482d50f46145.

* scripts: gcn-cdna-vgpr-check.py: enforce int type for total_vgprs

* scripts: gcn-cdna-vgpr-check.py: add flash attention instances to ignore list

* Bump ccache version

* Add mssing seperators to list

---------

Co-authored-by: Sigbjørn Skjæret <redacted>
5 weeks agocommon/parser: add proper reasoning tag prefill reading (#20424)
Piotr Wilkin (ilintar) [Thu, 19 Mar 2026 15:58:21 +0000 (16:58 +0100)]
common/parser: add proper reasoning tag prefill reading (#20424)

* Implement proper prefill extraction

* Refactor cli parameters, update docs, move reasoning budget sampler part to common/reasoning-budget.cpp

* Update tools/server/server-task.cpp

* refactor: move grammars to variant, remove grammar_external, handle exception internally

* Make code less C++y

Co-authored-by: Georgi Gerganov <redacted>
5 weeks agoggml webgpu: ops support for qwen3.5 (SET, TRI_SOLVE, SSM_CONV, GATED_DELTA_NET)...
Reese Levine [Thu, 19 Mar 2026 15:45:28 +0000 (08:45 -0700)]
ggml webgpu: ops support for qwen3.5 (SET, TRI_SOLVE, SSM_CONV, GATED_DELTA_NET) + GET_ROWS optimization (#20687)

* Implement l2_norm, set, tri

* Add DIAG/SOLVE_TRI

* Add SSM_CONV

* Better get_rows and gated_delta_net to support qwen3.5

* Clean up, update ops.md

* Fix binding_index type for wasm

* Fix read write annotations

* cleanups

5 weeks agocommon : add LLAMA_ARG_SPEC_TYPE (#20744)
ddh0 [Thu, 19 Mar 2026 15:16:55 +0000 (10:16 -0500)]
common : add LLAMA_ARG_SPEC_TYPE (#20744)

5 weeks agoci : add action for finding duplicate issues (#20756)
Georgi Gerganov [Thu, 19 Mar 2026 14:17:37 +0000 (16:17 +0200)]
ci : add action for finding duplicate issues (#20756)

* ci : add action for finding duplicates issues

* cont : gen info

* cont : formatting

* cont : fix

* cont : instructions

* cont : bump checkout action

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

Co-authored-by: Sigbjørn Skjæret <redacted>
5 weeks agoServer becomes the source of truth for sampling parameter defaults (#20558)
Pascal [Thu, 19 Mar 2026 12:20:39 +0000 (13:20 +0100)]
Server becomes the source of truth for sampling parameter defaults (#20558)

* webui: make server the source of truth for sampling defaults

* webui: fix Custom badge for sampling parameters

* webui: log user overrides after server sync

* chore: update webui build output

* fix: Default values for sampling settings config object

* chore: update webui build output

---------

Co-authored-by: Aleksander Grygier <redacted>
5 weeks agomtmd: add clip_graph::build_mm() (#20751)
Xuan-Son Nguyen [Thu, 19 Mar 2026 12:11:39 +0000 (13:11 +0100)]
mtmd: add clip_graph::build_mm() (#20751)

* clip: add build_mm()

* apply to all models

* add TODO for bias overload

5 weeks agoWebUI: Persist the on/off state of the MCP servers for new conversations (#20750)
Pascal [Thu, 19 Mar 2026 11:54:06 +0000 (12:54 +0100)]
WebUI: Persist the on/off state of the MCP servers for new conversations (#20750)

* webui: add persistent storage for MCP server on/off state in new chats

* webui: simplify MCP enabled checks, remove dead server.enabled fallback

* chore: update webui build output

* chore: update webui build output

---------

Co-authored-by: Aleksander Grygier <redacted>
5 weeks agowebui: Improve model parsing logic + add unit tests (#20749)
Aleksander Grygier [Thu, 19 Mar 2026 11:25:50 +0000 (12:25 +0100)]
webui: Improve model parsing logic + add unit tests (#20749)

* add tests for model id parser

* add test case having activated params

* add structured tests for model id parser

* add ToDo

* feat: Improve model parsing logic + tests

* chore: update webui build output

---------

Co-authored-by: bluemoehre <redacted>
5 weeks agoconvert : support is_causal hyperparameter (#20746)
Dowon [Thu, 19 Mar 2026 10:41:11 +0000 (19:41 +0900)]
convert : support is_causal hyperparameter (#20746)

* convert : support is_causal hyperparameter

Check for the `is_causal` attribute in the Hugging Face model configuration and include it in the GGUF metadata.

* Update convert_hf_to_gguf.py

Co-authored-by: Sigbjørn Skjæret <redacted>
* style: fix F541 f-string is missing placeholders

---------

Co-authored-by: Sigbjørn Skjæret <redacted>
5 weeks agocommon : fix gpt-oss content removal (#20745)
Aldehir Rojas [Thu, 19 Mar 2026 10:40:39 +0000 (05:40 -0500)]
common : fix gpt-oss content removal (#20745)

5 weeks agovulkan: dequantize iq4_xs 4 at a time (#20657)
Eve [Thu, 19 Mar 2026 10:32:04 +0000 (10:32 +0000)]
vulkan: dequantize iq4_xs 4 at a time (#20657)

5 weeks agocmake : fix build warning when kleidiai is enabled (#20457)
Charles Xu [Thu, 19 Mar 2026 08:14:48 +0000 (09:14 +0100)]
cmake : fix build warning when kleidiai is enabled (#20457)

* cmake : fix build warning when kleidiai is enabled

* remove LLAMA_ARG_THREADS from KleidiAI backend

5 weeks agovocab : assert array size of scores and toktypes (#20737)
Sigbjørn Skjæret [Thu, 19 Mar 2026 07:34:04 +0000 (08:34 +0100)]
vocab : assert array size of scores and toktypes (#20737)

5 weeks agodocs: add information about openvino in the docker page (#20743)
Kevin Hannon [Thu, 19 Mar 2026 07:08:47 +0000 (03:08 -0400)]
docs: add information about openvino in the docker page (#20743)

5 weeks agoCANN: handle in-place ROPE on non-contiguous f32 tensors (#20274)
Chenguang Li [Thu, 19 Mar 2026 06:05:01 +0000 (14:05 +0800)]
CANN: handle in-place ROPE on non-contiguous f32 tensors (#20274)

RotaryPositionEmbedding on CANN fails when src and dst share the same
non-contiguous buffer (inplace + view), because the operator overwrites
source data before it is fully read.

Add a branch that detects this case and uses contiguous temporary
buffers: copy src to temp, run ROPE into another temp, then copy back
to the non-contiguous dst. Fixes 20 failing ROPE tests (f32, v=1,
inplace=1).

Signed-off-by: noemotiovon <redacted>
5 weeks agoggml-webgpu: Update the `RMS_NORM` preprocessor and add `L2_NORM` (#20665)
Masashi Yoshimura [Thu, 19 Mar 2026 04:08:59 +0000 (13:08 +0900)]
ggml-webgpu: Update the `RMS_NORM` preprocessor and add `L2_NORM` (#20665)

* Update the preprocessor of RMS_NORM and add L2_NORM.

* Fix the name of rms_norm to row_norm.

5 weeks agoggml-webgpu: Add supports for `DIAG` and `TRI` (#20664)
Masashi Yoshimura [Thu, 19 Mar 2026 04:08:35 +0000 (13:08 +0900)]
ggml-webgpu: Add supports for `DIAG` and `TRI` (#20664)

* Add supports for DIAG and TRI.

* Remove extra ttype and add a comment for TRI op.

5 weeks agoCANN: support flash attention for head dim not multiple of 16, fix ALiBi slope offset...
Chenguang Li [Thu, 19 Mar 2026 03:02:42 +0000 (11:02 +0800)]
CANN: support flash attention for head dim not multiple of 16, fix ALiBi slope offset (#20031)

- Allow FLASH_ATTN_EXT when head dimension D is not a multiple of 16 by
  padding Q/K/V to D_padded = GGML_PAD(D, 16), running FusedInferAttentionScoreV2,
  then slicing the output back to D (ggml-cann.cpp + aclnn_ops.cpp).
- Fix aclnn_get_slope second-part offset: use ggml_type_size(dtype) instead of
  sizeof(float) so ALiBi slopes are correct when dtype is F16 (e.g. GQA with
  48 heads); fixes buffer overflow and large numerical errors in those cases.

5 weeks agomodel : add control vector support where missing (#20653)
Michael Grau [Wed, 18 Mar 2026 22:25:12 +0000 (23:25 +0100)]
model : add control vector support where missing (#20653)

* Add control vector functions to qwen3.5 and qwen-next models

* Add missing cvec compatibility to the rest of the models

* Adjust comments and formatting

* cleanup

* whitespace

---------

Co-authored-by: Sigbjørn Skjæret <redacted>
5 weeks agogguf-py : cleaner way to get the first key (#20727)
Sigbjørn Skjæret [Wed, 18 Mar 2026 22:21:42 +0000 (23:21 +0100)]
gguf-py : cleaner way to get the first key (#20727)

5 weeks agoRebuild index.html.gz (#20724)
crsawyer [Wed, 18 Mar 2026 17:49:57 +0000 (12:49 -0500)]
Rebuild index.html.gz (#20724)

5 weeks agoMove to no timeout for WaitAny in graph submission to avoid deadlocks in some cases...
Reese Levine [Wed, 18 Mar 2026 17:23:47 +0000 (10:23 -0700)]
Move to no timeout for WaitAny in graph submission to avoid deadlocks in some cases on llvm-pipe backends (#20618)

5 weeks agoggml-cpu/x86: fix unused changemask warning in repack (#20692)
Shaw Nguyen [Wed, 18 Mar 2026 16:45:06 +0000 (23:45 +0700)]
ggml-cpu/x86: fix unused changemask warning in repack (#20692)

5 weeks agosync : ggml
Georgi Gerganov [Wed, 18 Mar 2026 12:45:54 +0000 (14:45 +0200)]
sync : ggml

5 weeks agoggml : bump version to 0.9.8 (ggml/1442)
Georgi Gerganov [Mon, 16 Mar 2026 18:15:14 +0000 (20:15 +0200)]
ggml : bump version to 0.9.8 (ggml/1442)

5 weeks agoggml : restore ggml_type_sizef() to aboid major version bump (ggml/1441)
Georgi Gerganov [Mon, 16 Mar 2026 18:09:25 +0000 (20:09 +0200)]
ggml : restore ggml_type_sizef() to aboid major version bump (ggml/1441)

5 weeks agowebui: improve tooltip wording for attachment requirements (#20688)
Julien Chaumond [Wed, 18 Mar 2026 13:01:02 +0000 (14:01 +0100)]
webui: improve tooltip wording for attachment requirements (#20688)

* webui: improve tooltip wording for attachment requirements

Co-Authored-By: Claude <redacted>
* chore: update webui build output

* chore: update webui build output

---------

Co-authored-by: Claude <redacted>
5 weeks agollama : re-enable manual LoRA adapter free (#19983)
Pop Flamingo [Wed, 18 Mar 2026 10:03:26 +0000 (11:03 +0100)]
llama : re-enable manual LoRA adapter free (#19983)

* Re-enable manual LoRA adapter free

* Remove stale "all adapters must be loaded before context creation" stale comments

5 weeks agotests : fix test-jinja-py Windows failures by bypassing command-line args [no ci...
Masato Nakasaka [Wed, 18 Mar 2026 09:43:31 +0000 (02:43 -0700)]
tests : fix test-jinja-py Windows failures by bypassing command-line args [no ci] (#20483)

* Fix errors occurring on Windows

* Reverted fix

#20365 will take care of CRLF isue

* Changed to write to directly to stdin

* Prevent fclose to happen twice

5 weeks agocommon : rework gpt-oss parser (#20393)
Aldehir Rojas [Wed, 18 Mar 2026 09:41:25 +0000 (04:41 -0500)]
common : rework gpt-oss parser (#20393)

* common : rework gpt-oss parser

* cont : fix gpt-oss tests

* cont : add structured output test

* cont : rename final to final_msg

5 weeks agotests: enable kv_unified to prevent cuda oom error on rtx 2060 (#20645)
Aaron Teo [Wed, 18 Mar 2026 09:40:22 +0000 (17:40 +0800)]
tests: enable kv_unified to prevent cuda oom error on rtx 2060 (#20645)

Signed-off-by: Aaron Teo <redacted>
5 weeks agowebui: Fix duplicated messages on q param (#20715)
Aleksander Grygier [Wed, 18 Mar 2026 09:32:43 +0000 (10:32 +0100)]
webui: Fix duplicated messages on q param (#20715)

* fix: Remove duplicate message sending on `?q` param

* chore: update webui build output

5 weeks agoHIP : ignore return of hipMemAdvise [no ci] (#20696)
uvos [Wed, 18 Mar 2026 08:53:13 +0000 (09:53 +0100)]
HIP : ignore return of hipMemAdvise [no ci] (#20696)

5 weeks agocontext : fix graph not resetting when control vector changes (#20381)
Andreas Obersteiner [Wed, 18 Mar 2026 06:10:13 +0000 (07:10 +0100)]
context : fix graph not resetting when control vector changes (#20381)

5 weeks agohexagon: add neg, exp, sigmoid, softplus ops, cont, repeat ops (#20701)
Krishna Sridhar [Tue, 17 Mar 2026 22:34:36 +0000 (15:34 -0700)]
hexagon: add neg, exp, sigmoid, softplus ops, cont, repeat ops (#20701)

Add element-wise unary ops needed by Qwen 3.5's DeltaNet linear
attention layers. These ops follow the existing unary-ops pattern
with VTCM DMA double-buffering.

- neg: negate via scale by -1.0
- exp: uses existing hvx_exp_f32 HVX intrinsics
- sigmoid: uses existing hvx_sigmoid_f32_aa HVX intrinsics
- softplus: log(1 + exp(x)) scalar fallback
- CONT reuses the existing CPY infrastructure since making a tensor
  contiguous is equivalent to a same-type copy.
- REPEAT implements tiled memory copy with multi-threaded execution via
  the worker pool, supporting f32 and f16 types. The kernel parallelizes
  across output rows and uses memcpy for each tile.

Co-authored-by: Max Krasnyansky <redacted>
5 weeks agovulkan: disable mmvq on Intel Windows driver (#20672)
Ruben Ortlam [Tue, 17 Mar 2026 20:51:43 +0000 (21:51 +0100)]
vulkan: disable mmvq on Intel Windows driver (#20672)

* vulkan: disable mmvq on Intel Windows driver

* improve comment

5 weeks agoggml-blas: set mkl threads from thread context (#20602)
Kevin Hannon [Tue, 17 Mar 2026 17:16:49 +0000 (13:16 -0400)]
ggml-blas: set mkl threads from thread context (#20602)

* ggml blas: set mkl threads from thread context

* add code to run blas locally

5 weeks agocommon/parser: add `--skip-chat-parsing` to force a pure content parser. (#20289)
Piotr Wilkin (ilintar) [Tue, 17 Mar 2026 15:16:43 +0000 (16:16 +0100)]
common/parser: add `--skip-chat-parsing` to force a pure content parser. (#20289)

* Add `--force-pure-content` to force a pure content parser.

* Update common/arg.cpp

Co-authored-by: Sigbjørn Skjæret <redacted>
* Change parameter name [no ci]

---------

Co-authored-by: Sigbjørn Skjæret <redacted>
5 weeks agoggml-cpu: fix RVV checks in quants and repacking (#20682)
Taimur Ahmad [Tue, 17 Mar 2026 14:03:40 +0000 (19:03 +0500)]
ggml-cpu: fix RVV checks in quants and repacking (#20682)

* ggml-cpu: refactor quants.c; add rvv check

* ggml-cpu: refactor; disable generic fallback

5 weeks agoci : bump ccache [no ci] (#20679)
Sigbjørn Skjæret [Tue, 17 Mar 2026 13:54:31 +0000 (14:54 +0100)]
ci : bump ccache [no ci] (#20679)

* bump ccache

* forgotten

* disable for s390x

* disable also for ppc64le

5 weeks agovulkan: async and event fixes (#20518)
Ruben Ortlam [Tue, 17 Mar 2026 13:27:23 +0000 (14:27 +0100)]
vulkan: async and event fixes (#20518)

* vulkan: fix event wait submission, event command buffer reset

* fix event command buffer reset validation error

* also reset command buffers before reuse

* use timeline semaphores instead of fences for event_synchronize

* don't use initializer list for semaphore wait info

* use multiple events to avoid reset issues

* fix event reuse issue with multiple vectors

* add semaphore wait condition also if compute_ctx already exists

* remove event pending stage

5 weeks agoserver : fix ctx checkpoint invalidation (#20671)
Georgi Gerganov [Tue, 17 Mar 2026 13:21:14 +0000 (15:21 +0200)]
server : fix ctx checkpoint invalidation (#20671)

5 weeks agokleidiai : fix MUL_MAT support for batched (3D) inputs (#20620)
Justin Bradford [Tue, 17 Mar 2026 12:03:54 +0000 (05:03 -0700)]
kleidiai : fix MUL_MAT support for batched (3D) inputs (#20620)

* kleidiai : fix MUL_MAT support for batched (3D) inputs

The supports_op() check incorrectly rejected MUL_MAT operations with 3D
inputs (ne[2] > 1), but the actual compute_forward_qx() implementation
handles batched inputs correctly via a loop over ne12.

This caused models with Q4_0/Q8_0 weights to crash during graph scheduling
when n_seq_max > 1, because weights were placed in KLEIDIAI buffers during
loading (tested with 2D inputs) but the runtime used 3D inputs.

Also relax the buffer check to allow supports_op() to be called during
weight loading when src[0]->buffer is NULL.

Fixes #20608

* Kleidiai support_ops should only return true for 3D inputs, not also 4D

5 weeks agovulkan: allow graphics queue only through env var (#20599)
Ruben Ortlam [Tue, 17 Mar 2026 09:09:59 +0000 (10:09 +0100)]
vulkan: allow graphics queue only through env var (#20599)

* vulkan: avoid graphics queue on non-RADV AMD drivers

* avoid graphics queues on small GPUs

* change to only use graphics queue if overridden with env var GGML_VK_ALLOW_GRAPHICS_QUEUE

* reenable transfer queue if graphics queue is not used

5 weeks ago[SYCL] ehance UPSCALE to support all UT cases (#20637)
Neo Zhang [Tue, 17 Mar 2026 02:01:52 +0000 (10:01 +0800)]
[SYCL] ehance UPSCALE to support all UT cases (#20637)

* [SYCL] ehance UPSCALE to support more cases

* rm test case result of SYCL1

5 weeks agotools/server: support refusal content for Responses API (#20285)
Piotr Wilkin (ilintar) [Tue, 17 Mar 2026 00:42:04 +0000 (01:42 +0100)]
tools/server: support refusal content for Responses API (#20285)

* Support refusal content for Responses API

* Update tools/server/server-common.cpp

Co-authored-by: Sigbjørn Skjæret <redacted>
* Update tools/server/server-common.cpp

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

Co-authored-by: Sigbjørn Skjæret <redacted>
5 weeks agomodel: mistral small 4 support (#20649)
Xuan-Son Nguyen [Mon, 16 Mar 2026 23:31:14 +0000 (00:31 +0100)]
model: mistral small 4 support (#20649)

* model: mistral small 4 support

* fix test

* fix test (2)

* Apply suggestions from code review

Co-authored-by: Sigbjørn Skjæret <redacted>
* Update convert_hf_to_gguf.py

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

---------

Co-authored-by: Sigbjørn Skjæret <redacted>
5 weeks agoci : disable AMX jobs (#20654)
Georgi Gerganov [Mon, 16 Mar 2026 20:38:59 +0000 (22:38 +0200)]
ci : disable AMX jobs (#20654)

[no ci]

5 weeks agobenches : add Nemotron 3 Nano on DGX Spark (#20652)
Georgi Gerganov [Mon, 16 Mar 2026 19:50:43 +0000 (21:50 +0200)]
benches : add Nemotron 3 Nano on DGX Spark (#20652)

[no ci]

5 weeks agotests : write to binary buffer to avoid newline translation in jinja -py [no ci]...
Sigbjørn Skjæret [Mon, 16 Mar 2026 19:40:22 +0000 (20:40 +0100)]
tests : write to binary buffer to avoid newline translation in jinja -py [no ci] (#20365)

5 weeks agokleidiai: add data type check to get_tensor_traits (#20639)
Martin Klacer [Mon, 16 Mar 2026 19:25:54 +0000 (19:25 +0000)]
kleidiai: add data type check to get_tensor_traits (#20639)

* kleidiai: add data type check to get_tensor_traits

 * Added check for F16 data type into get_tensor_traits path with input data
   not in ggml_backend_cpu_kleidiai_buffer_type format (unsupported for Q4/8)

Signed-off-by: Martin Klacer <redacted>
Change-Id: I9aca4b9b8d669d35db6f1dbcc4e080b1919b1de7

* updated ggml/src/ggml-cpu/kleidiai/kleidiai.cpp

updated kleidiai.cpp file as per suggestion

Co-authored-by: Georgi Gerganov <redacted>
---------

Signed-off-by: Martin Klacer <redacted>
Co-authored-by: Georgi Gerganov <redacted>
5 weeks agoci : update labeler (#20629)
Sigbjørn Skjæret [Mon, 16 Mar 2026 19:24:20 +0000 (20:24 +0100)]
ci : update labeler (#20629)

5 weeks agojinja : add capability check for object args (#20612)
Aldehir Rojas [Mon, 16 Mar 2026 16:43:14 +0000 (11:43 -0500)]
jinja : add capability check for object args (#20612)

5 weeks agosync : ggml
Georgi Gerganov [Mon, 16 Mar 2026 12:56:06 +0000 (14:56 +0200)]
sync : ggml

5 weeks agoggml : try fix arm build (whisper/0)
Georgi Gerganov [Mon, 16 Mar 2026 07:11:13 +0000 (09:11 +0200)]
ggml : try fix arm build (whisper/0)

5 weeks agoggml : extend im2col f16 (ggml/1434)
David366AI [Sun, 15 Mar 2026 19:50:56 +0000 (15:50 -0400)]
ggml : extend im2col f16 (ggml/1434)

* examples/yolo: fix load_model memory leak

* fix/issue-1433 ggml_compute_forward_im2col_f16 assert error

* fix/issue-1433

5 weeks agowebui: add model information dialog to router mode (#20600)
Pascal [Mon, 16 Mar 2026 14:38:11 +0000 (15:38 +0100)]
webui: add model information dialog to router mode (#20600)

* webui: add model information dialog to router mode

* webui: add "Available models" section header in model list

* webui: remove nested scrollbar from chat template in model info dialog

* chore: update webui build output

* feat: UI improvements

* refactor: Cleaner rendering + UI docs

* chore: update webui build output

---------

Co-authored-by: Aleksander Grygier <redacted>
5 weeks agollama-graph: replace cont with reshape for alpha in qwen35 (#20640)
Aman Gupta [Mon, 16 Mar 2026 14:07:13 +0000 (22:07 +0800)]
llama-graph: replace cont with reshape for alpha in qwen35 (#20640)

5 weeks agowebui: Add MCP CORS Proxy detection logic & UI (#20167)
Aleksander Grygier [Mon, 16 Mar 2026 12:05:36 +0000 (13:05 +0100)]
webui: Add MCP CORS Proxy detection logic & UI (#20167)

* refactor: MCP store cleanup

* feat: Add MCP proxy availability detection

* fix: Sidebar icon

* chore: update webui build output

* chore: Formatting

* chore: update webui build output

* chore: Update package lock

* chore: update webui build output

* chore: update webui build output

* chore: update webui build output

5 weeks agoFix model selector locked to first loaded model with multiple models (#20580)
Pascal [Mon, 16 Mar 2026 11:04:06 +0000 (12:04 +0100)]
Fix model selector locked to first loaded model with multiple models (#20580)

* webui: fix model selector being locked to first loaded model

When multiple models are loaded, the auto-select effect would re-fire
on every loadedModelIds change, overriding the user's manual model
selection. Guard with selectedModelId so auto-select only kicks in
when no model is chosen yet.

* chore: update webui build output

5 weeks agowebui: use date in more human readable exported filename (#19939)
Woof Dog [Mon, 16 Mar 2026 10:18:13 +0000 (10:18 +0000)]
webui: use date in more human readable exported filename (#19939)

* webui: use date in exported filename

Move conversation naming and export to utils

update index.html.gz

* webui: move literals to message export constants file

* webui: move export naming and download back to the conversation store

* chore: update webui build output

* webui: add comments to some constants

* chore: update webui build output

5 weeks agovulkan: fix flash attention dot product precision (#20589)
Ruben Ortlam [Mon, 16 Mar 2026 09:45:49 +0000 (10:45 +0100)]
vulkan: fix flash attention dot product precision (#20589)

5 weeks agomodel : wire up Nemotron-H tensors for NVFP4 support (#20561)
Sigbjørn Skjæret [Mon, 16 Mar 2026 08:19:16 +0000 (09:19 +0100)]
model : wire up Nemotron-H tensors for NVFP4 support (#20561)

* wire up Nemotron-H tensors for NVFP4 support

* add ssm tensors

* alignment

5 weeks agoconvert : support mixed-precision ModelOpt models with per-tensor NVFP4/FP8 quantizat...
Richard Davison [Mon, 16 Mar 2026 08:18:47 +0000 (09:18 +0100)]
convert : support mixed-precision ModelOpt models with per-tensor NVFP4/FP8 quantization (#20539)

* support mixed-precision ModelOpt models with per-tensor NVFP4/FP8 quantization

* cleanup

* fallback

---------

Co-authored-by: Sigbjørn Skjæret <redacted>
5 weeks agocommon : fix iterator::end() dereference (#20445)
Masato Nakasaka [Mon, 16 Mar 2026 06:50:38 +0000 (23:50 -0700)]
common : fix iterator::end() dereference (#20445)

5 weeks agoCUDA: GDN hide memory latency (#20537)
Aman Gupta [Mon, 16 Mar 2026 03:41:45 +0000 (11:41 +0800)]
CUDA: GDN hide memory latency (#20537)

5 weeks agotools/cli: fix disable reasoning (#20606)
Piotr Wilkin (ilintar) [Sun, 15 Mar 2026 21:40:53 +0000 (22:40 +0100)]
tools/cli: fix disable reasoning (#20606)

5 weeks agoserver : fix wait in test_cancel_requests() test (#20601)
Georgi Gerganov [Sun, 15 Mar 2026 18:54:37 +0000 (20:54 +0200)]
server : fix wait in test_cancel_requests() test (#20601)

* server : fix wait in test_cancel_requests() test

* codeowners : add team for server tests

6 weeks agosycl : fix for untransposed GDA recurrent state (#20583)
Sigbjørn Skjæret [Sun, 15 Mar 2026 18:10:15 +0000 (19:10 +0100)]
sycl : fix for untransposed GDA recurrent state (#20583)

6 weeks agoci : only save openvino caches on github-hosted master (#20593)
Sigbjørn Skjæret [Sun, 15 Mar 2026 17:58:13 +0000 (18:58 +0100)]
ci : only save openvino caches on github-hosted master (#20593)

* only save openvino ccache on master

* disable toolkit cache if self-hosted

* only cache on github-hosted runners

* remove toolkit cache [no ci]

6 weeks agoCUDA: limit number of FA stream-k CUDA blocks (#20586)
Johannes Gäßler [Sun, 15 Mar 2026 17:30:47 +0000 (18:30 +0100)]
CUDA: limit number of FA stream-k CUDA blocks (#20586)

6 weeks agoggml: avoid creating CUDA context during device init (#20595)
Pascal [Sun, 15 Mar 2026 16:42:56 +0000 (17:42 +0100)]
ggml: avoid creating CUDA context during device init (#20595)

6 weeks agovendor : update cpp-httplib to 0.38.0 (#20578)
Adrien Gallouët [Sun, 15 Mar 2026 16:30:06 +0000 (17:30 +0100)]
vendor : update cpp-httplib to 0.38.0 (#20578)

Signed-off-by: Adrien Gallouët <redacted>
6 weeks ago ggml/hip: fix APU compatibility - soft error handling for hipMemAdviseSetCoarseGrain...
MoonShadow [Sun, 15 Mar 2026 16:23:58 +0000 (00:23 +0800)]
 ggml/hip: fix APU compatibility - soft error handling for hipMemAdviseSetCoarseGrain (#20536)

* ggml/hip: fix APU compatibility - soft error handling for hipMemAdviseSetCoarseGrain

On AMD APU/iGPU devices (unified memory architecture), hipMemAdviseSetCoarseGrain
returns hipErrorInvalidValue because the hint is not applicable to UMA systems.
The previous CUDA_CHECK() call treated this as a fatal error, causing crashes on
APU systems such as AMD Strix Halo (gfx1151).

Fix: treat hipMemAdviseSetCoarseGrain as an optional performance hint - call it
without error checking and clear any resulting error with hipGetLastError().

Also add pre-allocation debug logging (GGML_LOG_DEBUG) to help diagnose memory
issues on APU systems, and store totalGlobalMem in device info.

Context: AMD APUs on Windows are affected by a ROCm runtime bug that limits
hipMallocManaged to ~64GB regardless of available system RAM. A fix has been
submitted upstream: https://github.com/ROCm/rocm-systems/pull/4077

Co-Authored-By: Claude Sonnet 4.6 <redacted>
* ggml/hip: remove unrelated changes, keep only hipMemAdviseSetCoarseGrain fix

---------

Co-authored-by: moonshadow-25 <redacted>
Co-authored-by: Claude Sonnet 4.6 <redacted>
6 weeks agofix: prevent nullptr dereference (#20552)
Eric Hsieh [Sun, 15 Mar 2026 15:51:49 +0000 (23:51 +0800)]
fix: prevent nullptr dereference (#20552)

6 weeks agocodeowners : use teams (#20526)
Sigbjørn Skjæret [Sun, 15 Mar 2026 13:26:10 +0000 (14:26 +0100)]
codeowners : use teams (#20526)

* use teams

* update

* update

* update

* update

* update

6 weeks agoci : split build.yml + server.yml (#20546)
Georgi Gerganov [Sun, 15 Mar 2026 13:11:17 +0000 (15:11 +0200)]
ci : split build.yml + server.yml (#20546)

* ci : split build.yml

* cont : split server.yml

* cont : reduce paths

* cont : split build-android.yml + update paths

* ci : make msys workflows manual (#20588)

* ci : make cross-build workflows manual (#20585)

* cont : fix release paths

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

Co-authored-by: Sigbjørn Skjæret <redacted>
6 weeks agoconvert : support contiguous method on lora tensors (#20489)
Sigbjørn Skjæret [Sun, 15 Mar 2026 11:15:12 +0000 (12:15 +0100)]
convert : support contiguous method on lora tensors (#20489)

6 weeks agoggml : guard against sumq2 being 0 in IQ4_NL (#20460)
Bartowski [Sun, 15 Mar 2026 08:47:28 +0000 (04:47 -0400)]
ggml : guard against sumq2 being 0 in IQ4_NL (#20460)

6 weeks agocuda : add RDNA4-specific MMVQ parameter table for bs=1 decode (#19478)
PikaPikachu [Sun, 15 Mar 2026 07:33:39 +0000 (15:33 +0800)]
cuda : add RDNA4-specific MMVQ parameter table for bs=1 decode (#19478)

* mmvq: add RDNA3/RDNA4-specific parameter table (nwarps=8, rows=1)

* mmvq: add dedicated RDNA3 parameter table

* mmvq: exclude RDNA3.5 (gfx1150/1151) from RDNA3 table

6 weeks agovulkan: use graphics queue on AMD (#20551)
Ruben Ortlam [Sun, 15 Mar 2026 07:18:54 +0000 (08:18 +0100)]
vulkan: use graphics queue on AMD (#20551)

* vulkan: use graphics queue on AMD for slightly better performance

* disable async transfer queue on AMD

6 weeks agokv-cache : fix reading llama_kv_cell_ext during state read (#20273)
sprayandwipe [Sun, 15 Mar 2026 07:11:19 +0000 (07:11 +0000)]
kv-cache : fix reading llama_kv_cell_ext during state read (#20273)

Co-authored-by: sid <redacted>
6 weeks agomodel : wire up Qwen3.5/Qwen3.5MoE tensors for NVFP4 support (#20506)
Michael Wand [Sat, 14 Mar 2026 21:44:42 +0000 (14:44 -0700)]
model : wire up Qwen3.5/Qwen3.5MoE tensors for NVFP4 support (#20506)

6 weeks agometal : add FA specialization for HSK = 320, HSV = 256 (#20549)
Georgi Gerganov [Sat, 14 Mar 2026 21:15:47 +0000 (23:15 +0200)]
metal : add FA specialization for HSK = 320, HSV = 256 (#20549)

6 weeks agoci : move self-hosted workflows to separate files (#20540)
Georgi Gerganov [Sat, 14 Mar 2026 21:15:35 +0000 (23:15 +0200)]
ci : move self-hosted workflows to separate files (#20540)

6 weeks agodocker : force Python 3.13 in Vulkan container (#20530)
Gerard Guillemas Martos [Sat, 14 Mar 2026 20:37:09 +0000 (21:37 +0100)]
docker : force Python 3.13 in Vulkan container (#20530)

* ci: force Python 3.13 in Vulkan container

* remove unnecessary `update-alternatives` line

6 weeks agoci : try to optimize some jobs (#20521)
Eve [Sat, 14 Mar 2026 19:27:52 +0000 (19:27 +0000)]
ci : try to optimize some jobs (#20521)

* force arm version to test

* run on either x86 or arm if we can help it, this only works for runs without ccache

* readd other jobs

* remove ccache

6 weeks agohexagon: Q4_0 and MXFP4 repack fixes (#20527)
Max Krasnyansky [Sat, 14 Mar 2026 18:09:08 +0000 (11:09 -0700)]
hexagon: Q4_0 and MXFP4 repack fixes (#20527)

* hexagon: fix tail corruption with rows sizes not multiple of 256

* hexagon: use different stride for repacking partial blocks

* hex-mm: update repack and kernels to avoid shuffles for full 256-element blocks

Previous commit changed the repacking to use even:odd (0:1,2:3,..) packing
instead of the original (0:128,1:129,...) packing in order to fix tail corruption.
Since the mm kernels already deal with partial tails we can use even:odd
packing only for the last block.
This avoid performance penalty of having to shuffle to zip the elements
in the common case.

* hex-mm: update rmpy x8 for better optimizations

* hex-mm: tighten supported MUL_MAT checks to avoid spurios failures

* hex-mm: use vzero to init accumulators

* hex-mm: properly call partial rmpy_x8

6 weeks agoci : reduce webgpu tests timeout to 900s (#20538)
Georgi Gerganov [Sat, 14 Mar 2026 15:08:26 +0000 (17:08 +0200)]
ci : reduce webgpu tests timeout to 900s (#20538)

[no ci]

6 weeks agomtmd: add llama-mtmd-debug binary (#20508)
Xuan-Son Nguyen [Sat, 14 Mar 2026 14:52:29 +0000 (15:52 +0100)]
mtmd: add llama-mtmd-debug binary (#20508)

* mtmd: add llama-mtmd-debug binary

* adapt

* fixes

* fix compile error

* fix windows compile error

* rm legacy clip_debug_encode()

* add MTMD_API to fix build

6 weeks agoadd op gated_delta_net (#20455)
Neo Zhang [Sat, 14 Mar 2026 14:01:57 +0000 (22:01 +0800)]
add op gated_delta_net (#20455)

6 weeks agowebui: restore code preview iframe origin isolation (#20477)
Chedrian07 [Sat, 14 Mar 2026 10:28:28 +0000 (19:28 +0900)]
webui: restore code preview iframe origin isolation (#20477)