]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/log
pkg/ggml/sources/llama.cpp
2 months agomodel : add AfmoeForCausalLM support (#16477)
Bartowski [Fri, 14 Nov 2025 12:54:10 +0000 (07:54 -0500)]
model : add AfmoeForCausalLM support (#16477)

* Add AFMOE model support

* Update to vocab

* Add model sizing

* Undo Rope change for ARCEE model

* Address review comments

* Update modeling code is_sliding -> use_rope, replace hard-coded logic

* Fix AFMOE tokenizer

* 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 AFMoE tokenizer class identification to be more unique

---------

Co-authored-by: Sigbjørn Skjæret <redacted>
2 months agofix : Dangling pointer for non-empty trigger words in lazy grammar construction ...
Marek Hradil jr. [Fri, 14 Nov 2025 12:35:26 +0000 (13:35 +0100)]
fix : Dangling pointer for non-empty trigger words in lazy grammar construction (#17048)

* fix : Dangling pointer for non-empty trigger words in llama_sampler_init_grammar_impl (#17047)

* Replace 'static' workaround, with keeping variable in scope for longer

* Create std::array directly and pass into llama_grammar_init_impl

* Add back the trigger pattern

* Missed array include

2 months agoserver : fix "can batch with" bug (#17263)
Georgi Gerganov [Fri, 14 Nov 2025 12:03:45 +0000 (14:03 +0200)]
server : fix "can batch with" bug (#17263)

2 months agometal : support argsort for ne00 > 1024 (#17247)
Georgi Gerganov [Fri, 14 Nov 2025 07:36:06 +0000 (09:36 +0200)]
metal : support argsort for ne00 > 1024 (#17247)

* metal : refactor argsort

* cont : sort chunks

* cont : merge sorted buckets

* cont : cleanup

2 months agometal : make the FA extra sizes consistent (#17143)
Georgi Gerganov [Fri, 14 Nov 2025 07:13:34 +0000 (09:13 +0200)]
metal : make the FA extra sizes consistent (#17143)

2 months agoreadme : add RVV,ZVFH,ZFH,ZICBOP support for RISC-V (#17259)
ixgbe [Fri, 14 Nov 2025 07:12:56 +0000 (15:12 +0800)]
readme : add RVV,ZVFH,ZFH,ZICBOP support for RISC-V (#17259)

Signed-off-by: Wang Yang <redacted>
2 months agoBetter UX for handling multiple attachments in WebUI (#17246)
Aleksander Grygier [Fri, 14 Nov 2025 00:19:08 +0000 (01:19 +0100)]
Better UX for handling multiple attachments in WebUI (#17246)

2 months agoggml-cpu: handle 3d tensors in repack mat_mul (#17241)
Alberto Cabrera Pérez [Thu, 13 Nov 2025 20:53:00 +0000 (20:53 +0000)]
ggml-cpu: handle 3d tensors in repack mat_mul (#17241)

* ggml-cpu: handle 3d tensors in repack mul_mat

* Removed unnecessary branch, removed need for <algorithm>

* Fixed dst_ptr pointer in chunk + clang_format

* GGML_ASSERT to check wdata within bounds

* Accidental ggml.h inclusion

* Improved GGML_ASSERT on wdata boundaries

* Address performance regression in Qwen and llama.cpp due to chunking

2 months agoserver: fixing naming conflict res_error (#17243)
Xuan-Son Nguyen [Thu, 13 Nov 2025 19:53:47 +0000 (20:53 +0100)]
server: fixing naming conflict res_error (#17243)

2 months agoggml : add ops SOFTPLUS, EXPM1, TRI, SOLVE_TRI, CUMSUM (#17063)
Piotr Wilkin (ilintar) [Thu, 13 Nov 2025 18:54:47 +0000 (19:54 +0100)]
ggml : add ops SOFTPLUS, EXPM1, TRI, SOLVE_TRI, CUMSUM (#17063)

* Add ops needed for new hybrid models: SOFTPLUS, EXPM1, TRI, SOLVE_TRI, CUMSUM

* Update ggml/include/ggml.h

Co-authored-by: Georgi Gerganov <redacted>
* Update tests/test-backend-ops.cpp

Co-authored-by: Georgi Gerganov <redacted>
* Code review

* Whitespace

* Update tests/test-backend-ops.cpp

Co-authored-by: Diego Devesa <redacted>
* This is actually sigmoid, duh.

* Add CONST, remove TRI_KEEP, other changes from review

* Update tests/test-backend-ops.cpp

Co-authored-by: Georgi Gerganov <redacted>
* Update ggml/src/ggml.c

Co-authored-by: Georgi Gerganov <redacted>
* Update ggml/src/ggml.c

Co-authored-by: Georgi Gerganov <redacted>
* Update ggml/src/ggml-cuda/unary.cu

Co-authored-by: Aman Gupta <redacted>
* Remove extra script

* Update ggml/src/ggml.c

Co-authored-by: Diego Devesa <redacted>
* Update tests/test-backend-ops.cpp

Co-authored-by: Diego Devesa <redacted>
* moving changes from laptop [no ci]

* pre-rebase

* Update tests/test-backend-ops.cpp

Co-authored-by: Sigbjørn Skjæret <redacted>
* Update tests/test-backend-ops.cpp

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

* ggml : cleanup

* cont : fix ggml_fill srcs

* tests : add note

* ggml : add ggml_fill_inplace

* ggml : add asserts

* ggml : fix ggml_fill constant cast

* cont : ggml_tri minor

* Use TENSOR_LOCALS

* Fix regression from #14596, regenerate

* Don't make commits at night...

---------

Co-authored-by: Georgi Gerganov <redacted>
Co-authored-by: Diego Devesa <redacted>
Co-authored-by: Aman Gupta <redacted>
Co-authored-by: Sigbjørn Skjæret <redacted>
2 months agovulkan: remove shell call from vulkan-shaders-gen tool, revert file check (#17219)
Ruben Ortlam [Thu, 13 Nov 2025 13:51:21 +0000 (14:51 +0100)]
vulkan: remove shell call from vulkan-shaders-gen tool, revert file check (#17219)

* vulkan: remove shell call from vulkan-shaders-gen tool

* use string vector for command execution

* Fix condition

* use string, remove const_cast

* Fix dependency file quotation on Windows

---------

Co-authored-by: Jeff Bolz <redacted>
2 months agosched : fix reserve ignoring user tensor assignments (#17232)
Diego Devesa [Thu, 13 Nov 2025 12:14:02 +0000 (04:14 -0800)]
sched : fix reserve ignoring user tensor assignments (#17232)

2 months agoggml-cpu : add RISC-V vector intrinsic support for silu and cvar operations (#17227)
ixgbe [Thu, 13 Nov 2025 12:13:32 +0000 (20:13 +0800)]
ggml-cpu : add RISC-V vector intrinsic support for silu and cvar operations (#17227)

Signed-off-by: Wang Yang <redacted>
2 months agometal: accelerated conv2d (#17175)
bagheera [Thu, 13 Nov 2025 11:32:44 +0000 (05:32 -0600)]
metal: accelerated conv2d (#17175)

* metal: accelerated conv2d

* cont : cleanup

---------

Co-authored-by: bghira <redacted>
Co-authored-by: Georgi Gerganov <redacted>
2 months agoRevert "ggml-cpu: handle 3d tensors in repack mat_mul (#17030)" (#17233)
Georgi Gerganov [Thu, 13 Nov 2025 10:59:37 +0000 (12:59 +0200)]
Revert "ggml-cpu: handle 3d tensors in repack mat_mul (#17030)" (#17233)

This reverts commit 1c398dc9eca9c366ce98deb0e6f3538e444ebc8a.

2 months agoggml-cpu : use template for argsort (#17222)
Diego Devesa [Thu, 13 Nov 2025 08:59:05 +0000 (00:59 -0800)]
ggml-cpu : use template for argsort (#17222)

2 months agoCANN: Add cross_entropy_loss op support (#16886)
TecJesh [Thu, 13 Nov 2025 01:39:51 +0000 (09:39 +0800)]
CANN: Add cross_entropy_loss op support (#16886)

* update L2_NORM op support

* update L2_NORM op support

* remove extra whitespace

* cann: update cross_entropy_loss op support

* remove trailing whitespaces

* rebase the latest code in the main repository and remove the l2_norm operator that already exists in another pull request.

* undo the l2_norm operator deletion

2 months agoCUDA: fuse rope + set_rows (#16884)
Aman Gupta [Thu, 13 Nov 2025 00:50:01 +0000 (08:50 +0800)]
CUDA: fuse rope + set_rows (#16884)

* CUDA: add fused rope

* move k forward_expand up

* create helper function instead of re-using params

* make assert statement more in line with comment

* rope_norm: coalesced writes to global mem

2 months agoupdate SYCL support OPs (#17208)
Neo Zhang Jianyu [Thu, 13 Nov 2025 00:42:23 +0000 (08:42 +0800)]
update SYCL support OPs (#17208)

Co-authored-by: Zhang Jianyu <redacted>
2 months agovocab : correct bounds check for UGM XCDA array access (#17215)
o7si [Wed, 12 Nov 2025 22:41:02 +0000 (06:41 +0800)]
vocab : correct bounds check for UGM XCDA array access (#17215)

2 months agoCUDA: static assert to prevent misuse of memcpy_1 (#17198)
Johannes Gäßler [Wed, 12 Nov 2025 22:13:55 +0000 (23:13 +0100)]
CUDA: static assert to prevent misuse of memcpy_1 (#17198)

2 months agodocker : preserve .so symlinks for docker container builds (#17214)
Mike Abbott [Wed, 12 Nov 2025 19:33:55 +0000 (12:33 -0700)]
docker : preserve .so symlinks for docker container builds (#17214)

2 months agoggml : use std::sort in ggml_argsort CPU implementation (#17211)
Georgi Gerganov [Wed, 12 Nov 2025 18:43:38 +0000 (20:43 +0200)]
ggml : use std::sort in ggml_argsort CPU implementation (#17211)

* ggml : use std::sort in ggml_argsort CPU implementation

* cont : add missing header

2 months agoUpdate packages + upgrade Storybook to v10 (#17201)
Aleksander Grygier [Wed, 12 Nov 2025 18:01:48 +0000 (19:01 +0100)]
Update packages + upgrade Storybook to v10 (#17201)

* chore: Update packages + upgrade Storybook to v10

* fix: Increase timeout for UI tests

2 months agoserver: (refactor) implement generator-based API for task results (#17174)
Xuan-Son Nguyen [Wed, 12 Nov 2025 17:50:52 +0000 (18:50 +0100)]
server: (refactor) implement generator-based API for task results (#17174)

* server: (refactor) implement generator-based API for task results

* improve

* moving some code

* fix "Response ended prematurely"

* add sink.done before return false

* rm redundant check

* rm unused var

* rename generator --> reader

2 months agoci: add check vendor job (#17179)
Xuan-Son Nguyen [Wed, 12 Nov 2025 13:56:02 +0000 (14:56 +0100)]
ci: add check vendor job (#17179)

* ci: add check vendor job

* use dev version of miniaudio

* move to dedicated workflow, only run on related files changed

2 months agoserver: move res_error/res_ok to static function (#17167)
Xuan-Son Nguyen [Wed, 12 Nov 2025 13:17:24 +0000 (14:17 +0100)]
server: move res_error/res_ok to static function (#17167)

2 months agoggml-cpu: handle 3d tensors in repack mat_mul (#17030)
Alberto Cabrera Pérez [Wed, 12 Nov 2025 12:52:19 +0000 (12:52 +0000)]
ggml-cpu: handle 3d tensors in repack mat_mul (#17030)

* ggml-cpu: handle 3d tensors in repack mul_mat

* Removed unnecessary branch, removed need for <algorithm>

* Fixed dst_ptr pointer in chunk + clang_format

* GGML_ASSERT to check wdata within bounds

* Accidental ggml.h inclusion

* Improved GGML_ASSERT on wdata boundaries

2 months agocmake : cleanup (#17199)
Adrien Gallouët [Wed, 12 Nov 2025 12:48:30 +0000 (13:48 +0100)]
cmake : cleanup (#17199)

2 months agocmake : move OpenSSL linking to vendor/cpp-httplib (#17177)
Adrien Gallouët [Wed, 12 Nov 2025 11:32:50 +0000 (12:32 +0100)]
cmake : move OpenSSL linking to vendor/cpp-httplib (#17177)

* cmake : move OpenSSL linking to vendor/cpp-httplib

Signed-off-by: Adrien Gallouët <redacted>
* bring back httplib 0.27.0

* add -DLLAMA_HTTPLIB

* update cmake config for visionos

---------

Signed-off-by: Adrien Gallouët <redacted>
Co-authored-by: Xuan Son Nguyen <redacted>
2 months agoCANN: Add L2_NORM op support (#16856)
TecJesh [Wed, 12 Nov 2025 07:11:42 +0000 (15:11 +0800)]
CANN: Add L2_NORM op support (#16856)

* update L2_NORM op support

* update L2_NORM op support

* remove extra whitespace

2 months ago[SYCL]fix ci crash about SSM_CONV (#17169)
Neo Zhang Jianyu [Wed, 12 Nov 2025 06:44:29 +0000 (14:44 +0800)]
[SYCL]fix ci crash about SSM_CONV (#17169)

* fix ci crash

* Update ggml-sycl.cpp

* Update ggml/src/ggml-sycl/ggml-sycl.cpp

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

Co-authored-by: Zhang Jianyu <redacted>
Co-authored-by: Sigbjørn Skjæret <redacted>
2 months agoCANN: GGML_CANN_ACL_GRAPH works only USE_ACL_GRAPH enabled (#16861)
Raul Torres [Wed, 12 Nov 2025 06:37:52 +0000 (06:37 +0000)]
CANN: GGML_CANN_ACL_GRAPH works only USE_ACL_GRAPH enabled (#16861)

The documentation should state that `GGML_CANN_ACL_GRAPH` is only effective if `USE_ACL_GRAPH` was enabled at compilation time.

2 months agohexagon: various Op fixes (#17135)
Max Krasnyansky [Tue, 11 Nov 2025 23:25:04 +0000 (15:25 -0800)]
hexagon:  various Op fixes (#17135)

* hexagon: explicitly check for ops with zero nrows

llm_graph_context::build_inp_out_ids() can generate tensors with zero nrows.
Somehow other backends seems to handle this without obvious explicit checks.
In the hexagon case we need to check explicitly and skip them.

* hexagon: introduce fastdiv, fix test-backend-ops for ADD/SUB/MUL

Co-authored-by: chraac <redacted>
* hexagon: use fastdiv in ADD_ID

* hexagon: use ggml_op_is_empty and ggml_is_empty to check for NOPs

---------

Co-authored-by: chraac <redacted>
2 months agodisable rms norm mul rope for chips with no fp16 rte (#17134)
Eve [Tue, 11 Nov 2025 18:53:30 +0000 (18:53 +0000)]
disable rms norm mul rope for chips with no fp16 rte (#17134)

2 months agoci: add Arm-hosted Graviton4 runner (#17021)
sudhiarm [Tue, 11 Nov 2025 15:58:05 +0000 (15:58 +0000)]
ci: add Arm-hosted Graviton4 runner (#17021)

* ci: add Arm-hosted Graviton4 runner

* ci: add missing dependencies for graviton4 build

* ci: enable LFS checkout on graviton4

* ci: move git-lfs install to dependencies in Graviton4 workflow

2 months agovendor: split httplib to cpp/h files (#17150)
Xuan-Son Nguyen [Tue, 11 Nov 2025 12:32:58 +0000 (13:32 +0100)]
vendor: split httplib to cpp/h files (#17150)

* vendor: split httplib to cpp/h files

* move defines

* include httplib if curl is not used

* add TODO

* fix build ios

* fix build visionos instead

2 months agoggml-cpu : add RISC-V RVV (Zvfh) optimization for FP16 to FP32 conversion (#17161)
ixgbe [Tue, 11 Nov 2025 11:41:51 +0000 (19:41 +0800)]
ggml-cpu : add RISC-V RVV (Zvfh) optimization for FP16 to FP32 conversion (#17161)

Signed-off-by: Wang Yang <redacted>
2 months agoggml-cpu: templateify ggml_compute_forward_rope_f32 and _f16 (#16805)
duduta [Tue, 11 Nov 2025 11:33:24 +0000 (13:33 +0200)]
ggml-cpu: templateify ggml_compute_forward_rope_f32 and _f16 (#16805)

* extract rotate_pairs logic from ggml_compute_forward_rope_f32

* templateify ggml_compute_forward_rope_f32 and _f16

* abort when rope type not supported, remove GLM from test-rope

* add imrope branch to switch

* add rope tests for perf

* Update ggml/src/ggml-cpu/ops.cpp

Co-authored-by: Georgi Gerganov <redacted>
* Update ggml/src/ggml-cpu/ops.cpp

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

Co-authored-by: Georgi Gerganov <redacted>
2 months agokleidiai: add optimized per-channel kernels for Q8_0 (#16993)
Charles Xu [Tue, 11 Nov 2025 11:20:31 +0000 (12:20 +0100)]
kleidiai: add optimized per-channel kernels for Q8_0 (#16993)

2 months agocmake : add version to all shared object files (#17091)
Mike Abbott [Tue, 11 Nov 2025 11:19:50 +0000 (04:19 -0700)]
cmake : add version to all shared object files (#17091)

When compiling llama.cpp in Yocto, it fails QA checks because the generated so files aren't versioned.  This applies a version to all generated so files, allowing the package to build without errors.

2 months agoInstall rpc-server when GGML_RPC is ON. (#17149)
Nicolas B. Pierron [Tue, 11 Nov 2025 10:53:59 +0000 (11:53 +0100)]
Install rpc-server when GGML_RPC is ON. (#17149)

2 months agoconvert : register UMT5Model architecture for T5 conversion (#17160)
levkropp [Tue, 11 Nov 2025 08:38:30 +0000 (03:38 -0500)]
convert : register UMT5Model architecture for T5 conversion (#17160)

Register UMT5Model as a supported architecture variant for T5 model conversion.
This allows the conversion to work for models downloaded with AutoModel.

2 months agoopencl: add fastdiv and use it in set_rows, ported from cuda (#17090)
lhez [Mon, 10 Nov 2025 23:00:13 +0000 (15:00 -0800)]
opencl: add fastdiv and use it in set_rows, ported from cuda (#17090)

* opencl: add fastdiv for mm q8_0

* opencl: use uint4 for fastdiv vals

* opencl: use fastdiv for set_rows

* opencl: do not use fastdiv for q8_0 mm

2 months agomodels : move build_inp_out_ids outside loop (#17151)
Sigbjørn Skjæret [Mon, 10 Nov 2025 21:55:30 +0000 (22:55 +0100)]
models : move build_inp_out_ids outside loop (#17151)

* move build_inp_out_ids outside loop

* realign

2 months agocpu: skip NOPs to avoid barriers (#17133)
Max Krasnyansky [Mon, 10 Nov 2025 20:44:49 +0000 (12:44 -0800)]
cpu: skip NOPs to avoid barriers (#17133)

* cpu: skip NOPs to avoid barriers

* cpu: use ggml_op_is_empty

2 months agometal : cap threadgroups size of set_rows (#17146)
Georgi Gerganov [Mon, 10 Nov 2025 19:33:35 +0000 (21:33 +0200)]
metal : cap threadgroups size of set_rows (#17146)

2 months agoggml-cpu : inspect -march and -mcpu to found the CPU (#16333)
Adrien Gallouët [Mon, 10 Nov 2025 19:03:36 +0000 (20:03 +0100)]
ggml-cpu : inspect -march and -mcpu to found the CPU (#16333)

Signed-off-by: Adrien Gallouët <redacted>
2 months agovulkan: check glslc executable string (#17144)
Ruben Ortlam [Mon, 10 Nov 2025 15:59:26 +0000 (16:59 +0100)]
vulkan: check glslc executable string (#17144)

2 months agovulkan: fix validation issue introduced by #16868 (#17145)
Ruben Ortlam [Mon, 10 Nov 2025 15:59:10 +0000 (16:59 +0100)]
vulkan: fix validation issue introduced by #16868 (#17145)

2 months agomemory: Hybrid context shift (#17009) upstream/0.0.7011
Gabe Goodhart [Mon, 10 Nov 2025 15:14:23 +0000 (08:14 -0700)]
memory: Hybrid context shift (#17009)

* feat(memory): Only fail partial erasure of recurrent tail

The recurrent state is always assumed to be the state as of the last update
from the final token in the sequence. When doing a partial erasure, if the
range does not include the final token, the erasure can be considered a
success since any memory used for the sequence prior to the final token
(which is no memory) has been successfully removed.

There is one potential case that this doesn't address which is the pruning
of cache to remove sensitive data from the context. This wouldn't work for
attention cache partial removal (in the middle) either since the KV state
is linearly-dependent and states in later sequence positions would still be
based on the state from the sensitive data, even if that data is no longer
cached, so I don't think this is relevant, but it is worth noting that the
semantics of this change for a partial erasure in the middle of the cache
are essentially "my context is already compressed" and not "all trace of
the removed tokens has been removed."

https://github.com/ggml-org/llama.cpp/issues/16768
Branch: HybridContextShift-16768

Signed-off-by: Gabe Goodhart <redacted>
* fix(main): Check the output of seq_rm for prefix matching

This prefix matching is explicitly attempting to remove the tokens at the
end of the sequence that don't match. This is the operation that can't be
performed on a recurrent cache due to the state being updated in place, so
if this removal fails, we need to clear the whole cache.

https://github.com/ggml-org/llama.cpp/issues/16768
Branch: HybridContextShift-16768

Signed-off-by: Gabe Goodhart <redacted>
* fix(memory): Fix condition for partial erasure failure if p0 > pos

Signed-off-by: Gabe Goodhart <redacted>
Co-authored-by: compilade <redacted>
* style: Fix extra parens

Signed-off-by: Gabe Goodhart <redacted>
Co-authored-by: Georgi Gerganov <redacted>
* fix(main.cpp): Set n_matching_session_tokens to 0 on cache clear

https://github.com/ggml-org/llama.cpp/issues/16768
Branch: HybridContextShift-16768

Signed-off-by: Gabe Goodhart <redacted>
---------

Signed-off-by: Gabe Goodhart <redacted>
Co-authored-by: compilade <redacted>
Co-authored-by: Georgi Gerganov <redacted>
2 months agometal : enable tensor API for A19 (#17087)
Georgi Gerganov [Mon, 10 Nov 2025 13:38:42 +0000 (15:38 +0200)]
metal : enable tensor API for A19 (#17087)

2 months agoarm64: add i8mm route with SVE ggml_vec_dot_q4_K_q8_K and ggml_vec_dot_q6_K_… (#15277)
fj-y-saito [Mon, 10 Nov 2025 13:12:59 +0000 (22:12 +0900)]
arm64: add i8mm route with SVE ggml_vec_dot_q4_K_q8_K and ggml_vec_dot_q6_K_… (#15277)

* add i8mm route with SVE ggml_vec_dot_q4_K_q8_K and ggml_vec_dot_q6_K_q8_K

* Surround SVE function with compiler directive

* fix compile switch

* fix coding style

* ggml : fix indent

---------

Co-authored-by: Georgi Gerganov <redacted>
2 months agobatched-bench : add "separate text gen" mode (#17103)
Georgi Gerganov [Mon, 10 Nov 2025 10:59:29 +0000 (12:59 +0200)]
batched-bench : add "separate text gen" mode (#17103)

2 months agomtmd: fix patch_size initialized to random value in audio models (#17128)
Xuan-Son Nguyen [Mon, 10 Nov 2025 10:41:05 +0000 (11:41 +0100)]
mtmd: fix patch_size initialized to random value in audio models (#17128)

* mtmd: fix patch_size initialized to random value in audio models

* add default hparams

2 months agoeditorconfig : ignore benches/ (#17140)
Georgi Gerganov [Mon, 10 Nov 2025 10:17:19 +0000 (12:17 +0200)]
editorconfig : ignore benches/ (#17140)

[no ci]

2 months agocuda/vulkan : bicubic interpolation (#17022)
Acly [Mon, 10 Nov 2025 09:19:39 +0000 (10:19 +0100)]
cuda/vulkan : bicubic interpolation (#17022)

* vulkan : implement upscale with bicubic interpolation

* cuda : implement upscale with bicubic interpolation

* tests : add ggml_interpolate with GGML_SCALE_MODE_BICUBIC to backend tests

* adapt OpenCL backend to not support the OP in that case so tests don't fail

* print scale mode & flags in test-backend-ops

2 months agobenches : add eval results (#17139)
Georgi Gerganov [Mon, 10 Nov 2025 08:44:10 +0000 (10:44 +0200)]
benches : add eval results (#17139)

[no ci]

2 months agomtmd : fix embedding size for image input (#17123)
Georgi Gerganov [Sun, 9 Nov 2025 16:31:02 +0000 (18:31 +0200)]
mtmd : fix embedding size for image input (#17123)

2 months agovulkan: fix memory allocations (#17122)
Ruben Ortlam [Sun, 9 Nov 2025 15:14:41 +0000 (16:14 +0100)]
vulkan: fix memory allocations (#17122)

2 months agoconvert : parse safetensors directly (#15667)
compilade [Sun, 9 Nov 2025 14:49:40 +0000 (09:49 -0500)]
convert : parse safetensors directly (#15667)

* convert : parse safetensors directly

* gguf-py : order safetensors tensors by name

Applies to both local and remote safetensors custom parsing.
This matches the behavior of the official safetensors implementation.

* convert : rename from_safetensors_meta to from_local_tensor

For consistency with from_remote_tensor

* convert : fix no-lazy dtypes from direct safetensors

2 months agoconvert : handle compressed-tensors quant method (#17069)
compilade [Sun, 9 Nov 2025 14:45:50 +0000 (09:45 -0500)]
convert : handle compressed-tensors quant method (#17069)

* convert : handle compressed-tensors quant method

* convert : handle int-quantized models

* convert : handle naive-quantized models

* gguf-py : __pos__ is also unary

* convert : fix flake8 lint

* convert : use F32 for dequant of pack-quantized tensors

2 months agoserver : handle failures to restore host cache (#17078)
Georgi Gerganov [Sun, 9 Nov 2025 12:27:05 +0000 (14:27 +0200)]
server : handle failures to restore host cache (#17078)

* server : handle failures to restore host cache

* server : add tests for the prompt cache

2 months agobenches : add folder with benchmarks (#16931)
Georgi Gerganov [Sun, 9 Nov 2025 10:53:29 +0000 (12:53 +0200)]
benches : add folder with benchmarks (#16931)

* benches : add folder with benchmarks

* benches : update dgx-spark bench

2 months agoSwitch to using Ubuntu 25.10 vulkan/mesa (#16497)
Eric Curtin [Sun, 9 Nov 2025 09:25:38 +0000 (09:25 +0000)]
Switch to using Ubuntu 25.10 vulkan/mesa (#16497)

Because "Ubuntu packages to be discontinued in Vulkan SDK"

Signed-off-by: Eric Curtin <redacted>
2 months agovulkan: iGPU memory reporting fix (#17110)
Ruben Ortlam [Sun, 9 Nov 2025 08:54:47 +0000 (09:54 +0100)]
vulkan: iGPU memory reporting fix (#17110)

* vulkan: use all device-local heaps for memory availability reporting

Co-authored-by: Giuseppe Scrivano <redacted>
* use all available heaps for iGPU memory reporting

* Allow multiple memory types per buffer request for devices with split heaps

---------

Co-authored-by: Giuseppe Scrivano <redacted>
2 months agovulkan: fix mmq out of bounds reads (#17108)
Ruben Ortlam [Sun, 9 Nov 2025 08:52:57 +0000 (09:52 +0100)]
vulkan: fix mmq out of bounds reads (#17108)

* vulkan: fix mmq out of bounds reads, streamline outdated matmul host code

* fix mul_mat_id quantization call

* Fix compiler warnings

2 months agovulkan: fuse mul_mat_id + mul (#17095)
Jeff Bolz [Sun, 9 Nov 2025 08:48:42 +0000 (02:48 -0600)]
vulkan: fuse mul_mat_id + mul (#17095)

* vulkan: fuse mul_mat_id + mul

This comes up in qwen3 moe.

* split mul_mat_id fusion tests into a separate class

2 months agometal : retain src and dst buffers during async ops (#17101)
Georgi Gerganov [Sun, 9 Nov 2025 06:28:51 +0000 (08:28 +0200)]
metal : retain src and dst buffers during async ops (#17101)

2 months agoarg: add --cache-list argument to list cached models (#17073)
Xuan-Son Nguyen [Sat, 8 Nov 2025 20:54:14 +0000 (21:54 +0100)]
arg: add --cache-list argument to list cached models (#17073)

* arg: add --cache-list argument to list cached models

* new manifest naming format

* improve naming

* Update common/arg.cpp

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

Co-authored-by: Georgi Gerganov <redacted>
2 months agowebui: fix keyboard shortcuts for new chat & edit chat title (#17007)
chansikpark [Sat, 8 Nov 2025 19:52:35 +0000 (14:52 -0500)]
webui: fix keyboard shortcuts for new chat & edit chat title (#17007)

2 months agovulkan: Use spec constants for conv2d s/d/p and kernel W/H (#16978)
Jeff Bolz [Sat, 8 Nov 2025 19:24:29 +0000 (13:24 -0600)]
vulkan: Use spec constants for conv2d s/d/p and kernel W/H (#16978)

* vulkan: Use spec constants for conv2d s/d/p and kernel W/H

Also add some additional unroll hints, which seems to help.

* lock around map lookup

2 months agoserver: fix correct time_ms calculation in prompt_progress (#17093)
Aidan [Sat, 8 Nov 2025 13:12:11 +0000 (13:12 +0000)]
server: fix correct time_ms calculation in prompt_progress (#17093)

* fix: correct time_ms calculation in send_partial_response

The time_ms field was incorrectly calculated. The division was happening
before the subtraction leading to incorrect values.

Before: (ggml_time_us() - slot.t_start_process_prompt / 1000) After:
(ggml_time_us() - slot.t_start_process_prompt) / 1000

* docs : document time_ms field in prompt_progress

2 months agoRevert "CUDA: add expert reduce kernel (#16857)" (#17100)
Aman Gupta [Sat, 8 Nov 2025 13:05:19 +0000 (21:05 +0800)]
Revert "CUDA: add expert reduce kernel (#16857)" (#17100)

2 months agoCUDA: skip fusion for repeating adds in bias (#17080)
Aman Gupta [Sat, 8 Nov 2025 08:58:05 +0000 (16:58 +0800)]
CUDA: skip fusion for repeating adds in bias (#17080)

2 months agovulkan: Increase BK to 32; use BK/4 for non-CM mul_mm.comp (#16636)
SavicStefan [Sat, 8 Nov 2025 08:28:22 +0000 (09:28 +0100)]
vulkan: Increase BK to 32; use BK/4 for non-CM mul_mm.comp (#16636)

Signed-off-by: Stefan Savic <redacted>
Co-authored-by: Stefan Savic <redacted>
2 months agoggml: disable vxe for cross-compilation by default (#16966)
Aleksei Nikiforov [Sat, 8 Nov 2025 08:00:20 +0000 (09:00 +0100)]
ggml: disable vxe for cross-compilation by default (#16966)

Otherwise compilation will fail due to enabling -mvx -mzvector
and not setting corresponding -march options.

2 months agovulkan: fuse rms_norm + mul + rope (+ view + set_rows) (#16977)
Jeff Bolz [Sat, 8 Nov 2025 07:52:15 +0000 (01:52 -0600)]
vulkan: fuse rms_norm + mul + rope (+ view + set_rows) (#16977)

This change combines the rms_norm+mul and rope+view+set_rows fusions to
allow fusing the whole sequence together. This comes up in Qwen3, Bailing,
and some other models.

2 months agovulkan: Fix test-thread-safety crashes (#17024)
Jeff Bolz [Sat, 8 Nov 2025 07:39:45 +0000 (01:39 -0600)]
vulkan: Fix test-thread-safety crashes (#17024)

The std::map pipeline_flash_attn_f32_f16 could be searched and inserted at the
same time, which needs to hold the lock. To be safe, hold the lock for all of
ggml_vk_load_shaders.

2 months agoCUDA: fix MMQ stream-k fixup ne1 indices (#17089)
Johannes Gäßler [Sat, 8 Nov 2025 07:26:18 +0000 (08:26 +0100)]
CUDA: fix MMQ stream-k fixup ne1 indices (#17089)

2 months agoggml webgpu: faster matrix multiplication/matrix-vector multiplication (#17031)
Reese Levine [Sat, 8 Nov 2025 03:27:20 +0000 (19:27 -0800)]
ggml webgpu: faster matrix multiplication/matrix-vector multiplication (#17031)

* Faster tensors (#8)

Add fast matrix and matrix/vector multiplication.

* Use map for shader replacements instead of pair of strings

2 months agoCUDA: properly handle nb00=nb02 case for cpy (#17081)
bssrdf [Fri, 7 Nov 2025 22:41:58 +0000 (17:41 -0500)]
CUDA: properly handle nb00=nb02 case for cpy (#17081)

2 months agovulkan : refactor buffer handling in vk_op_f32 (#16840)
Acly [Fri, 7 Nov 2025 20:08:50 +0000 (21:08 +0100)]
vulkan : refactor buffer handling in vk_op_f32 (#16840)

* vulkan : refactor/simplify buffer handling in vk_op_* functions

* Combine UMA handling into ggml_vk_tensor_subbuffer

2 months agoCUDA: fix should_use_mmvf for ne11 == 1 (#17085)
Johannes Gäßler [Fri, 7 Nov 2025 19:53:14 +0000 (20:53 +0100)]
CUDA: fix should_use_mmvf for ne11 == 1 (#17085)

* CUDA: fix should_use_mmvf for ne11 == 1

* Apply suggestion from @am17an

Co-authored-by: Aman Gupta <redacted>
---------

Co-authored-by: Aman Gupta <redacted>
2 months agobench : cache the llama_context state at computed depth (#16944)
Georgi Gerganov [Fri, 7 Nov 2025 19:23:11 +0000 (21:23 +0200)]
bench : cache the llama_context state at computed depth (#16944)

* bench : cache llama_context state at depth

* cont : handle failures to restore the old state

* cont : print information when the state is being reused

2 months agohparams : add n_embd_inp() to support extended embed (#16928)
Sigbjørn Skjæret [Fri, 7 Nov 2025 18:27:58 +0000 (19:27 +0100)]
hparams : add n_embd_inp() to support extended embed (#16928)

* add n_embd_full to support extended embed

* don't change output

* rename to n_embd_inp

* restore n_embd where applicable

2 months agokv-cache : pad the cache size to 256 for performance (#17046)
Georgi Gerganov [Fri, 7 Nov 2025 18:03:25 +0000 (20:03 +0200)]
kv-cache : pad the cache size to 256 for performance (#17046)

* kv-cache : pad the size of the small SWA cache for performance

* context : pad the total context to 256

* cont : future-proof the swa pad

* server : adjust test params to new logic

2 months agoRevert "ggml-cpu: detect correct cpu flags for arm64 (#16229) (#16239)" (#17084)
Adrien Gallouët [Fri, 7 Nov 2025 16:34:05 +0000 (17:34 +0100)]
Revert "ggml-cpu: detect correct cpu flags for arm64 (#16229) (#16239)" (#17084)

This reverts commit 7c23f3f0d4b9f5d6ea140756eb694b562d5acebb.

2 months agoggml-cpu: detect correct cpu flags for arm64 (#16229) (#16239)
iron [Fri, 7 Nov 2025 16:18:14 +0000 (00:18 +0800)]
ggml-cpu: detect correct cpu flags for arm64 (#16229) (#16239)

When using GCC 9 and GCC 12 on the arm64 platform of ubuntu 2004,
the command "gcc -mcpu=native -E -v -" fails to detect the correct CPU flags,
which results in compilation failures for certain extended instructions,
but the correct CPU flags can be obtained by using gcc -march.

Signed-off-by: lizhenneng <redacted>
Co-authored-by: lizhenneng <redacted>
2 months agoserver : print the samplers chain for each request (#17070)
Georgi Gerganov [Fri, 7 Nov 2025 10:24:47 +0000 (12:24 +0200)]
server : print the samplers chain for each request (#17070)

2 months agocommon: move download functions to download.(cpp|h) (#17059)
Xuan-Son Nguyen [Fri, 7 Nov 2025 10:23:34 +0000 (11:23 +0100)]
common: move download functions to download.(cpp|h) (#17059)

* common: move download functions to download.(cpp|h)

* rm unused includes

* minor cleanup

---------

Co-authored-by: Georgi Gerganov <redacted>
2 months agoggml-cpu : optimize RVV q2_k and q3_k kernels (#16887)
xctan [Thu, 6 Nov 2025 16:12:45 +0000 (00:12 +0800)]
ggml-cpu : optimize RVV q2_k and q3_k kernels (#16887)

2 months agoCUDA: fix crash on uneven context without FA (#16988)
Johannes Gäßler [Thu, 6 Nov 2025 13:05:47 +0000 (14:05 +0100)]
CUDA: fix crash on uneven context without FA (#16988)

2 months agometal : initial Metal4 tensor API support (#16634)
Georgi Gerganov [Thu, 6 Nov 2025 12:45:10 +0000 (14:45 +0200)]
metal : initial Metal4 tensor API support (#16634)

* metal : rework mat-mat multiplication

* metal : initial Metal4 support

* cont

* metal : detect tensor support

* cont : better ifdefs

* metal : support tensors in mul_mm_id

* metal : add env for disabling tensor API

* tests : restore

* metal : remove unused constants

* metal : fix check for bfloat tensor support

* cont : handle API incompatibilities

* cont : handle even more incompatibilities

* metal : use tensor API only on M5 and later

2 months agoserver : disable checkpoints with mtmd (#17045)
Georgi Gerganov [Thu, 6 Nov 2025 10:09:29 +0000 (12:09 +0200)]
server : disable checkpoints with mtmd (#17045)

2 months agoclip: implement minicpm-v sinusoidal embd using GGML (#17036)
Xuan-Son Nguyen [Thu, 6 Nov 2025 10:02:54 +0000 (11:02 +0100)]
clip: implement minicpm-v sinusoidal embd using GGML (#17036)

* clip: implement minicpm-v sinusoidal embd using GGML

* fix repeat op

2 months agosycl: add CONCAT operator support (#16047)
YehuditE [Thu, 6 Nov 2025 10:02:33 +0000 (12:02 +0200)]
sycl: add CONCAT operator support (#16047)

* sycl: add CONCAT operator support

* cleanup: remove stray lines added by mistake

* fix: code format issues in concat.cpp and tests/test-backend-ops.cpp

* chore: fix editorconfig violations

* cleanup: drop unnecessary i16 type support

* docs: update sycl-csv and regenerate ops.md

* update docs/ops.md

* fix: adapt to upstream master changes after rebase

* fix: remove empty files

* fix: drop whitespace

---------

Co-authored-by: Sigbjørn Skjæret <redacted>
2 months agodocs: explain CUDA 11 compilation [no ci] (#16824)
Johannes Gäßler [Thu, 6 Nov 2025 07:14:35 +0000 (08:14 +0100)]
docs: explain CUDA 11 compilation [no ci] (#16824)

2 months agoggml-hexagon: graceful fallback for older socs where rpcmem_alloc2 and FASTRPC_GET_UR...
l3utterfly [Thu, 6 Nov 2025 05:46:38 +0000 (13:46 +0800)]
ggml-hexagon: graceful fallback for older socs where rpcmem_alloc2 and FASTRPC_GET_URI is unsupported (#16987)

* support older socs where FASTRPC_GET_URI is unsupported

* added graceful fallback when FASTRPC_GET_URI call fails

* use weak symbols instead of loading libcdsprpc.so dynamically

* Add weak pragma for rpcmem_alloc2

* Remove weak declaration for rpcmem_alloc2 in ggml-hexagon.cpp

Removed weak declaration for rpcmem_alloc2.

* Enforce ndev to 1 for archs below v75

Force ndev to 1 for SoCs architectures lower than v75.

2 months agoimprove CUDA cpy memory bandwidth when copying transposed tensor (#16841)
bssrdf [Wed, 5 Nov 2025 20:55:04 +0000 (15:55 -0500)]
improve CUDA cpy memory bandwidth when copying transposed tensor  (#16841)

* WIP

* added a cpy kernel specific to transposed tensor which uses smem to avoid uncoalesced access; test cases also added shwoing improved memory bandwidth

* added BF16 support

* more strict check to make sure src0 is a transpose

* reformulated to handle more complicated transpose cases

* bring back 2D transpose for higher performance

* allow build on windows

* tranpose copy more shapes

* minor tweak

* final clean up

* restore some test cases

* keep only the kernel for true tranposed case; updated with review suggestions

* make CI happy

* remove headers not needed

* reduced bank conflicts for fp16 and bf16

* add missing const*

* now bank conflicts free

* use padding instead of swizzling

---------

Co-authored-by: bssrdf <redacted>