]> git.djapps.eu Git - pkg/ggml/sources/ggml/log
pkg/ggml/sources/ggml
6 weeks agoggml-hexagon: fix swiglu failure at `test-backend-ops` (llama/17344)
nullname [Thu, 20 Nov 2025 23:45:05 +0000 (07:45 +0800)]
ggml-hexagon: fix swiglu failure at `test-backend-ops` (llama/17344)

* refactor: use hvx_vec_exp_fp32_guard_inf for overflow handling in hvx_exp_f32

* feat: add fast sigmoid function with overflow guard for fp32

* refactor: replace hvx_vec_inverse_fp32 with hvx_vec_inverse_fp32_guard_inf for improved overflow handling

* feat: enhance hvx_add_scalar_f32 with overflow handling using infinity guard

* wip

* add HVX_Vector_Alias

wip

* wip

* fix: improve handling of src1 tensor in glu_swiglu_fp32_per_thread function

* fix nc

* wip

* wip

* handle nan at inverse

* wip

* fix neg

* wip

* rename

* fix hvx_vec_inverse_fp32_guard_inf to handle infinity and NaN cases correctly

* wip

* fix hvx_vec_inverse_fp32_guard_inf to handle NaN cases correctly

* wip

* wip

* wip

* fix output sign

6 weeks agoggml : Fix transposed SOLVE_TRI result (llama/17323)
Piotr Wilkin (ilintar) [Thu, 20 Nov 2025 10:58:21 +0000 (11:58 +0100)]
ggml : Fix transposed SOLVE_TRI result (llama/17323)

* Did someone transpose the SOLVE_TRI result matrix? Perhaps...

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

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

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

Co-authored-by: Sigbjørn Skjæret <redacted>
6 weeks agoDGX Spark: UMA support (llama/17368)
Scott Fudally [Thu, 20 Nov 2025 10:32:02 +0000 (02:32 -0800)]
DGX Spark: UMA support (llama/17368)

* DGX Spark: UMA support

* Updates from PR feedback

* More PR feedback cleanup

* Update ggml/src/ggml-cuda/ggml-cuda.cu

Co-authored-by: Georgi Gerganov <redacted>
* Remove trailing whitespace

* Update ggml/src/ggml-cuda/ggml-cuda.cu

---------

Co-authored-by: Georgi Gerganov <redacted>
6 weeks agoggml : remove useless and error-prone variadic macros (llama/17399)
Adrien Gallouët [Thu, 20 Nov 2025 10:18:27 +0000 (11:18 +0100)]
ggml : remove useless and error-prone variadic macros (llama/17399)

Signed-off-by: Adrien Gallouët <redacted>
6 weeks agokleidiai: fix zero-size array declaration (llama/17240)
sudhiarm [Thu, 20 Nov 2025 09:45:49 +0000 (09:45 +0000)]
kleidiai: fix zero-size array declaration (llama/17240)

6 weeks agoggml-cpu:add RISC-V RVV (Zvfh) optimization for FP16 vector scaling (llama/17314)
ixgbe [Thu, 20 Nov 2025 06:09:18 +0000 (14:09 +0800)]
ggml-cpu:add RISC-V RVV (Zvfh) optimization for FP16 vector scaling (llama/17314)

* ggml-cpu:add RISC-V RVV (Zvfh) optimization for FP16 vector scaling

Signed-off-by: Wang Yang <redacted>
* fix comment

* fix comment 2

---------

Signed-off-by: Wang Yang <redacted>
6 weeks agovulkan: implement ADD1, ARANGE, FILL, SOFTPLUS, STEP, ROUND, CEIL, FLOOR, TRUNC ...
Giuseppe Scrivano [Wed, 19 Nov 2025 16:29:45 +0000 (17:29 +0100)]
vulkan: implement ADD1, ARANGE, FILL, SOFTPLUS, STEP, ROUND, CEIL, FLOOR, TRUNC (llama/17319)

* vulkan: initialize array

* vulkan: implement ADD1

* vulkan: implement ARANGE

* vulkan: implement FILL

* vulkan: implement SOFTPLUS

* vulkan: implement STEP

* vulkan: implement ROUND

* vulkan: implement CEIL

* vulkan: implement FLOOR

* vulkan: implement TRUNC

* docs: update Vulkan ops

Signed-off-by: Giuseppe Scrivano <redacted>
6 weeks agovulkan: support larger argsort (llama/17313)
Jeff Bolz [Wed, 19 Nov 2025 16:25:50 +0000 (10:25 -0600)]
vulkan: support larger argsort (llama/17313)

* vulkan: support larger argsort

This is an extension of the original bitonic sorting shader that puts the
temporary values in global memory and when more than 1024 threads are needed
it runs multiple workgroups and synchronizes through a pipelinebarrier.

To improve the memory access pattern, a copy of the float value is kept with
the index value. I've applied this same change to the original shared memory
version of the shader, which is still used when ncols <= 1024.

* Reduce the number of shader variants. Use smaller workgroups when doing a single pass, for a modest perf boost

* reduce loop overhead

* run multiple cols per invocation, to reduce barrier overhead

6 weeks agovulkan: Add copy_transpose shader (llama/17371)
Jeff Bolz [Wed, 19 Nov 2025 15:50:43 +0000 (09:50 -0600)]
vulkan: Add copy_transpose shader (llama/17371)

6 weeks agocuda: fix rope fusion for gemma3 (llama/17378)
Aman Gupta [Wed, 19 Nov 2025 10:25:05 +0000 (18:25 +0800)]
cuda: fix rope fusion for gemma3 (llama/17378)

6 weeks agoFix too relaxed check on CUDA "fast copy" (can_be_transposed) condition (llama/17332)
Piotr Wilkin (ilintar) [Wed, 19 Nov 2025 09:36:33 +0000 (10:36 +0100)]
Fix too relaxed check on CUDA "fast copy" (can_be_transposed) condition (llama/17332)

* Fix too relaxed check on CUDA "fast copy" (can_be_transposed) condition

* Argh.

* Making CISC happy ;)

* Integrate CONT tests

* Use loopy loop

* Skip new tests for (B)F16 for now.

6 weeks agovulkan: force full subgroups for flash attention to fix intel subgroup crash (llama...
Ruben Ortlam [Wed, 19 Nov 2025 07:46:26 +0000 (08:46 +0100)]
vulkan: force full subgroups for flash attention to fix intel subgroup crash (llama/17356)

6 weeks agoggml-cpu: Don't pass -mpowerpc64 when -mcpu already implies it (llama/17308)
Jeremy Rand [Wed, 19 Nov 2025 06:19:00 +0000 (06:19 +0000)]
ggml-cpu: Don't pass -mpowerpc64 when -mcpu already implies it (llama/17308)

6 weeks agoCANN: fix acl_tensor_ptr usage in ASCEND_310P ROPE (llama/17347)
Chenguang Li [Tue, 18 Nov 2025 08:41:52 +0000 (16:41 +0800)]
CANN: fix acl_tensor_ptr usage in ASCEND_310P ROPE (llama/17347)

* cann: fix acl_tensor_ptr usage in ASCEND_310P ROPE implementation

Fix compilation errors in the ASCEND_310P-specific ROPE operation code
by adding .get() calls when passing acl_tensor_ptr smart pointers to
functions expecting raw aclTensor* pointers.

This fixes the code that was missed in the previous refactoring commit
(8981848) which changed ggml_cann_create_tensor() return type from
aclTensor* to acl_tensor_ptr.

* cann: format code

6 weeks agovulkan: support noncontig i32 copy (llama/17328)
Jeff Bolz [Tue, 18 Nov 2025 06:41:24 +0000 (00:41 -0600)]
vulkan: support noncontig i32 copy (llama/17328)

6 weeks agovulkan: add log RTE support to fix Nvidia CI (llama/17320)
Ruben Ortlam [Mon, 17 Nov 2025 20:37:49 +0000 (21:37 +0100)]
vulkan: add log RTE support to fix Nvidia CI (llama/17320)

* vulkan: add log RTE support to fix Nvidia CI

* actually use the rte shader

6 weeks agocmake : fix ARM feature verification (llama/17170)
Adrien Gallouët [Mon, 17 Nov 2025 20:37:29 +0000 (21:37 +0100)]
cmake : fix ARM feature verification (llama/17170)

* cmake : fix ARM feature verification

Use check_cxx_source_compiles to prevent conflicts with
the existing GGML_NATIVE detection code.

Signed-off-by: Adrien Gallouët <redacted>
* cmake : unset __ARM_FEATURE when feature is disabled

Signed-off-by: Adrien Gallouët <redacted>
* cmake : fix scope, this is really a macro

Signed-off-by: Adrien Gallouët <redacted>
* arm_neon.h is useless

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

Signed-off-by: Adrien Gallouët <redacted>
6 weeks agoggml : add missing AVX512 feature checks (llama/17270)
Adrien Gallouët [Mon, 17 Nov 2025 11:12:00 +0000 (12:12 +0100)]
ggml : add missing AVX512 feature checks (llama/17270)

_mm512_cvtepu8_epi16        requires  __AVX512BW__
_mm512_srli_epi16           requires  __AVX512BW__
__builtin_ia32_inserti32x8  requires  __AVX512DQ__

Signed-off-by: Adrien Gallouët <redacted>
2 months agoggml : remove dirty flag from version string (#1391)
Daniel Bevenius [Mon, 24 Nov 2025 11:51:50 +0000 (12:51 +0100)]
ggml : remove dirty flag from version string (#1391)

This commit removes the "-dirty" suffix from the GGML version string.

The motivation for this change is to ensure that the version string
works with different ways of checking out ggml and using it in projects.
By removing the dirty flag from the version string, we avoid potential
artifacts like shared libraries getting a -dirty suffix in their names.

Instead, if the project is built from a dirty git state, the dirty flag
will be appended to the commit hash in the GGML_BUILD_COMMIT variable.
This will enable users to still identify that the build was made from
from a modified/dirty state even though the version might match a "real"
version.

For example, the commit can be produces as follows:
```c++
    printf("commit: %s\n", ggml_commit());
```
Which would print the following for a dirty build:
```console
commit: 781baf2a-dirty
```

Refs: https://github.com/ggml-org/ggml/pull/1363#issuecomment-3569691546

2 months agosync : whisper.cpp
Georgi Gerganov [Thu, 20 Nov 2025 12:07:49 +0000 (14:07 +0200)]
sync : whisper.cpp

2 months agometal : fix compile on macos 11 (whisper/3533)
YangLe [Thu, 20 Nov 2025 11:54:54 +0000 (19:54 +0800)]
metal : fix compile on macos 11 (whisper/3533)

2 months agosync : llama.cpp
Georgi Gerganov [Mon, 17 Nov 2025 10:05:16 +0000 (12:05 +0200)]
sync : llama.cpp

2 months agometal : support I32 -> I32 copy (llama/17317)
Georgi Gerganov [Mon, 17 Nov 2025 09:52:00 +0000 (11:52 +0200)]
metal : support I32 -> I32 copy (llama/17317)

2 months agometal : faster argsort (llama/17315)
Georgi Gerganov [Mon, 17 Nov 2025 09:51:48 +0000 (11:51 +0200)]
metal : faster argsort (llama/17315)

* metal : faster argsort

* cont : keep data in registers

2 months agometal : add cumsum (llama/17305)
Georgi Gerganov [Mon, 17 Nov 2025 09:51:13 +0000 (11:51 +0200)]
metal : add cumsum (llama/17305)

2 months agoCANN: Use smart pointers to manage ACL objects (llama/17238)
hipudding [Mon, 17 Nov 2025 00:43:59 +0000 (08:43 +0800)]
CANN: Use smart pointers to manage ACL objects (llama/17238)

* CANN: Use smart pointers to manage ACL objects

Previously, ACL objects were managed via manual destruction, which
led to multiple memory-leak issues during runtime. This patch replaces
manual memory management with smart pointers so that ACL objects
are properly released and ownership is clearly defined.

Note that the ownership of an ACL object belongs to the function
that creates it. Other internal functions should operate on these ACL
objects using raw pointers to avoid unintended ownership transfers.

Additionally, since aclTensorList automatically frees its contained
aclTensor objects, any aclTensor added to a tensor list must release
ownership to avoid double free operations.

This PR also removes the asynchronous task submission mechanism.
Due to changes in recent CANN versions, tiling time has significantly
decreased. Even with a dual-thread submission model, the dispatch
overhead still falls on the critical path, making async submission
less beneficial. Moreover, aclGraph support provides a much better
path to reducing operator dispatch latency.

* CANN: resolve review comments

2 months agovulkan: add LOG operation support for F32 and F16 (llama/17183)
Pavels Zaicenkovs [Sun, 16 Nov 2025 21:50:09 +0000 (22:50 +0100)]
vulkan: add LOG operation support for F32 and F16 (llama/17183)

* vulkan: add LOG operation support for F32 and F16

Part of #14909.

* vulkan: Fix LOG operation types

* docs: Update operation support documentation for Vulkan LOG operation

* vulkan: fix log_f16 shader

* docs: restore missing LOG test cases and regenerate ops.md

2 months agovulkan: fix MMQ quantize_y condition (llama/17301)
Ruben Ortlam [Sun, 16 Nov 2025 18:38:17 +0000 (19:38 +0100)]
vulkan: fix MMQ quantize_y condition (llama/17301)

2 months agometal : remove obosolete asserts (llama/17295)
Georgi Gerganov [Sun, 16 Nov 2025 07:50:26 +0000 (09:50 +0200)]
metal : remove obosolete asserts (llama/17295)

2 months agoopencl: fix rms_norm_mul (llama/17250)
lhez [Sun, 16 Nov 2025 01:40:14 +0000 (17:40 -0800)]
opencl: fix rms_norm_mul (llama/17250)

* opencl: use subgrroup reduce for reduction in rms_norm_mul

* opencl: add comment about workgroup size

2 months agoopencl: add kernel to handle mat mul in attention to improve encoding speed (llama...
shaofeiqi [Sun, 16 Nov 2025 01:33:10 +0000 (17:33 -0800)]
opencl: add kernel to handle mat mul in attention to improve encoding speed (llama/17181)

* Add mul_mm_f16_f32_kq_kqv kernel

* Add ggml_cl_mul_mat_kq_kqv_adreno func

* fix whitespace

* remove unused variable

* remove redundant

* refactor and clean up

* remove trailing whitespace

2 months agosycl : unify unary kernels with a generic implementation and enable wide operator...
shani-f [Sat, 15 Nov 2025 23:52:42 +0000 (01:52 +0200)]
sycl : unify unary kernels with a generic implementation and enable wide operator support (llama/17213)

* SYCL: add generic unary op implementation for multiple ops (ABS/SGN/…); unify non-contiguous access

* SYCL: update documentation and sycl.csv to reflect new unary op support

* update ops.md after syncing SYCL.csv changes

* Fix SYCL.csv merge conflict

* Update ops.md after fixing SYCL.csv conflicts

* Fix SYCL.csv tail after merge conflict and regenerate ops.md

* Fix line endings and final newline in SYCL.csv

* Remove TOPK_MOE entries from SYCL.csv as requested

* Update ops.md after removing TOPK_MOE from SYCL.csv

* Regenerated SYCL.csv and synced ops.md with upstream

* Update ops.md using create_ops_docs.py

2 months agovulkan: Fuse mul_mat_id+add_id+mul and mul_mat+add+add. (llama/17287)
Jeff Bolz [Sat, 15 Nov 2025 18:54:23 +0000 (12:54 -0600)]
vulkan: Fuse mul_mat_id+add_id+mul and mul_mat+add+add. (llama/17287)

These both show up in gpt-oss. Also, cleanup the mul_mat_vec fusion code a bit.

2 months agovulkan: Replace 16-bit unpack8 calls to work around legacy Windows AMD driver bug...
Ruben Ortlam [Sat, 15 Nov 2025 14:18:58 +0000 (15:18 +0100)]
vulkan: Replace 16-bit unpack8 calls to work around legacy Windows AMD driver bug (llama/17285)

2 months agovulkan: implement ABS and NEG (llama/17245)
Giuseppe Scrivano [Sat, 15 Nov 2025 11:00:29 +0000 (12:00 +0100)]
vulkan: implement ABS and NEG (llama/17245)

* docs: update Vulkan ops

* vulkan: add NEG op

* vulkan: add ABS op

---------

Signed-off-by: Giuseppe Scrivano <redacted>
2 months agovulkan: Use ggml_vk_tensor_subbuffer in mul_mat_vec(id) paths (llama/17244)
Jeff Bolz [Sat, 15 Nov 2025 10:56:15 +0000 (04:56 -0600)]
vulkan: Use ggml_vk_tensor_subbuffer in mul_mat_vec(id) paths (llama/17244)

* vulkan: Use ggml_vk_tensor_subbuffer in mul_mat_vec(id) paths

* set allow_misalign

2 months agovulkan: skip all-negative-inf blocks in FA (llama/17186)
Jeff Bolz [Sat, 15 Nov 2025 09:37:25 +0000 (03:37 -0600)]
vulkan: skip all-negative-inf blocks in FA (llama/17186)

2 months agovulkan: change graph_compute to be async and enable get_tensor_async (llama/17158)
Jeff Bolz [Sat, 15 Nov 2025 08:06:41 +0000 (02:06 -0600)]
vulkan: change graph_compute to be async and enable get_tensor_async (llama/17158)

* vulkan: change graph_compute to be async and enable get_tensor_async

This allows some additional CPU/GPU overlap for large pp workloads. Also seems
to help a bit for token gen, maybe getting rid of a small bubble between
graph_compute and get_tensor.

Async set and copy functions seem to be very rarely used, so I didn't enable
them because I didn't have a good way to test them.

The async commands need to be ordered against each other, so put them all on
the compute queue. The non-async commands still use the transfer queue.

The fence for graph_compute/get_tensor_async is submitted and waited on in
ggml_vk_synchronize.

* fix thread safety errors

* teardown context cleanly

* Handle async read to non-pinned dst

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

* metal : refactor argsort

* cont : sort chunks

* cont : merge sorted buckets

* cont : cleanup

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

2 months agoggml-cpu: handle 3d tensors in repack mat_mul (llama/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 (llama/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 agoggml : add ops SOFTPLUS, EXPM1, TRI, SOLVE_TRI, CUMSUM (llama/17063)
Piotr Wilkin (ilintar) [Thu, 13 Nov 2025 18:54:47 +0000 (19:54 +0100)]
ggml : add ops SOFTPLUS, EXPM1, TRI, SOLVE_TRI, CUMSUM (llama/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 (llama...
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 (llama/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 (llama/17232)
Diego Devesa [Thu, 13 Nov 2025 12:14:02 +0000 (04:14 -0800)]
sched : fix reserve ignoring user tensor assignments (llama/17232)

2 months agoggml-cpu : add RISC-V vector intrinsic support for silu and cvar operations (llama...
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 (llama/17227)

Signed-off-by: Wang Yang <redacted>
2 months agometal: accelerated conv2d (llama/17175)
bagheera [Thu, 13 Nov 2025 11:32:44 +0000 (05:32 -0600)]
metal: accelerated conv2d (llama/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 (llama/17030)" (llama/17233)
Georgi Gerganov [Thu, 13 Nov 2025 10:59:37 +0000 (12:59 +0200)]
Revert "ggml-cpu: handle 3d tensors in repack mat_mul (llama/17030)" (llama/17233)

This reverts commit 1c398dc9eca9c366ce98deb0e6f3538e444ebc8a.

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

2 months agoCANN: Add cross_entropy_loss op support (llama/16886)
TecJesh [Thu, 13 Nov 2025 01:39:51 +0000 (09:39 +0800)]
CANN: Add cross_entropy_loss op support (llama/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 (llama/16884)
Aman Gupta [Thu, 13 Nov 2025 00:50:01 +0000 (08:50 +0800)]
CUDA: fuse rope + set_rows (llama/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 agoCUDA: static assert to prevent misuse of memcpy_1 (llama/17198)
Johannes Gäßler [Wed, 12 Nov 2025 22:13:55 +0000 (23:13 +0100)]
CUDA: static assert to prevent misuse of memcpy_1 (llama/17198)

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

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

* cont : add missing header

2 months agoggml-cpu: handle 3d tensors in repack mat_mul (llama/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 (llama/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 agoCANN: Add L2_NORM op support (llama/16856)
TecJesh [Wed, 12 Nov 2025 07:11:42 +0000 (15:11 +0800)]
CANN: Add L2_NORM op support (llama/16856)

* update L2_NORM op support

* update L2_NORM op support

* remove extra whitespace

2 months agofix ci crash about SSM_CONV (llama/17169)
Neo Zhang Jianyu [Wed, 12 Nov 2025 06:44:29 +0000 (14:44 +0800)]
fix ci crash about SSM_CONV (llama/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 agohexagon: various Op fixes (llama/17135)
Max Krasnyansky [Tue, 11 Nov 2025 23:25:04 +0000 (15:25 -0800)]
hexagon: various Op fixes (llama/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 (llama/17134)
Eve [Tue, 11 Nov 2025 18:53:30 +0000 (18:53 +0000)]
disable rms norm mul rope for chips with no fp16 rte (llama/17134)

2 months agoggml-cpu : add RISC-V RVV (Zvfh) optimization for FP16 to FP32 conversion (llama...
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 (llama/17161)

Signed-off-by: Wang Yang <redacted>
2 months agoggml-cpu: templateify ggml_compute_forward_rope_f32 and _f16 (llama/16805)
duduta [Tue, 11 Nov 2025 11:33:24 +0000 (13:33 +0200)]
ggml-cpu: templateify ggml_compute_forward_rope_f32 and _f16 (llama/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 (llama/16993)
Charles Xu [Tue, 11 Nov 2025 11:20:31 +0000 (12:20 +0100)]
kleidiai: add optimized per-channel kernels for Q8_0 (llama/16993)

2 months agocmake : add version to all shared object files (llama/17091)
Mike Abbott [Tue, 11 Nov 2025 11:19:50 +0000 (04:19 -0700)]
cmake : add version to all shared object files (llama/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 agoopencl: add fastdiv and use it in set_rows, ported from cuda (llama/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 (llama/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 agocpu: skip NOPs to avoid barriers (llama/17133)
Max Krasnyansky [Mon, 10 Nov 2025 20:44:49 +0000 (12:44 -0800)]
cpu: skip NOPs to avoid barriers (llama/17133)

* cpu: skip NOPs to avoid barriers

* cpu: use ggml_op_is_empty

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

2 months agoggml-cpu : inspect -march and -mcpu to found the CPU (llama/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 (llama/16333)

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

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

2 months agometal : enable tensor API for A19 (llama/17087)
Georgi Gerganov [Mon, 10 Nov 2025 13:38:42 +0000 (15:38 +0200)]
metal : enable tensor API for A19 (llama/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 agocuda/vulkan : bicubic interpolation (llama/17022)
Acly [Mon, 10 Nov 2025 09:19:39 +0000 (10:19 +0100)]
cuda/vulkan : bicubic interpolation (llama/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 agovulkan: fix memory allocations (llama/17122)
Ruben Ortlam [Sun, 9 Nov 2025 15:14:41 +0000 (16:14 +0100)]
vulkan: fix memory allocations (llama/17122)

2 months agosync : whisper.cpp upstream/0.9.4.185
Georgi Gerganov [Sun, 9 Nov 2025 21:40:36 +0000 (23:40 +0200)]
sync : whisper.cpp

2 months agosync : llama.cpp
Georgi Gerganov [Sun, 9 Nov 2025 12:46:57 +0000 (14:46 +0200)]
sync : llama.cpp

2 months agovulkan: iGPU memory reporting fix (llama/17110)
Ruben Ortlam [Sun, 9 Nov 2025 08:54:47 +0000 (09:54 +0100)]
vulkan: iGPU memory reporting fix (llama/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 (llama/17108)
Ruben Ortlam [Sun, 9 Nov 2025 08:52:57 +0000 (09:52 +0100)]
vulkan: fix mmq out of bounds reads (llama/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 (llama/17095)
Jeff Bolz [Sun, 9 Nov 2025 08:48:42 +0000 (02:48 -0600)]
vulkan: fuse mul_mat_id + mul (llama/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 (llama/17101)
Georgi Gerganov [Sun, 9 Nov 2025 06:28:51 +0000 (08:28 +0200)]
metal : retain src and dst buffers during async ops (llama/17101)

2 months agovulkan: Use spec constants for conv2d s/d/p and kernel W/H (llama/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 (llama/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 agoRevert "CUDA: add expert reduce kernel (#16857)" (llama/17100)
Aman Gupta [Sat, 8 Nov 2025 13:05:19 +0000 (21:05 +0800)]
Revert "CUDA: add expert reduce kernel (#16857)" (llama/17100)

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

2 months agovulkan: Increase BK to 32; use BK/4 for non-CM mul_mm.comp (llama/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 (llama/16636)

Signed-off-by: Stefan Savic <redacted>
Co-authored-by: Stefan Savic <redacted>
2 months agoggml: disable vxe for cross-compilation by default (llama/16966)
Aleksei Nikiforov [Sat, 8 Nov 2025 08:00:20 +0000 (09:00 +0100)]
ggml: disable vxe for cross-compilation by default (llama/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) (llama/16977)
Jeff Bolz [Sat, 8 Nov 2025 07:52:15 +0000 (01:52 -0600)]
vulkan: fuse rms_norm + mul + rope (+ view + set_rows) (llama/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 (llama/17024)
Jeff Bolz [Sat, 8 Nov 2025 07:39:45 +0000 (01:39 -0600)]
vulkan: Fix test-thread-safety crashes (llama/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 (llama/17089)
Johannes Gäßler [Sat, 8 Nov 2025 07:26:18 +0000 (08:26 +0100)]
CUDA: fix MMQ stream-k fixup ne1 indices (llama/17089)

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

* Faster tensors (llama/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 (llama/17081)
bssrdf [Fri, 7 Nov 2025 22:41:58 +0000 (17:41 -0500)]
CUDA: properly handle nb00=nb02 case for cpy (llama/17081)

2 months agovulkan : refactor buffer handling in vk_op_f32 (llama/16840)
Acly [Fri, 7 Nov 2025 20:08:50 +0000 (21:08 +0100)]
vulkan : refactor buffer handling in vk_op_f32 (llama/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 (llama/17085)
Johannes Gäßler [Fri, 7 Nov 2025 19:53:14 +0000 (20:53 +0100)]
CUDA: fix should_use_mmvf for ne11 == 1 (llama/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 agoRevert "ggml-cpu: detect correct cpu flags for arm64 (llama/16229) (#16239)" (llama...
Adrien Gallouët [Fri, 7 Nov 2025 16:34:05 +0000 (17:34 +0100)]
Revert "ggml-cpu: detect correct cpu flags for arm64 (llama/16229) (#16239)" (llama/17084)

This reverts commit 7c23f3f0d4b9f5d6ea140756eb694b562d5acebb.

2 months agoggml-cpu: detect correct cpu flags for arm64 (#16229) (llama/16239)
iron [Fri, 7 Nov 2025 16:18:14 +0000 (00:18 +0800)]
ggml-cpu: detect correct cpu flags for arm64 (#16229) (llama/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 agoggml-cpu : optimize RVV q2_k and q3_k kernels (llama/16887)
xctan [Thu, 6 Nov 2025 16:12:45 +0000 (00:12 +0800)]
ggml-cpu : optimize RVV q2_k and q3_k kernels (llama/16887)

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

2 months agometal : initial Metal4 tensor API support (llama/16634)
Georgi Gerganov [Thu, 6 Nov 2025 12:45:10 +0000 (14:45 +0200)]
metal : initial Metal4 tensor API support (llama/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 agosycl: add CONCAT operator support (llama/16047)
YehuditE [Thu, 6 Nov 2025 10:02:33 +0000 (12:02 +0200)]
sycl: add CONCAT operator support (llama/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 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 (llama/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 (llama/16841)
bssrdf [Wed, 5 Nov 2025 20:55:04 +0000 (15:55 -0500)]
improve CUDA cpy memory bandwidth when copying transposed tensor (llama/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>
2 months agovulkan: Fix GGML_VULKAN_CHECK_RESULTS to better handle fusion (llama/16919)
Jeff Bolz [Wed, 5 Nov 2025 18:51:03 +0000 (12:51 -0600)]
vulkan: Fix GGML_VULKAN_CHECK_RESULTS to better handle fusion (llama/16919)

2 months agosync : llama.cpp
Georgi Gerganov [Sun, 9 Nov 2025 12:45:38 +0000 (14:45 +0200)]
sync : llama.cpp

2 months agoggml webgpu: minor set rows optimization (llama/16810)
Reese Levine [Sun, 9 Nov 2025 12:44:39 +0000 (14:44 +0200)]
ggml webgpu: minor set rows optimization (llama/16810)

* Add buffer label and enable dawn-specific toggles to turn off some checks

* Minor set_rows optimization (#4)

* updated optimization, fixed errors

* non vectorized version now dispatches one thread per element

* Simplify

* Change logic for set_rows pipelines

---------

Co-authored-by: Neha Abbas <redacted>
Co-authored-by: Neha Abbas <redacted>
Co-authored-by: Reese Levine <redacted>
* Comment on dawn toggles

* Remove some comments

* Implement overlap binary operators

* Revert "Implement overlap binary operators"

This reverts commit ed710b36f51ab3f53fa13db15c1685dc8678a32a.

* Disable support for non-contiguous binary_op tensors and leave note for future support

---------

Co-authored-by: neha-ha <redacted>
Co-authored-by: Neha Abbas <redacted>
Co-authored-by: Neha Abbas <redacted>