]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/log
pkg/ggml/sources/llama.cpp
3 months ago[SYCL] Add OP im2col_3d (#22903)
Neo Zhang [Mon, 11 May 2026 05:01:47 +0000 (13:01 +0800)]
[SYCL] Add OP im2col_3d (#22903)

* add im2col_3d

* format code

* update the ops.md

4 months agoserver : print warning when HTTP timeout exceeded (#22907)
Georgi Gerganov [Sun, 10 May 2026 19:00:18 +0000 (22:00 +0300)]
server : print warning when HTTP timeout exceeded (#22907)

4 months agobackend sampling: support returning post-sampling probs (#22622)
Tim Neumann [Sun, 10 May 2026 17:12:02 +0000 (19:12 +0200)]
backend sampling: support returning post-sampling probs (#22622)

* server: Never return 0.0 post-sampling probabilities

* backend sampling: support returning post-sampling probs

4 months agovendor : update cpp-httplib to 0.43.4 (#22888)
Alessandro de Oliveira Faria (A.K.A.CABELO) [Sun, 10 May 2026 16:46:54 +0000 (13:46 -0300)]
vendor : update cpp-httplib to 0.43.4 (#22888)

4 months agoggml-virtgpu : include missing mutex header (#22810)
Oliver Walsh [Sun, 10 May 2026 15:32:41 +0000 (16:32 +0100)]
ggml-virtgpu : include missing mutex header (#22810)

Add missing `#include <mutex>` in ggml-backend-device.cpp.

Fixes: #22809
Signed-off-by: Oliver Walsh <redacted>
4 months agosync : ggml
Georgi Gerganov [Sun, 10 May 2026 13:59:29 +0000 (16:59 +0300)]
sync : ggml

4 months agoggml : bump version to 0.11.1 (ggml/1484)
Georgi Gerganov [Sun, 10 May 2026 13:57:19 +0000 (16:57 +0300)]
ggml : bump version to 0.11.1 (ggml/1484)

4 months agointernal AllReduce kernel for CUDA provider (#22299)
scutler-nv [Sun, 10 May 2026 09:05:22 +0000 (02:05 -0700)]
internal AllReduce kernel for CUDA provider (#22299)

* ggml-cuda: add internal AllReduce provider for tensor parallelism

Introduces a NCCL-free AllReduce implementation for LLAMA_SPLIT_MODE_TENSOR
using a single-phase CUDA kernel that pipelines D2H copy, cross-GPU
handshake via pinned-memory volatile flags, and the reduction in one
kernel launch per GPU.

New files:
- ggml/src/ggml-cuda/comm.cuh        — ggml_cuda_allreduce_provider enum
- ggml/src/ggml-cuda/allreduce.cuh   — pipeline API declarations
- ggml/src/ggml-cuda/allreduce.cu    — kernel + pipeline init/dispatch

ggml-cuda.cu changes:
- ggml_backend_cuda_comm_context gains ar_pipeline field
- Provider selection via GGML_CUDA_ALLREDUCE env var ("nccl" / "internal")
- INTERNAL provider initialises the pipeline at comm_init time
- Dispatch routes to ggml_cuda_ar_allreduce(); falls back to meta-backend
  CPU reduce for unsupported sizes or GPU counts (> 2)

Current scope: 2 GPUs, FP32, tensors <= 256 KB. Notes in NOTES-allreduce.md.

Co-Authored-By: Claude Sonnet 4.6 <redacted>
* llama-bench: add --allreduce flag to select AllReduce provider

Adds --allreduce <auto|nccl|internal> to llama-bench (and via the shared
field pattern, consistent with other multi-value flags).  Useful for
isolating hangs or regressions in tensor-parallel mode: pass --allreduce nccl
to force NCCL and bypass the internal provider.

Also fixes ggml_cuda_select_allreduce_provider() to treat an empty
GGML_CUDA_ALLREDUCE env var the same as unset (avoids spurious warning when
llama-bench sets it to "" for the "auto" case).

Co-Authored-By: Claude Sonnet 4.6 <redacted>
xt gains ar_pipeline field
- Provider selection via GGML_CUDA_ALLREDUCE env var ("nccl" / "internal")
- INTERNAL provider initialises the pipeline at comm_init time
- Dispatch routes to ggml_cuda_ar_allreduce(); falls back to meta-backend
  CPU reduce for unsupported sizes or GPU counts (> 2)

Current scope: 2 GPUs, FP32, tensors <= 256 KB. Notes in NOTES-allreduce.md.

Co-Authored-By: Claude Sonnet 4.6 <redacted>
* llama-bench: rename --allreduce to --reduction-provider / -rp

Co-Authored-By: Claude Sonnet 4.6 <redacted>
 via the shared
field pattern, consistent with other multi-value flags).  Useful for
isolating hangs or regressions in tensor-parallel mode: pass --allreduce nccl
to force NCCL and bypass the internal provider.

Also fixes ggml_cuda_select_allreduce_provider() to treat an empty
GGML_CUDA_ALLREDUCE env var the same as unset (avoids spurious warning when
llama-bench sets it to "" for the "auto" case).

Co-Authored-By: Claude Sonnet 4.6 <redacted>
xt gains ar_pipeline field
- Provider selection via GGML_CUDA_ALLREDUCE env var ("nccl" / "internal")
- INTERNAL provider initialises the pipeline at comm_init time
- Dispatch routes to ggml_cuda_ar_allreduce(); falls back to meta-backend
  CPU reduce for unsupported sizes or GPU counts (> 2)

Current scope: 2 GPUs, FP32, tensors <= 256 KB. Notes in NOTES-allreduce.md.

Co-Authored-By: Claude Sonnet 4.6 <redacted>
* llama-bench: pass WARN/ERROR log messages through in non-verbose mode

The null log callback was silently dropping all messages. WARN and ERROR
should always be visible since they indicate legitimate issues (e.g. a
requested reduction provider not being available).

Co-Authored-By: Claude Sonnet 4.6 <redacted>
vider.

Also fixes ggml_cuda_select_allreduce_provider() to treat an empty
GGML_CUDA_ALLREDUCE env var the same as unset (avoids spurious warning when
llama-bench sets it to "" for the "auto" case).

Co-Authored-By: Claude Sonnet 4.6 <redacted>
xt gains ar_pipeline field
- Provider selection via GGML_CUDA_ALLREDUCE env var ("nccl" / "internal")
- INTERNAL provider initialises the pipeline at comm_init time
- Dispatch routes to ggml_cuda_ar_allreduce(); falls back to meta-backend
  CPU reduce for unsupported sizes or GPU counts (> 2)

Current scope: 2 GPUs, FP32, tensors <= 256 KB. Notes in NOTES-allreduce.md.

Co-Authored-By: Claude Sonnet 4.6 <redacted>
* cmake: improve NCCL detection for source-tree builds, add static/dynamic switch

FindNCCL.cmake now searches the cmake source-build layout used by the Windows
NCCL port (cmake/lib/Release for static, cmake/src/Release for dynamic import
lib) and also checks src/include for the generated nccl.h header.

New option GGML_CUDA_NCCL_STATIC (default OFF) selects static vs dynamic
linking and controls which paths and library names are searched.

Co-Authored-By: Claude Sonnet 4.6 <redacted>
 for the "auto" case).

Co-Authored-By: Claude Sonnet 4.6 <redacted>
xt gains ar_pipeline field
- Provider selection via GGML_CUDA_ALLREDUCE env var ("nccl" / "internal")
- INTERNAL provider initialises the pipeline at comm_init time
- Dispatch routes to ggml_cuda_ar_allreduce(); falls back to meta-backend
  CPU reduce for unsupported sizes or GPU counts (> 2)

Current scope: 2 GPUs, FP32, tensors <= 256 KB. Notes in NOTES-allreduce.md.

Co-Authored-By: Claude Sonnet 4.6 <redacted>
* ggml-cuda: add AllReduce hang watchdog (GGML_CUDA_AR_WATCHDOG)

When compiled with -DGGML_CUDA_AR_WATCHDOG=ON, uses a debug kernel
variant that writes per-GPU spin diagnostics to pinned host memory.
A host-side blocking poll (cudaEventQuery + volatile reads) detects
hangs and logs WARN with the last observed arrival counters and spin
counts, controlled by GGML_CUDA_AR_WATCHDOG (ms timeout) and
GGML_CUDA_AR_MAX_SPIN (kernel bailout) env vars at runtime.

Zero overhead on the production path — all debug code is behind #ifdef.

Co-Authored-By: Claude Sonnet 4.6 <redacted>
 ar_pipeline field
- Provider selection via GGML_CUDA_ALLREDUCE env var ("nccl" / "internal")
- INTERNAL provider initialises the pipeline at comm_init time
- Dispatch routes to ggml_cuda_ar_allreduce(); falls back to meta-backend
  CPU reduce for unsupported sizes or GPU counts (> 2)

Current scope: 2 GPUs, FP32, tensors <= 256 KB. Notes in NOTES-allreduce.md.

Co-Authored-By: Claude Sonnet 4.6 <redacted>
* ggml-cuda: fix intermittent AllReduce hang on Blackwell PCIe

Add __threadfence_system() before the arrival signal write in
signal_set to ensure D2H data is globally visible before the peer
observes the arrival flag.  Without this fence, the peer could enter
Phase 3 host reads before the data had fully landed, causing an
intermittent deadlock on RTX 5090 (Blackwell, PCIe-only).

Also redesign the watchdog from a blocking dispatch-thread poll to a
non-blocking background thread, eliminating the ~20ms per-slot
latency the old design added.

Verified: 30/30 soak test runs clean at ~50 t/s (previously ~1-in-15
hang rate).

Co-Authored-By: Claude Sonnet 4.6 <redacted>
- INTERNAL provider initialises the pipeline at comm_init time
- Dispatch routes to ggml_cuda_ar_allreduce(); falls back to meta-backend
  CPU reduce for unsupported sizes or GPU counts (> 2)

Current scope: 2 GPUs, FP32, tensors <= 256 KB. Notes in NOTES-allreduce.md.

Co-Authored-By: Claude Sonnet 4.6 <redacted>
* ggml-cuda: fix watchdog shutdown ordering and pipeline_free drain

- Stop watchdog thread BEFORE destroying GPU resources (events, streams)
  to prevent polling destroyed handles → spurious "busy" readings
- Add cudaStreamSynchronize in pipeline_free to drain in-flight kernels
  before freeing pinned host buffers they may still be reading
- Sleep-first watchdog polling: no +0ms noise, only logs when a kernel
  is genuinely stuck past the poll interval
- Check wdog_stop in both outer and inner loops so join() returns
  promptly instead of draining the entire queue
- Add Phase 3 breadcrumbs to debug[3] for hang localization

Co-Authored-By: Claude Sonnet 4.6 <redacted>
RNAL provider initialises the pipeline at comm_init time
- Dispatch routes to ggml_cuda_ar_allreduce(); falls back to meta-backend
  CPU reduce for unsupported sizes or GPU counts (> 2)

Current scope: 2 GPUs, FP32, tensors <= 256 KB. Notes in NOTES-allreduce.md.

Co-Authored-By: Claude Sonnet 4.6 <redacted>
* ggml-cuda: replace event-based watchdog with per-GPU ring buffer

Completely rework the GGML_CUDA_AR_WATCHDOG system:

- Replace the shared debug_buf + event-polling + queue design with
  per-GPU ring buffers in pinned host memory
- Kernel writes a debug record only on spin-limit bailout: claims a
  ring slot via atomicAdd (single-GPU host atomics work on RTX 5090),
  writes fields, fences, sets completion flag, then all threads exit
- Watchdog thread simply polls ring head counters every 1ms and prints
  any new complete records — no CUDA event queries, no mutex, no queue
- Zero overhead on the dispatch path (no queue posting, no memset)
- Watchdog shutdown returns within ~1ms (atomic bool, no drain)
- On bailout the kernel skips Phase 3 entirely and exits cleanly

Verified: 20/20 prefill soak test clean at ~1112 t/s, no hangs.

Co-Authored-By: Claude Sonnet 4.6 <redacted>
P32, tensors <= 256 KB. Notes in NOTES-allreduce.md.

Co-Authored-By: Claude Sonnet 4.6 <redacted>
* fix: normalize line endings to LF (undo Windows CRLF conversion)

Five files were inadvertently converted to CRLF by the Windows
development environment, causing every line to show as changed in
diffs against master.

Co-Authored-By: Claude Sonnet 4.6 <redacted>
imit bailout: claims a
  ring slot via atomicAdd (single-GPU host atomics work on RTX 5090),
  writes fields, fences, sets completion flag, then all threads exit
- Watchdog thread simply polls ring head counters every 1ms and prints
  any new complete records — no CUDA event queries, no mutex, no queue
- Zero overhead on the dispatch path (no queue posting, no memset)
- Watchdog shutdown returns within ~1ms (atomic bool, no drain)
- On bailout the kernel skips Phase 3 entirely and exits cleanly

Verified: 20/20 prefill soak test clean at ~1112 t/s, no hangs.

Co-Authored-By: Claude Sonnet 4.6 <redacted>
P32, tensors <= 256 KB. Notes in NOTES-allreduce.md.

Co-Authored-By: Claude Sonnet 4.6 <redacted>
* .gitattributes: force LF line endings to prevent Windows CRLF conversion

Co-Authored-By: Claude Sonnet 4.6 <redacted>
elopment environment, causing every line to show as changed in
diffs against master.

Co-Authored-By: Claude Sonnet 4.6 <redacted>
imit bailout: claims a
  ring slot via atomicAdd (single-GPU host atomics work on RTX 5090),
  writes fields, fences, sets completion flag, then all threads exit
- Watchdog thread simply polls ring head counters every 1ms and prints
  any new complete records — no CUDA event queries, no mutex, no queue
- Zero overhead on the dispatch path (no queue posting, no memset)
- Watchdog shutdown returns within ~1ms (atomic bool, no drain)
- On bailout the kernel skips Phase 3 entirely and exits cleanly

Verified: 20/20 prefill soak test clean at ~1112 t/s, no hangs.

Co-Authored-By: Claude Sonnet 4.6 <redacted>
P32, tensors <= 256 KB. Notes in NOTES-allreduce.md.

Co-Authored-By: Claude Sonnet 4.6 <redacted>
* ggml-cuda: move GGML_CUDA_AR_WATCHDOG from CMake option to local define

The watchdog is development-only; a global CMake option is overkill.
Move the toggle to a #define at the top of allreduce.cu (set to 0 by
default) and remove the option from ggml/CMakeLists.txt and the CUDA
CMakeLists.txt add_compile_definitions block.

Co-Authored-By: Claude Sonnet 4.6 <redacted>
 fences, sets completion flag, then all threads exit
- Watchdog thread simply polls ring head counters every 1ms and prints
  any new complete records — no CUDA event queries, no mutex, no queue
- Zero overhead on the dispatch path (no queue posting, no memset)
- Watchdog shutdown returns within ~1ms (atomic bool, no drain)
- On bailout the kernel skips Phase 3 entirely and exits cleanly

Verified: 20/20 prefill soak test clean at ~1112 t/s, no hangs.

Co-Authored-By: Claude Sonnet 4.6 <redacted>
P32, tensors <= 256 KB. Notes in NOTES-allreduce.md.

Co-Authored-By: Claude Sonnet 4.6 <redacted>
* unify kernel debug paths

* use __threadfence_system explicitly (not in ggml_cuda_ar_signal_set)

* preferentially use internal reduction for <=2 GPUs

* templatize the main kernel to support fp16/bf16

* restore llama-bench.cpp changes

* revert CMakeLists changes

* remove notes from repo

* remove dead warmup code

* fix comments

* improve reduction provider fallback code

* add messages for allreduce fallback

* rework reduction provider init to not call ncclCommInitAll if using the internal provider

* fix case where a given tensor has not been computed

* add chunked mode to the kernel for unlimited vector size

* rework a few checks/fallbacks

* various small cleanups

* allow disabling CUDA reductions completely (falling back to the non-CUDA butterfly mode)

* simplify reduction provider selection

* minor simplifications

* more cleanups/fixes

* prototype alternate path for large reductions

* chunked version of large reduction path

* use bf16 for large reductions

* experimental reduction using cudaMemcpyPeerAsync (slightly slower)

* revert experimental change

* add combined conversion/reduction kernel

* add bf16 wire format for single kernel mode

* experimental on-stream small reduction kernel

* double buffer arrival slots, use token (incrementing) method

* double buffer host_buf for small reductions

* put in waits for use of host_mem in large reduction case (prevents stomping on in-use memory

* remove watchdog code

* various cleanups / dead code removal

* fix fp16 mode

* fix some comments/logging statements

* use increasing token scheme for arrival signals

* add top-level comment to allreduce.cu

* improve top-level comment in allreduce.cu

* fix comments in ggml_cuda_ar_kernel

* improve event handling for hostmem buffer usage tracking

* change ev_pool to fixed 2D array

* add chunked memcpy fallback for extra-large reductions (>32 MB)

* change thresholds for copy-engine path and bf16 demotion

* multi-block kernel test

* more fine-tuning for chukn-size, etc.

* various fixes for PR review

* more PR fixes

* fix semantics of all host mappings

* require ampere+

* small cleanups

* properly use host pointer for src/dst in cudaMemcpy calls

* allreduce: lazy-init the internal pipeline on first use

A config that lives entirely on NCCL never needs the chunked-kernel
pipeline (host_buf, host_large, dev_tmp, streams, events, arrival ring).
Defer pipeline creation to the first try_allreduce_internal call using the
same std::call_once pattern as ensure_nccl, so those resources stay
unallocated when only NCCL is in use.

Co-Authored-By: Claude Opus 4.7 (1M context) <redacted>
* allreduce: assert n_backends == 2 instead of soft-fallback

ar_pipeline_init already requires n_devices == 2 and bails before any AR can
get here, so by the time we reach try_allreduce_internal we know we have
exactly two backends.  Replace the runtime-debug-log fallback with a hard
assert.

Co-Authored-By: Claude Opus 4.7 (1M context) <redacted>
 NCCL is in use.

Co-Authored-By: Claude Opus 4.7 (1M context) <redacted>
* rework reduction provider selection. internal/nccl is OS dependent; most fallbacks are removed

* remove unneeded Turing arch check (llama.cpp doesn't even compile pre-Turing anyway)

* allreduce: ASCII-only comments and ggml_cuda_cast for value conversions

Replace non-ASCII characters in comments (em dashes, right arrows) with
ASCII equivalents (--, ->) so the source stays in the ggml/upstream norm.

In the kernel-side code, replace static_cast<Twire>/static_cast<Tdst>
with ggml_cuda_cast<...> so the BF16 conversions go through the fast
__float2bfloat16 / __bfloat162float intrinsics from convert.cuh.  Pure
pointer and integer casts stay as static_cast.

Also drops two stray garbage tokens that snuck in from earlier merges
(a duplicated 'return ok; }' tail in allreduce.cu and a leftover '_reg)'
fragment in ggml-cuda.cu).

Co-Authored-By: Claude Opus 4.7 (1M context) <redacted>
* allreduce: use ggml_cuda_memcpy_1 for the chunked-kernel vector copies

The chunked kernel's two 16-byte register<->host transfers (Phase 1 store
and Phase 3 load) used reinterpret_cast<float4 *> on both sides.  Replace
with ggml_cuda_memcpy_1<sizeof(wire)>, which is the canonical helper for
this pattern and emits the same int4 LD/ST under the hood.

Conformance passes; 5x reruns of 70b internal pp512 show 1832-1836 t/s,
matching the prior matrix value of 1831 t/s -- no perf change as expected.

Co-Authored-By: Claude Opus 4.7 (1M context) <redacted>
ok; }' tail in allreduce.cu and a leftover '_reg)'
fragment in ggml-cuda.cu).

Co-Authored-By: Claude Opus 4.7 (1M context) <redacted>
* allreduce: assert cuda_ctx->device matches the pipeline's device

Both ggml_cuda_ar_pipeline and ggml_backend_cuda_context carry the device
they were created for; if they ever disagree, every cuda call that follows
runs on the wrong device.  Add GGML_ASSERT at each cuda_ctx retrieval site
in the AR path so the misuse fails fast rather than silently corrupting.

Also: rename __nv_bfloat16 -> nv_bfloat16 (typedef alias) for consistency
with the rest of the file, and tighten one cudaGetLastError check to fire
only after the to_bf16 call that can actually fail.

Co-Authored-By: Claude Opus 4.7 (1M context) <redacted>
gml-cuda.cu).

Co-Authored-By: Claude Opus 4.7 (1M context) <redacted>
* allreduce: expand one-liner for loops to braced bodies

Code-style preference -- match the rest of the file by writing every for
loop with the body on its own braced line.  Three sites in the copy-engine
typed dispatch.

Co-Authored-By: Claude Opus 4.7 (1M context) <redacted>
in the AR path so the misuse fails fast rather than silently corrupting.

Also: rename __nv_bfloat16 -> nv_bfloat16 (typedef alias) for consistency
with the rest of the file, and tighten one cudaGetLastError check to fire
only after the to_bf16 call that can actually fail.

Co-Authored-By: Claude Opus 4.7 (1M context) <redacted>
gml-cuda.cu).

Co-Authored-By: Claude Opus 4.7 (1M context) <redacted>
* allreduce: rename template parameters Tdst/Twire/Tsrc -> T_dst/T_wire/T_src

Code-style preference per PR review -- T_dst/T_wire/T_src is more
consistent with surrounding code.  Whole-word rename across all 58 sites
in allreduce.cu (kernel definitions, internal uses, and comment text).

Realigned the parameter columns in three function signatures whose
T_src/T_dst lines shifted by 1 char relative to their non-templated
neighbors.

Co-Authored-By: Claude Opus 4.7 (1M context) <redacted>
to fire
only after the to_bf16 call that can actually fail.

Co-Authored-By: Claude Opus 4.7 (1M context) <redacted>
gml-cuda.cu).

Co-Authored-By: Claude Opus 4.7 (1M context) <redacted>
* allreduce: drop hyphen in 'chunked-kernel' across comments

Per PR review feedback -- 'chunked kernel' (no hyphen) reads more naturally
in running prose, especially for ESL readers.  Pure comment-only change;
all 10 occurrences in allreduce.cu updated.

Co-Authored-By: Claude Opus 4.7 (1M context) <redacted>
three function signatures whose
T_src/T_dst lines shifted by 1 char relative to their non-templated
neighbors.

Co-Authored-By: Claude Opus 4.7 (1M context) <redacted>
to fire
only after the to_bf16 call that can actually fail.

Co-Authored-By: Claude Opus 4.7 (1M context) <redacted>
gml-cuda.cu).

Co-Authored-By: Claude Opus 4.7 (1M context) <redacted>
* allreduce: use ggml_cuda_get_max_cpy_bytes() instead of hardcoded 16

The chunked kernel hardcoded a 16-byte vector unit; replace with the
ggml_cuda_get_max_cpy_bytes() helper that fattn-common.cuh uses for the
same purpose, so ELEMS_PER_VEC self-adjusts to the arch's widest
single-instruction copy.

Perf-neutral on supported targets (Volta+ returns 16).

Co-Authored-By: Claude Opus 4.7 (1M context) <redacted>
hbors.

Co-Authored-By: Claude Opus 4.7 (1M context) <redacted>
to fire
only after the to_bf16 call that can actually fail.

Co-Authored-By: Claude Opus 4.7 (1M context) <redacted>
gml-cuda.cu).

Co-Authored-By: Claude Opus 4.7 (1M context) <redacted>
* ggml-cuda: PR review fixes -- annotate #endif, fix stale comment, assert nbytes alignment

Three separate but minor changes from PR #22299 review feedback:

1. Annotate the five GGML_USE_NCCL #endif lines with the matching condition
   so the pairing is visible without scrolling back.

2. The comment block on ggml_backend_cuda_comm_context claimed NCCL is
   lazy-initialised; that was true at one point but the dispatch refactor
   (727b141c0) made both NCCL and the internal pipeline eager.  Rewrite
   the comment to match current behaviour.

3. Assert in ggml_backend_cuda_comm_allreduce_internal that the tensor's
   byte size is a 16-byte multiple.  The chunked-kernel issues full-width
   vector loads/stores, so this is a precondition; tensor-parallel splits
   of hidden-dim-multiples satisfy it trivially, but a hard assert turns
   any caller-side bug into a clear failure rather than UB.

Co-Authored-By: Claude Opus 4.7 (1M context) <redacted>
 device's new AR
records its ev.ker -- otherwise the second device's wait sees the first
device's just-recorded event (the in-flight new AR) and creates a circular
dependency with the in-kernel peer signal.  Two-pass dispatch (all waits,
then all launches) avoids this.

Bump POOL_SIZE 2 -> 8 (small memory cost, more breathing room for the
GPU's view of the event chain) and add a runtime env override for the
hybrid kernel chunk size (GGML_CUDA_AR_HYBRID_CHUNK_BYTES) for tuning.
One-shot stderr diagnostic at first AR prints the chosen path + sizing.

Result on 2x RTX 5090 Linux, 70b ub_sweep:

    ub=64   (1 MB AR): 913 -> 1036 t/s  (+13.5% vs old, +1.8% vs NCCL)
    ub=128  (2 MB AR): 1056 -> 1181     (+11.9%, +3.7% vs NCCL)
    ub=256  (4 MB AR): 1212 -> 1424     (+17.5%, +3.5% vs NCCL)

Internal now beats NCCL at every size (+1.8% to +15.6%), recovering all
ground in the 1-4 MB regime that was previously a 10-12% loss.

Co-Authored-By: Claude Opus 4.7 (1M context) <redacted>
* simplify the init logic

* address some other PR requests

* ggml-cuda: stub internal AllReduce on HIP/MUSA, drop pre-Ampere mention, gate NCCL fallback warning on !HIP

The internal AllReduce relies on cudaHostAllocPortable/Mapped,
cudaHostGetDevicePointer, and __nanosleep -- none of which the HIP or
MUSA shims expose -- so wrap the implementation in
!defined(GGML_USE_HIP) && !defined(GGML_USE_MUSA) and provide
nullptr/no-op/false stubs in the #else branch.  The dispatcher already
treats a null pipeline as init failure and silently falls back to the
meta backend's generic AllReduce, so HIP/MUSA builds compile clean and
behave correctly without further call-site changes.

PR review follow-ups:
 - drop "or pre-Ampere?" from the internal-init failure warning -- the
   kernel doesn't require Ampere or newer.
 - guard the "NCCL not compiled in" fallback warning behind
   !defined(GGML_USE_HIP); the suggestion to install NCCL only makes
   sense on NVIDIA builds.

Co-Authored-By: Claude Opus 4.7 (1M context) <redacted>
hind, now +6-8% ahead at ub=1024-4096.
Perplexity (32 chunks) matches NCCL bit-for-bit (3.4044 vs 3.4043).

Co-Authored-By: Claude Opus 4.7 (1M context) <redacted>
* allreduce: guard __nanosleep on Volta+ and reject pre-Volta devices at init

__nanosleep is the only Volta-specific intrinsic in the kernel; wrap it
in #if __CUDA_ARCH__ >= GGML_CUDA_CC_VOLTA / NO_DEVICE_CODE so the file
still compiles cleanly when targeting older arches (the dispatcher's
init check below ensures the kernel is never actually launched on
pre-Volta).

Add a per-device compute-capability check in pipeline_init that returns
nullptr if any device is below sm70.  The dispatcher already treats
nullptr as init failure and silently falls back to the meta backend's
generic AllReduce.

Co-Authored-By: Claude Opus 4.7 (1M context) <redacted>
rom the internal-init failure warning -- the
   kernel doesn't require Ampere or newer.
 - guard the "NCCL not compiled in" fallback warning behind
   !defined(GGML_USE_HIP); the suggestion to install NCCL only makes
   sense on NVIDIA builds.

Co-Authored-By: Claude Opus 4.7 (1M context) <redacted>
hind, now +6-8% ahead at ub=1024-4096.
Perplexity (32 chunks) matches NCCL bit-for-bit (3.4044 vs 3.4043).

Co-Authored-By: Claude Opus 4.7 (1M context) <redacted>
* allreduce: fix CI -Werror warnings (sign-compare, format, restrict alias, maybe-uninitialized)

The CUDA CI builds with -Werror -Wsign-compare -Wformat -Wrestrict
-Wmaybe-uninitialized.  Address each:

 - n_devices is size_t; change `int i; i < n_devices` to size_t in the
   three init loops, and the matching GGML_LOG_INFO format from %d to %zu.
 - ggml_cuda_ar_kernel was launched with sendbuf == recvbuf (in-place
   reduction), so the __restrict__ qualifiers on those parameters were
   technically UB.  Drop __restrict__ from sendbuf and recvbuf; an A/B
   sweep showed <0.6% perf delta (within noise) on Linux.
 - The buf/src/dst pointer arrays in ggml_cuda_ar_allreduce and the
   per-iteration arrays in ggml_cuda_ar_allreduce_copy_outer were
   declared with size GGML_CUDA_MAX_DEVICES but the loop only writes
   indices [0, n_devices); zero-initialise so the compiler sees the
   tail elements as defined.

Co-Authored-By: Claude Opus 4.7 (1M context) <redacted>
now +6-8% ahead at ub=1024-4096.
Perplexity (32 chunks) matches NCCL bit-for-bit (3.4044 vs 3.4043).

Co-Authored-By: Claude Opus 4.7 (1M context) <redacted>
* ggml-cuda: drop unused-function warning by guarding try_allreduce_nccl behind GGML_USE_NCCL

The only call site (in init_nccl) is already inside #ifdef GGML_USE_NCCL,
so the function is unreferenced in non-NCCL builds and trips
nvcc's -Werror=unused-function check.  Move the guard from inside the
function body to around the entire definition.

Co-Authored-By: Claude Opus 4.7 (1M context) <redacted>
ce
   reduction), so the __restrict__ qualifiers on those parameters were
   technically UB.  Drop __restrict__ from sendbuf and recvbuf; an A/B
   sweep showed <0.6% perf delta (within noise) on Linux.
 - The buf/src/dst pointer arrays in ggml_cuda_ar_allreduce and the
   per-iteration arrays in ggml_cuda_ar_allreduce_copy_outer were
   declared with size GGML_CUDA_MAX_DEVICES but the loop only writes
   indices [0, n_devices); zero-initialise so the compiler sees the
   tail elements as defined.

Co-Authored-By: Claude Opus 4.7 (1M context) <redacted>
now +6-8% ahead at ub=1024-4096.
Perplexity (32 chunks) matches NCCL bit-for-bit (3.4044 vs 3.4043).

Co-Authored-By: Claude Opus 4.7 (1M context) <redacted>
---------

Co-authored-by: Claude Sonnet 4.6 <redacted>
4 months agomodel : fix model type check for granite/llama3 and deepseek2/glm4.7 lite (#22870)
Sigbjørn Skjæret [Sun, 10 May 2026 06:44:29 +0000 (08:44 +0200)]
model : fix model type check for granite/llama3 and deepseek2/glm4.7 lite (#22870)

4 months agomodel : add sarvam_moe architecture support (#20275)
Sumit Chatterjee [Sat, 9 May 2026 14:31:50 +0000 (00:31 +1000)]
model : add sarvam_moe architecture support (#20275)

4 months agodevops : updated Nix systems (#22869)
Yuannan [Sat, 9 May 2026 14:15:03 +0000 (14:15 +0000)]
devops : updated Nix systems (#22869)

4 months agodocker : upgraded the default intel compute-runtime version (#22567)
Davi Henrique Linhares [Sat, 9 May 2026 08:22:23 +0000 (05:22 -0300)]
docker : upgraded the default intel compute-runtime version (#22567)

4 months agocmake : update BoringSSL to 0.20260508.0 (#22839)
Alessandro de Oliveira Faria (A.K.A.CABELO) [Sat, 9 May 2026 07:26:33 +0000 (04:26 -0300)]
cmake : update BoringSSL to 0.20260508.0 (#22839)

4 months agoSYCL: reduce allocation overhead during flash attention (#22732)
Alexey Kopytko [Sat, 9 May 2026 06:30:39 +0000 (15:30 +0900)]
SYCL: reduce allocation overhead during flash attention (#22732)

* SYCL: reduce allocation overhead during flash attention

* tidy up whitespace

* add a note about the flag

* move ggml_sycl_fattn_* into fattn-buffers.hpp

* refactor implementation into fattn-buffers.cpp

* move new_fattn_kv_buffers back into ggml-sycl.cpp

4 months ago[SYCL] Add BF16 support to GET_ROWS operation (#21391)
Devedse [Sat, 9 May 2026 05:50:24 +0000 (07:50 +0200)]
[SYCL] Add BF16 support to GET_ROWS operation (#21391)

Add GGML_TYPE_BF16 to the SYCL backend's GET_ROWS operation, both in
supports_op and in the kernel dispatch. This fixes a performance
regression where models using BF16 embedding tensors (e.g., Gemma4's
per_layer_token_embd.weight) fall back to CPU for the GET_ROWS op,
causing a full GPU-to-CPU tensor transfer every token.

The fix reuses the existing get_rows_sycl_float template with
sycl::ext::oneapi::bfloat16, matching the pattern already used for
sycl::half (F16) and float (F32).

4 months agosycl: Q5_K reorder MMVQ/dequant + Q8_0 reorder MMVQ path (#22152)
Intel AI Get-to Market Customer Success and Solutions [Sat, 9 May 2026 05:48:07 +0000 (22:48 -0700)]
sycl: Q5_K reorder MMVQ/dequant + Q8_0 reorder MMVQ path (#22152)

* sycl: Q5_K reorder MMVQ/dequant + Q8_0 reorder MMVQ path

Signed-off-by: Chun Tao <redacted>
* Remove duplicate definitions

---------

Signed-off-by: Chun Tao <redacted>
Co-authored-by: Chun Tao <redacted>
Co-authored-by: Todd Malsbary <redacted>
4 months agosycl: Battlemage AOT build via spir64_gen + MMQ subgroup annotations (#22147)
Intel AI Get-to Market Customer Success and Solutions [Sat, 9 May 2026 05:42:40 +0000 (22:42 -0700)]
sycl: Battlemage AOT build via spir64_gen + MMQ subgroup annotations (#22147)

* sycl: Battlemage AOT build via spir64_gen + MMQ subgroup annotations

Signed-off-by: Chun Tao <redacted>
* Remove unneeded/unnecessary comments and annotations

The MMQ subgroup annotations added are on functions gated behind
ggml_sycl_supports_mmq(). Revisit the need for these annotations
when that function changes.

---------

Signed-off-by: Chun Tao <redacted>
Co-authored-by: Chun Tao <redacted>
Co-authored-by: Todd Malsbary <redacted>
4 months agoAdd flash attention MMA / Tiles to support MiMo-V2.5 (#22812)
AesSedai [Sat, 9 May 2026 03:28:29 +0000 (20:28 -0700)]
Add flash attention MMA / Tiles to support MiMo-V2.5 (#22812)

* mimo-v2.5: add flash attention mma/tiles for for d_kq=192 d_v=128

* mimo-v2.5: follow (256, 256) fattn templates

* mimo-v2.5: cleanup comments

* mimo-v2.5: further comment cleanup

* mimo-v2.5: address PR feedback
fix GQA handling
check for other dangling 320/576 carveouts and mirror them for 192
Add to backend ops test so new paths are covered

4 months agohexagon: add HTP kernel for GGML_OP_GATED_DELTA_NET (#22837)
Yanzhao Wang [Sat, 9 May 2026 00:12:04 +0000 (17:12 -0700)]
hexagon: add HTP kernel for GGML_OP_GATED_DELTA_NET (#22837)

Implement the Gated Delta Net recurrence on HVX with:
- 4-row fused kernels for PP (prompt processing) path
- 8-row fused kernels for TG (token generation) path, reducing
  K/Q/gate vector reload overhead by 2x
- Separate PP/TG thread functions for I-cache isolation
- VTCM state scratchpad with DMA in/out for TG single-cycle access
- Vectorized gate exp via hvx_exp_f32

4 months agosycl: support non-contiguous input in PAD op (#22148)
Intel AI Get-to Market Customer Success and Solutions [Sat, 9 May 2026 00:05:22 +0000 (17:05 -0700)]
sycl: support non-contiguous input in PAD op (#22148)

Signed-off-by: Chun Tao <redacted>
Co-authored-by: Chun Tao <redacted>
Co-authored-by: Todd Malsbary <redacted>
4 months agoFeature hexagon l2 norm (#22816)
Pranav Dhinakar [Fri, 8 May 2026 20:41:40 +0000 (13:41 -0700)]
Feature hexagon l2 norm (#22816)

* L2_NORM Updates

* Addressed PR Comments

* ggml-hexagon: add L2_NORM HVX kernel for Hexagon backend

* hex-unary: remove supported_unary_nc since the outer loop is the same for all unary ops

---------

Co-authored-by: Max Krasnyansky <redacted>
4 months agocommon : do not wrap raw strings in schema parser for tagged parsers (#22827)
Aldehir Rojas [Fri, 8 May 2026 20:33:17 +0000 (15:33 -0500)]
common : do not wrap raw strings in schema parser for tagged parsers (#22827)

4 months agomodel : support Gemma4_26B_A4B_NVFP4 (#22804)
ynankani [Fri, 8 May 2026 18:42:09 +0000 (18:42 +0000)]
model : support Gemma4_26B_A4B_NVFP4 (#22804)

* Gemma4_26B_A4B_NvFp4 hf checkpoint convert to gguf format fixes

Signed-off-by: ynankani <redacted>
* Apply suggestions from code review

Co-authored-by: Sigbjørn Skjæret <redacted>
* Address review comments

Signed-off-by: ynankani <redacted>
* fix CRLF

Signed-off-by: ynankani <redacted>
* Lint error fix

Signed-off-by: ynankani <redacted>
---------

Signed-off-by: ynankani <redacted>
Co-authored-by: Sigbjørn Skjæret <redacted>
4 months agocommon : revert reasoning budget +inf logit bias (#22740)
Aldehir Rojas [Fri, 8 May 2026 15:46:43 +0000 (10:46 -0500)]
common : revert reasoning budget +inf logit bias (#22740)

4 months agowebui: fix LLM title generation for agentic conversations (#22840)
smugman-dot [Fri, 8 May 2026 14:36:04 +0000 (15:36 +0100)]
webui: fix LLM title generation for agentic conversations (#22840)

4 months agoserver: support Vertex AI compatible API (#22545)
Xuan-Son Nguyen [Fri, 8 May 2026 13:23:04 +0000 (15:23 +0200)]
server: support Vertex AI compatible API (#22545)

* server: support Vertex AI compatible API

* a bit safer

* support other AIP_* env var

* various fixes

* if AIP_MODE is unset, do nothing

* fix test case

* fix windows build

4 months agoserver: (router) expose child model info from router's /v1/models (#22683)
Xuan-Son Nguyen [Fri, 8 May 2026 12:42:15 +0000 (14:42 +0200)]
server: (router) expose child model info from router's /v1/models (#22683)

* server: (router) expose child model info from router's /v1/models

* update docs

4 months agocuda: fuse snake activation (mul, sin, sqr, mul, add) (#22667)
Pascal [Fri, 8 May 2026 09:44:09 +0000 (11:44 +0200)]
cuda: fuse snake activation (mul, sin, sqr, mul, add) (#22667)

* cuda: fuse snake activation (mul, sin, sqr, mul, add)

Add ggml_cuda_op_snake_fused with F32 / F16 / BF16 templates. The
matcher recognizes the naive 5 op decomposition emitted by audio
decoders (BigVGAN, Vocos) for snake activation
y = x + sin(a*x)^2 * inv_b and rewrites it to a single elementwise
kernel.

Add test_snake_fuse comparing CPU naive vs CUDA fused across
F32 / F16 / BF16.

* cuda: address review feedback from @am17an

Use ggml_cuda_cast for F32/F16/BF16 conversions and rename
kernel_snake to snake_kernel to match upstream conventions.

* cuda: snake fusion fastdiv on T_len, Suggested-by: @am17an

* Update tests/test-backend-ops.cpp

Co-authored-by: Aman Gupta <redacted>
* cuda: snake fusion check add->type matches x->type

Address review feedback from @am17an

* cuda: snake fusion check add->type matches x->type

Moved for readability (equivalent)
Address review feedback from @am17an

---------

Co-authored-by: Aman Gupta <redacted>
4 months agowebui: Add Import/Export of Settings configuration + improve architecture (#22803)
Aleksander Grygier [Fri, 8 May 2026 09:26:04 +0000 (11:26 +0200)]
webui: Add Import/Export of Settings configuration + improve architecture (#22803)

* refactor: Settings keys as constant object keys

* chore: Run `npm audit fix`

* refactor: Settings Sections UI

* feat: Refactor Settings structure and implement import/export logic

* feat: Introduce ROUTES constant and RouterService

* refactor: Consolidate settings definitions into registry

* refactor: Update settings page routing structure

* chore: Migrate hardcoded URLs to use ROUTES and RouterService

* feat: Enhance model selection logic for settings and chat

* chore: Update webui static build

* refactor: Address PR review comments

* fix: Remove unneeded setting

* fix: Re-add missing settings

* fix: Add missing `/slots` proxy for webui dev mode

* chore: Dev-mode logs

* fix: Data binding

* fix: Steering for non-agentic flow

4 months agoCUDA: lower-case PCI bus id, standardize for ggml (#22820)
Johannes Gäßler [Fri, 8 May 2026 08:09:38 +0000 (10:09 +0200)]
CUDA: lower-case PCI bus id, standardize for ggml (#22820)

4 months agovulkan: fix spv shadowing (#22760)
miyan [Fri, 8 May 2026 07:35:22 +0000 (15:35 +0800)]
vulkan: fix spv shadowing (#22760)

4 months agoggml: update SCHED_DEBUG output to use ggml_op_desc() (#22825)
Max Krasnyansky [Fri, 8 May 2026 05:43:04 +0000 (22:43 -0700)]
ggml: update SCHED_DEBUG output to use ggml_op_desc() (#22825)

4 months agoopencl: add q4_0 MoE GEMM for Adreno (#22731)
Shawn Gu [Fri, 8 May 2026 04:17:07 +0000 (21:17 -0700)]
opencl: add q4_0 MoE GEMM for Adreno (#22731)

* Q4_0 MoE CLC pass sanity check

* release program

* opencl: fix whitespace

* opencl: remove unused cl_program

* opencl: break #if block to make it more clear

* opencl: adjust format

---------

Co-authored-by: Li He <redacted>
4 months agoconvert : fix RuntimeError when stripping FP8 KV-cache scales (#22818)
Michał Piszczek [Fri, 8 May 2026 03:55:48 +0000 (05:55 +0200)]
convert : fix RuntimeError when stripping FP8 KV-cache scales (#22818)

* convert : fix RuntimeError when stripping FP8 KV-cache scales

In ModelBase._generate_nvfp4_tensors the final cleanup loop iterates
self.model_tensors.keys() and calls del on the same dict, which raises
RuntimeError: dictionary changed size during iteration when a ModelOpt
NVFP4 model also has FP8 KV-cache scales (e.g. mmangkad/Qwen3.6-35B-A3B-NVFP4
and any modelopt config with kv_cache_quant_algo: FP8).

Wrap the keys view in list() so the deletions happen on a snapshot.

* re-add another accidentally removed list

---------

Co-authored-by: Sigbjørn Skjæret <redacted>
4 months agofix script error (#22795sycl : )
Neo Zhang [Fri, 8 May 2026 03:54:57 +0000 (11:54 +0800)]
fix script error (#22795sycl : )

4 months agomodel: Support sarashina2.2-vision-3b model (#22103)
samuraieng [Thu, 7 May 2026 21:10:29 +0000 (06:10 +0900)]
model: Support sarashina2.2-vision-3b model (#22103)

4 months agoCUDA: batch out_prod inner loop with cublasSgemmStridedBatched (#22651)
leonardHONG [Thu, 7 May 2026 19:59:29 +0000 (03:59 +0800)]
CUDA: batch out_prod inner loop with cublasSgemmStridedBatched (#22651)

* CUDA: batch out_prod inner loop with cublasSgemmStridedBatched

* CUDA: batch out_prod inner loop with cublasSgemmStridedBatched

* CUDA: add cublasSgemmStridedBatched mapping for HIP and MUSA backends

4 months agowebui: add option for LLM title generation (#22265)
smugman-dot [Thu, 7 May 2026 19:14:03 +0000 (20:14 +0100)]
webui: add option for LLM title generation (#22265)

* webui: add LLM title generation option

* webui: use chat_template_kwargs for title gen + fix conversation check

* webui: capture firstUserMessage before async streamChatCompletion to fix race condition

* webui: extract LLM title generation into separate method

* webui: use constants and ChatService for LLM generated titles

* webui: rebuild static output

* webui: add LLM title generation setting to new settings location

* webui: use sendMessage in generateTitle

* webui: rebuild static output

* webui: fix formatting

* webui: configurable title prompt, remove think tag regexes, fix TS error

* webui: group title constants into TITLE object, use TruncatedText for CSS truncation and fix race condition

* webui: rebuild static output

4 months agollama : fix device state save/load (#22805)
Georgi Gerganov [Thu, 7 May 2026 18:43:40 +0000 (21:43 +0300)]
llama : fix device state save/load (#22805)

4 months agoopencl: add opfilter regex for debugging (#22782)
shaofeiqi [Thu, 7 May 2026 18:00:20 +0000 (11:00 -0700)]
opencl: add opfilter regex for debugging (#22782)

4 months agocommon/chat : preserve media markers for typed-content templates (#22634)
Aldehir Rojas [Thu, 7 May 2026 17:50:56 +0000 (12:50 -0500)]
common/chat : preserve media markers for typed-content templates (#22634)

4 months agotests: add long-sequence cases and fix inputs for gated_delta_net (#22794)
HaoJun ZHANG [Thu, 7 May 2026 16:23:36 +0000 (00:23 +0800)]
tests: add long-sequence cases and fix inputs for gated_delta_net (#22794)

* tests : add long-seq + tail cases for gated_delta_net

* tests : realistic input ranges for gated_delta_net

4 months agosycl: add FILL, CUMSUM, DIAG, SOLVE_TRI, SSM_SCAN, GATED_DELTA_NET (#22149)
Intel AI Get-to Market Customer Success and Solutions [Thu, 7 May 2026 15:51:33 +0000 (08:51 -0700)]
sycl: add FILL, CUMSUM, DIAG, SOLVE_TRI, SSM_SCAN, GATED_DELTA_NET (#22149)

* sycl: add FILL, CUMSUM, DIAG, SOLVE_TRI, SSM_SCAN, GATED_DELTA_NET

Signed-off-by: Chun Tao <redacted>
* Fix abort during test-backend-ops

Signed-off-by: Todd Malsbary <redacted>
* Regenerate ops.md

Signed-off-by: Todd Malsbary <redacted>
* Add scope_dbg_print to newly added SYCL ops.

Also add scope_dbg_print to existing ssm_conv op.

Signed-off-by: Todd Malsbary <redacted>
---------

Signed-off-by: Chun Tao <redacted>
Signed-off-by: Todd Malsbary <redacted>
Co-authored-by: Chun Tao <redacted>
Co-authored-by: Todd Malsbary <redacted>
4 months agoWrite a readme on Multi-GPU usage in llama.cpp (#22729)
Gaurav Garg [Thu, 7 May 2026 15:48:40 +0000 (21:18 +0530)]
Write a readme on Multi-GPU usage in llama.cpp (#22729)

* Write a readme on Multi-GPU usage in llama.cpp

* Apply suggestions from code review

Co-authored-by: Johannes Gäßler <redacted>
* Address review comments

* Apply suggestions from code review

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

Co-authored-by: Johannes Gäßler <redacted>
4 months agollama : remove unnecessary seq_id check during state restore (#22797)
Georgi Gerganov [Thu, 7 May 2026 13:37:26 +0000 (16:37 +0300)]
llama : remove unnecessary seq_id check during state restore (#22797)

4 months agoggml-cpu: Optimized risc-v cpu q1_0 dot
pl752 [Thu, 7 May 2026 13:09:25 +0000 (18:09 +0500)]
ggml-cpu: Optimized risc-v cpu q1_0 dot

4 months agomtmd: fix whisper audio tail truncation by exposing padded buffer to FFT (#22770)
Pascal [Thu, 7 May 2026 12:01:01 +0000 (14:01 +0200)]
mtmd: fix whisper audio tail truncation by exposing padded buffer to FFT (#22770)

4 months agomodel: Add Mimo v2.5 model support (#22493)
AesSedai [Thu, 7 May 2026 11:21:58 +0000 (04:21 -0700)]
model: Add Mimo v2.5 model support (#22493)

* add mimo-v2.5 support

* mimo-v2.5: fix modify_tensors row split

* mimi-v2.5: forgot `add_attn_value_scale` plumbing

* mimi-v2.5: fix tp dequant to detect tp rows

* mimo-v2.5: fix TP iteration to be descending

* mimo-v2.5: fix comment

* mimo-v2.5: retain fused qkv

* mimo-v2.5: missed the attn_value scale during merge

* mimo-v2.5: fused QKV needs contiguous for scaling attention value

* mimo-v2.5: move `speech_embeddings.` to TextModel filter_tensors

* Update src/llama-hparams.h

Co-authored-by: Sigbjørn Skjæret <redacted>
* Update src/models/mimo2.cpp

Co-authored-by: Sigbjørn Skjæret <redacted>
* Update src/models/mimo2.cpp

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

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

Co-authored-by: Sigbjørn Skjæret <redacted>
* Update src/models/mimo2.cpp

Co-authored-by: Sigbjørn Skjæret <redacted>
* mimo-v2.5: include MTP weights in gguf

---------

Co-authored-by: Sigbjørn Skjæret <redacted>
4 months agowebui: fix ?model= URL param race in router mode (#22771)
Pascal [Thu, 7 May 2026 11:09:32 +0000 (13:09 +0200)]
webui: fix ?model= URL param race in router mode (#22771)

* webui: fix ?model= URL param race in router mode

* chore: update webui build output

4 months agocodeowners : add ZenDNN backend codeowner (#22772)
Vishal Singh [Thu, 7 May 2026 06:46:51 +0000 (12:16 +0530)]
codeowners : add ZenDNN backend codeowner (#22772)

* codeowners : add ZenDNN backend codeowner

* codeowners : fix zendnn owners to use individual github handles

4 months agowebui: fix flicker issue on dismiss animation on overlay primitives (#22773)
viggy [Thu, 7 May 2026 06:11:31 +0000 (23:11 -0700)]
webui: fix flicker issue on dismiss animation on overlay primitives (#22773)

* add fill-mode-forwards

* generated diffs

4 months agosycl : fix test script (#22737)
Shane Tran Whitmire [Thu, 7 May 2026 05:25:57 +0000 (00:25 -0500)]
sycl : fix test script (#22737)

The error:
./examples/sycl/test.sh: line 122: level_zero:${$GGML_SYCL_DEVICE}: bad
substitution

was thrown whenever the user used this command:
./examples/sycl/test.sh -mg 0

Fix is to get rid of a dollar sign.

4 months agollama : add missing call to ggml_backend_load_all() (#22752)
Adrien Gallouët [Thu, 7 May 2026 05:24:47 +0000 (07:24 +0200)]
llama : add missing call to ggml_backend_load_all() (#22752)

Signed-off-by: Adrien Gallouët <redacted>
4 months agomtmd : support MiniCPM-V 4.6 (#22529)
tc-mb [Wed, 6 May 2026 19:54:09 +0000 (03:54 +0800)]
mtmd : support MiniCPM-V 4.6 (#22529)

* Support MiniCPM-V 4.6 in new branch

Signed-off-by: tc-mb <redacted>
* fix code bug

Signed-off-by: tc-mb <redacted>
* fix pre-commit

Signed-off-by: tc-mb <redacted>
* fix convert

Signed-off-by: tc-mb <redacted>
* rename clip_graph_minicpmv4_6

Signed-off-by: tc-mb <redacted>
* use new TYPE_MINICPMV4_6

Signed-off-by: tc-mb <redacted>
* use build_attn to allow flash attention support

Signed-off-by: tc-mb <redacted>
* no use legacy code, restored here.

Signed-off-by: tc-mb <redacted>
* use the existing tensors name

Signed-off-by: tc-mb <redacted>
* unused ctx->model.hparams.minicpmv_version

Signed-off-by: tc-mb <redacted>
* use n_merge for slice alignment

Signed-off-by: tc-mb <redacted>
* borrow wa_layer_indexes for vit_merger insertion point

Signed-off-by: tc-mb <redacted>
* fix code style

Signed-off-by: tc-mb <redacted>
* Update convert_hf_to_gguf.py

Co-authored-by: Sigbjørn Skjæret <redacted>
* use filter_tensors and add model.vision_tower

Signed-off-by: tc-mb <redacted>
* fix chkhsh

Signed-off-by: tc-mb <redacted>
* fix type check

Signed-off-by: tc-mb <redacted>
---------

Signed-off-by: tc-mb <redacted>
Co-authored-by: Sigbjørn Skjæret <redacted>
4 months agomodel : don't crash on unsupported architecture (#22742)
Gilad S. [Wed, 6 May 2026 16:51:21 +0000 (11:51 -0500)]
model : don't crash on unsupported architecture (#22742)

* model: don't crash on unsupported architecture

* Update src/llama-model.cpp

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

Co-authored-by: Sigbjørn Skjæret <redacted>
4 months agocommon: do not fit to unknown device memory (#22614)
fl0rianr [Wed, 6 May 2026 15:03:45 +0000 (17:03 +0200)]
common: do not fit to unknown device memory (#22614)

* common: do not fit to unknown device memory

Signed-off-by: Florian Reinle <redacted>
* common: preserve host fallback for non-GPU fit devices

Signed-off-by: Florian Reinle <redacted>
* common: keep unknown GPU fit memory at zero

Signed-off-by: Florian Reinle <redacted>
---------

Signed-off-by: Florian Reinle <redacted>
4 months agogguf-py : bump version to 0.19.0 (#22664)
Georgi Gerganov [Wed, 6 May 2026 12:46:14 +0000 (15:46 +0300)]
gguf-py : bump version to 0.19.0 (#22664)

* gguf-py : bump version to 0.19.0

* bump poetry

---------

Co-authored-by: Sigbjørn Skjæret <redacted>
4 months agomtmd: add granite-speech support (ibm-granite/granite-4.0-1b-speech) (#22101)
Yakine Tahtah [Wed, 6 May 2026 12:40:59 +0000 (14:40 +0200)]
mtmd: add granite-speech support (ibm-granite/granite-4.0-1b-speech) (#22101)

* mtmd: add granite-speech support (ibm-granite/granite-4.0-1b-speech)

Conformer encoder with Shaw relative position encoding,
QFormer projector, log-mel spectrogram with frame stacking.

Encoder uses GLU gating, folded batch norm, and SSM depthwise
conv. QFormer compresses encoder output via windowed
cross-attention (window=15, queries=3) into the LLM embedding
space.

Audio preprocessing: reflect-padded STFT, 80-bin mel filterbank,
dynamic range compression, 2x frame stacking (80->160 mel).

GGUF converter handles batch norm folding at export time,
fused K/V split, and Conv1d weight reshaping.

Tested against HF transformers reference: token-for-token match
on 30s/60s audio clips with greedy decoding.

* mtmd: rename gs_ prefixed tensors to generic/architecture names

* mtmd: use tensor_mapping.py for all granite_speech tensors

* convert: fold GraniteSpeechTextModel into GraniteModel

* mtmd: replace n_layer hack with explicit has_standard_layers flag

* mtmd: replace hardcoded magic numbers with GGUF hparams for granite speech

* mtmd: align KEY_A_ define spacing

* convert: register GraniteModel for GraniteSpeechForConditionalGeneration

* convert: fix ty type-check for GraniteSpeechMmprojModel registration

* mtmd: align TN_ define spacing

* mtmd: use generic layer loop for granite speech tensor loading

* mtmd: merge qformer_proj_layer into clip_layer

* mtmd: granite_speech remove redundant ggml_build_forward_expand on inputs

* mtmd: granite_speech add comment explaining why build_attn is not used

* mtmd: granite_speech hard-code eps in cpp, remove from GGUF metadata

* gguf: add spacing between granite_speech tensor mapping blocks

* mtmd: make generic audio layer_norm_eps read optional

* mtmd: granite_speech keep encoder eps in GGUF, only hard-code projector eps

* mtmd: align defines and struct fields in clip-impl.h and clip-model.h

* mtmd: fix alignment and ordering issues across granite speech files

* convert: granite_speech use filter_tensors instead of modify_tensors for skipping

4 months agofeat: migrate to PEP 621 and add uv support (#21907)
David Huggins-Daines [Wed, 6 May 2026 12:04:10 +0000 (08:04 -0400)]
feat: migrate to PEP 621 and add uv support (#21907)

* feat: migrate to PEP 621 and add uv support

* fix: remove upper bound on protobuf

* remove poetry.lock and uv.lock

* fix/add torch dependency version and markers

* fix dev-dependency deprecation warning

* gguf-py : update python version requirement to 3.10

---------

Co-authored-by: David Huggins-Daines <redacted>
Co-authored-by: Daniel Bevenius <redacted>
4 months agoconvert : ignore non-language tensors for Gemma4Model (#22753)
Daniel Bevenius [Wed, 6 May 2026 11:50:44 +0000 (13:50 +0200)]
convert : ignore non-language tensors for Gemma4Model (#22753)

* convert : ignore non-language tensors for Gemma4Model

This commit adds a check to make sure only text language tensors are
handled in filter_tensors.

The motivation is that currently when trying to convert a Gemma4 model
the following error occurs:
```console
(venv) $ ./convert-gemma.sh
INFO:hf-to-gguf:Loading model: gemma-4-E2B-it
INFO:hf-to-gguf:Model architecture: Gemma4ForConditionalGeneration
INFO:hf-to-gguf:gguf: indexing model part 'model.safetensors'
INFO:gguf.gguf_writer:gguf: This GGUF file is for Little Endian only
INFO:hf-to-gguf:Exporting model...
INFO:hf-to-gguf:rope_freqs.weight,                 torch.float32 --> F32, shape = {256}
Traceback (most recent call last):
  File "/home/danbev/work/llama.cpp/./convert_hf_to_gguf.py", line 13752, in <module>
    main()
  File "/home/danbev/work/llama.cpp/./convert_hf_to_gguf.py", line 13746, in main
    model_instance.write()
  File "/home/danbev/work/llama.cpp/./convert_hf_to_gguf.py", line 945, in write
    self.prepare_tensors()
  File "/home/danbev/work/llama.cpp/./convert_hf_to_gguf.py", line 805, in prepare_tensors
    for new_name, data_torch in (self.modify_tensors(data_torch, name, bid)):
  File "/home/danbev/work/llama.cpp/./convert_hf_to_gguf.py", line 7925, in modify_tensors
    yield from super().modify_tensors(data_torch, name, bid)
  File "/home/danbev/work/llama.cpp/./convert_hf_to_gguf.py", line 7290, in modify_tensors
    yield from super().modify_tensors(data_torch, name, bid)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/danbev/work/llama.cpp/./convert_hf_to_gguf.py", line 579, in modify_tensors
    new_name = self.map_tensor_name(name)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/danbev/work/llama.cpp/./convert_hf_to_gguf.py", line 572, in map_tensor_name
    raise ValueError(f"Can not map tensor {name!r}")
ValueError: Can not map tensor 'model.embed_vision.embedding_projection.weight'
```

* add forgotten embed_vision and embed_audio

* improve

---------

Co-authored-by: Sigbjørn Skjæret <redacted>
4 months agowebui: Remove Google Favicons & Improve MCP Information logic & UI (#22719)
Aleksander Grygier [Wed, 6 May 2026 09:12:27 +0000 (11:12 +0200)]
webui: Remove Google Favicons & Improve MCP Information logic & UI (#22719)

* refactor: Remove Google favicon utility

* fix: MCP Server favicon

* refactor: Cleanup

* refactor: MCP Server Information

* fix: Fix MCP Settings UI

* refactor: Cleanup

4 months agoggml-cpu: fuse RMS_NORM + MUL on CPU backend (#22423)
zzzzwc [Wed, 6 May 2026 07:41:14 +0000 (15:41 +0800)]
ggml-cpu: fuse RMS_NORM + MUL on CPU backend  (#22423)

4 months agoadd tabindex and aria-hidden (#22699)
viggy [Wed, 6 May 2026 07:21:58 +0000 (00:21 -0700)]
add tabindex and aria-hidden (#22699)

4 months agoconvert : add filter_tensors method to pre-filter tensors (#22597)
Sigbjørn Skjæret [Wed, 6 May 2026 06:06:05 +0000 (08:06 +0200)]
convert : add filter_tensors method to pre-filter tensors (#22597)

* add filter_tensors classmethod

* remove language_model

* fix parts validation

4 months agoggml : use `CL_DEVICE_GLOBAL_MEM_SIZE` as memory estimate for OpenCL --fit (#22688)
fl0rianr [Wed, 6 May 2026 05:12:48 +0000 (07:12 +0200)]
ggml : use `CL_DEVICE_GLOBAL_MEM_SIZE` as memory estimate for OpenCL --fit (#22688)

* ggml : report estimated OpenCL memory for --fit

Signed-off-by: Florian Reinle <redacted>
* ggml : estimated OpenCL memory backend integrated

Signed-off-by: Florian Reinle <redacted>
---------

Signed-off-by: Florian Reinle <redacted>
4 months agoHexagon: Process M-tail rows on HMX instead of HVX (#22724)
Trivikram Reddy [Tue, 5 May 2026 16:43:03 +0000 (11:43 -0500)]
Hexagon: Process M-tail rows on HMX instead of HVX (#22724)

* hex-mm: process m-tail rows on HMX instead of HVX

* hmx-mm: unroll and optimize padded activation loop

---------

Co-authored-by: Max Krasnyansky <redacted>
4 months agoopencl: refactor Adreno q4_0 (#22335)
lhez [Tue, 5 May 2026 16:38:57 +0000 (09:38 -0700)]
opencl: refactor Adreno q4_0 (#22335)

* opencl: refactor adreno q4_0 gemm/gemv dispatch

* opencl: refactor q4_0 gemm/gemv loading, use consistent names

* opencl: use consistent name for adreno q8_0 gemm/gemv

* opencl: use consistent names for adreno q4_0 gemm/gemv

* opencl: simplify adreno q4_0 set_tensor

* opencl: refactor q4_0 get_tensor

4 months agorpc : use graph uid instead of graph cache (#22701)
Radoslav Gerganov [Tue, 5 May 2026 10:47:13 +0000 (13:47 +0300)]
rpc : use graph uid instead of graph cache (#22701)

Store the last graph uid and compare against it to determine if the same
graph is being computed.

4 months agocommon : fix missing-noreturn warnings when compiling with clang 21 (#22702)
Adrien Gallouët [Tue, 5 May 2026 10:16:25 +0000 (12:16 +0200)]
common : fix missing-noreturn warnings when compiling with clang 21 (#22702)

common/arg.cpp:3719:9: error: function 'operator()' could be declared with attribute 'noreturn' [-Werror,-Wmissing-noreturn]
     3719 |         [](common_params & /*params*/, int /*value*/) {
          |         ^
    common/arg.cpp:3726:9: error: function 'operator()' could be declared with attribute 'noreturn' [-Werror,-Wmissing-noreturn]
     3726 |         [](common_params & /*params*/, int /*value*/) {
          |         ^
    common/arg.cpp:3733:9: error: function 'operator()' could be declared with attribute 'noreturn' [-Werror,-Wmissing-noreturn]
     3733 |         [](common_params & /*params*/, int /*value*/) {
          |         ^
    common/arg.cpp:3740:9: error: function 'operator()' could be declared with attribute 'noreturn' [-Werror,-Wmissing-noreturn]
     3740 |         [](common_params & /*params*/, int /*value*/) {
          |         ^
    common/arg.cpp:3747:9: error: function 'operator()' could be declared with attribute 'noreturn' [-Werror,-Wmissing-noreturn]
     3747 |         [](common_params & /*params*/, int /*value*/) {
          |         ^

Signed-off-by: Adrien Gallouët <redacted>
4 months agosync : ggml
Georgi Gerganov [Tue, 5 May 2026 10:15:19 +0000 (13:15 +0300)]
sync : ggml

4 months agoggml : bump version to 0.11.0 (ggml/1478)
Georgi Gerganov [Tue, 5 May 2026 10:14:32 +0000 (13:14 +0300)]
ggml : bump version to 0.11.0 (ggml/1478)

4 months agocommon : only load backends when required (#22290)
Adrien Gallouët [Tue, 5 May 2026 07:23:50 +0000 (09:23 +0200)]
common : only load backends when required (#22290)

* common : only load backends when required

Signed-off-by: Adrien Gallouët <redacted>
* llama : call ggml_backend_load_all() directly from llama_backend_init()

Signed-off-by: Adrien Gallouët <redacted>
* Add ggml_backend_load_all() where llama_backend_init() is not used

Signed-off-by: Adrien Gallouët <redacted>
---------

Signed-off-by: Adrien Gallouët <redacted>
4 months agovendor : update cpp-httplib to 0.43.3 (#22686)
Alessandro de Oliveira Faria (A.K.A.CABELO) [Tue, 5 May 2026 07:04:57 +0000 (04:04 -0300)]
vendor : update cpp-httplib to 0.43.3 (#22686)

4 months agoserver : validate --tools CLI argument against known tool names (#22538)
Georgi Gerganov [Tue, 5 May 2026 03:35:27 +0000 (06:35 +0300)]
server : validate --tools CLI argument against known tool names (#22538)

Previously, unknown tool names passed via --tools were silently ignored.
Now the server validates each tool name at startup and exits with an
error if an unrecognized tool is specified, listing the available tools.

Assisted-by: llama.cpp:local pi
4 months agollama : add option to save memory in device buffers (#22679)
Georgi Gerganov [Tue, 5 May 2026 03:35:07 +0000 (06:35 +0300)]
llama : add option to save memory in device buffers (#22679)

* llama : add option to save memory in device buffers

* tests : extend llama-save-load-state

4 months agograph : handle non-contiguous Q/K/V in mul_mat_aux (#22630)
Sigbjørn Skjæret [Tue, 5 May 2026 03:34:44 +0000 (05:34 +0200)]
graph : handle non-contiguous Q/K/V in mul_mat_aux (#22630)

* qkv may not always be contiguous

* cont : make the cont conditional

---------

Co-authored-by: Georgi Gerganov <redacted>
4 months agoggml : implement fast walsh-hadamard transform for kv rotation (#21352) (#22631)
Ismail [Tue, 5 May 2026 02:05:05 +0000 (04:05 +0200)]
ggml : implement fast walsh-hadamard transform for kv rotation (#21352) (#22631)

4 months agokleidiai : update to v1.24.0 and use release archive (#22549)
Charles Xu [Mon, 4 May 2026 19:13:31 +0000 (21:13 +0200)]
kleidiai : update to v1.24.0 and use release archive (#22549)

4 months agoCUDA: use fastdiv for batch index split in get_rows (#22650)
leonardHONG [Mon, 4 May 2026 14:24:05 +0000 (22:24 +0800)]
CUDA: use fastdiv for batch index split in get_rows (#22650)

4 months agoserver: implement /models?reload=1 (#21848)
Xuan-Son Nguyen [Mon, 4 May 2026 14:23:26 +0000 (16:23 +0200)]
server: implement /models?reload=1 (#21848)

4 months agoexamples: refactor diffusion generation (#22590)
Shakhnazar Sailaukan [Mon, 4 May 2026 12:19:30 +0000 (16:19 +0400)]
examples: refactor diffusion generation (#22590)

* examples: refactor diffusion generation

* renamed enum values

4 months agowebui : fix circular dependency between chat.service.ts and models.svelte.ts (#22625)
JusteLeo [Mon, 4 May 2026 11:38:10 +0000 (13:38 +0200)]
webui : fix circular dependency between chat.service.ts and models.svelte.ts (#22625)

4 months agocommon/autoparser: fixes for newline handling / forced tool calls (#22654)
Piotr Wilkin (ilintar) [Mon, 4 May 2026 11:18:11 +0000 (13:18 +0200)]
common/autoparser: fixes for newline handling / forced tool calls (#22654)

* chat/autoparser: the fixes

* Move optspace() to chat-peg-parser, comment out server tests invalidated due to content now allowed with forced tool calls.

* Trim whitespace on apply instead

4 months agomodel: move `load_hparams` and `load_tensors` to per-model definition (#22004)
Xuan-Son Nguyen [Mon, 4 May 2026 10:36:59 +0000 (12:36 +0200)]
model: move `load_hparams` and `load_tensors` to per-model definition (#22004)

* git-friendly migration

* add build_graph

* nits

* exclude old code from build

* wip

* add llm_arch_model_i

* prepare downstream functions

* nits

* nits

* wip

* wip

* add back create_tensor_qkv

* fix files missing include

* enforce one llm_build per arch

* cmake: use glob

* missing model params

* nits

* wip

* wip (2)

* wip (3)

* test-llama-archs is happy

* improve switch case

* move more stuff into llm_arch_model_i

* fix downstream code

* nits

* nits (2)

* fix order

* llama_model_base

* LLAMA_LOAD_LOCALS

* small fix

* fix build errors

* auto

* rm migration script and ifdef

4 months agoserver: Add a simple get_datetime server tool (#22649)
Evan Huus [Mon, 4 May 2026 10:19:41 +0000 (06:19 -0400)]
server: Add a simple get_datetime server tool (#22649)

4 months agowebui: restore missing settings (#22666)
Nick Towle [Mon, 4 May 2026 07:04:07 +0000 (00:04 -0700)]
webui: restore missing settings (#22666)

4 months agodocs : update speculative decoding parameters after refactor (#22397) (#22539)
Georgi Gerganov [Mon, 4 May 2026 05:52:07 +0000 (08:52 +0300)]
docs : update speculative decoding parameters after refactor (#22397) (#22539)

* docs : update speculative decoding parameters after refactor (#22397)

Update docs/speculative.md to reflect the new parameter naming scheme
introduced in PR #22397:

- Replace --draft-max/--draft-min with --spec-draft-n-max/--spec-draft-n-min
- Replace --spec-ngram-size-n/m with per-implementation variants
- Add documentation for all new --spec-ngram-*- parameters
- Update all example commands

Assisted-by: llama.cpp:local pi
* pi : add rule to use gh CLI for GitHub resources

Assisted-by: llama.cpp:local pi
* docs : run llama-gen-docs

* arg : fix typo

4 months agovulkan: delete dead GGML_VK_MAX_NODES def (#22621)
Atomic-Germ [Mon, 4 May 2026 05:49:29 +0000 (22:49 -0700)]
vulkan: delete dead GGML_VK_MAX_NODES def (#22621)

4 months agoggml-webgpu: add layer norm ops (#22406)
Chen Yuan [Mon, 4 May 2026 03:52:53 +0000 (23:52 -0400)]
ggml-webgpu: add layer norm ops (#22406)

* shader(norm): add layer norm ops

* shader(norm): stablize floating point computation with Kahan summation and handle mixed types

* shader(norm): remove the non-contiguous strides

* shader(norm): use the original implementation rather than the kahan summation

4 months agocommon : determine generation prompt using longest common prefix (#22657)
Aldehir Rojas [Sun, 3 May 2026 22:18:23 +0000 (17:18 -0500)]
common : determine generation prompt using longest common prefix (#22657)

4 months agoconvert : Mistral format yarn apply_scale support (#22612)
Julien Denize [Sun, 3 May 2026 19:51:21 +0000 (21:51 +0200)]
convert :  Mistral format yarn apply_scale support (#22612)

* [BUGFIX] Mistral format apply_scale support.

* Update convert_hf_to_gguf.py

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

---------

Co-authored-by: Sigbjørn Skjæret <redacted>
4 months agoconvert : apply Q/K RoPE permutation in NVFP4 repack path (#22611)
JM Robles [Sun, 3 May 2026 15:22:00 +0000 (17:22 +0200)]
convert : apply Q/K RoPE permutation in NVFP4 repack path (#22611)

Llama-architecture q_proj/k_proj weights need an axis-0 row permutation
to match GGML's RoPE convention. The BF16 path applies this in
LlamaModel.modify_tensors via LlamaModel.permute, but the NVFP4 path
bypasses modify_tensors and writes weights directly through
ModelBase._repack_nvfp4. Without the permutation, attention heads end
up scrambled at inference and the model produces gibberish.

This change overrides _repack_nvfp4 on LlamaModel and applies the same
permutation to both the nibble-packed weight and the per-block scale
before delegating to ModelBase._repack_nvfp4 via super(). Reuses the
existing LlamaModel.permute static helper and respects the existing
undo_permute flag, so subclasses (Mistral, Granite, Llama4, etc.)
inherit the fix automatically.

Verified on TinyLlama-1.1B reproducer: perplexity drops from 4419
(gibberish) to 43.9, matching the BF16-dequantized baseline (44.0).
Also verified end-to-end on ALIA-40b-instruct-2601 (BSC, Llama
architecture) with multilingual generation in Spanish/Catalan/Basque/
Galician all coherent with the fix applied.

Co-authored-by: Chema <redacted>
4 months agofix: CUDA device PCI bus ID de-dupe OOMing (ignoring other 3 gpus entirely) (#22533)
lucy [Sat, 2 May 2026 20:19:25 +0000 (16:19 -0400)]
fix: CUDA device PCI bus ID de-dupe OOMing (ignoring other 3 gpus entirely) (#22533)

* fix: CUDA device PCI bus ID detection for multi-GPU de-dupe

* HIP, MUSA macros

---------

Co-authored-by: Johannes Gäßler <redacted>
4 months agoserver : avoid checkpoint data host copies (#22558)
Georgi Gerganov [Sat, 2 May 2026 15:03:25 +0000 (18:03 +0300)]
server : avoid checkpoint data host copies (#22558)

* server : avoid checkpoint data host copies

* llama : refactor llama_io_read_i

4 months agoggml-virtgpu: fix circular dependency in headers (#22557)
JusteLeo [Sat, 2 May 2026 13:28:50 +0000 (15:28 +0200)]
ggml-virtgpu: fix circular dependency in headers (#22557)

4 months agoconvert : disable uint types (#18908)
Csaba Kecskemeti [Sat, 2 May 2026 06:05:59 +0000 (23:05 -0700)]
convert : disable uint types (#18908)

4 months agoopencl: Adreno optimization for MoE - MxFP4 (#22301)
Shawn Gu [Sat, 2 May 2026 06:02:24 +0000 (23:02 -0700)]
opencl: Adreno optimization for MoE - MxFP4 (#22301)

* MoE Mxfp4 CLC kernel added, router reorder on GPU

* Pass test-backend-ops for MoE mxfp4 Adreno CLC

* remove putenv in llama-model.cpp

* fix indent style and whitespace

* opencl: remove unnecessary headers

* opencl: do not save cl_program objects

* opencl: remove unnecessary assert

* fix precision issue

---------

Co-authored-by: Li He <redacted>
4 months agoGithub: update issue templates (#22594)
Johannes Gäßler [Sat, 2 May 2026 05:56:13 +0000 (07:56 +0200)]
Github: update issue templates (#22594)

4 months agosync : ggml
Georgi Gerganov [Sat, 2 May 2026 05:46:31 +0000 (08:46 +0300)]
sync : ggml

4 months agoggml : bump version to 0.10.2 (ggml/1474)
Georgi Gerganov [Sat, 2 May 2026 05:45:46 +0000 (08:45 +0300)]
ggml : bump version to 0.10.2 (ggml/1474)