]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/log
pkg/ggml/sources/llama.cpp
8 weeks agowebui : added download action (#13552) (#16282)
Sascha Rogmann [Tue, 7 Oct 2025 09:11:08 +0000 (11:11 +0200)]
webui : added download action (#13552) (#16282)

* webui : added download action (#13552)

* webui : import and export (for all conversations)

* webui : fixed download-format, import of one conversation

* webui : add ExportedConversations type for chat import/export

* feat: Update naming & order

* chore: Linting

* webui : Updated static build output

---------

Co-authored-by: Aleksander Grygier <redacted>
8 weeks agopresets : fix pooling param for embedding models (#16455)
Georgi Gerganov [Tue, 7 Oct 2025 07:32:32 +0000 (10:32 +0300)]
presets : fix pooling param for embedding models (#16455)

8 weeks agorpc : update documentation (#16441)
Radoslav Gerganov [Tue, 7 Oct 2025 06:59:13 +0000 (09:59 +0300)]
rpc : update documentation (#16441)

Update the README file to match the newly added functionality of
exposing multiple devices from a single server.

Co-authored-by: Diego Devesa <redacted>
8 weeks agomemory : use sequential equal splits for recurrent modules (#16442)
Georgi Gerganov [Tue, 7 Oct 2025 05:24:17 +0000 (08:24 +0300)]
memory : use sequential equal splits for recurrent modules (#16442)

8 weeks agometal : add support for non-padded FA KV (#16148)
Georgi Gerganov [Tue, 7 Oct 2025 05:23:30 +0000 (08:23 +0300)]
metal : add support for non-padded FA KV (#16148)

* metal : pad K, V and Mask when needed

* cont : simplify

* cuda : add TODO about KV padding requirement

* metal : add comments

* metal : remove mask padding requirement

8 weeks agotests : add -INF blocks to the KQ mask in the FA tests (#16380)
Georgi Gerganov [Tue, 7 Oct 2025 05:22:35 +0000 (08:22 +0300)]
tests : add -INF blocks to the KQ mask in the FA tests (#16380)

* tests : add -INF blocks to the KQ mask in the FA tests

* cont : bump -INF block size to 64

Co-authored-by: Jeff Bolz <redacted>
* ggml : prevent division by zero in FA CPU op

---------

Co-authored-by: Jeff Bolz <redacted>
8 weeks agometal : various optimizations + refactoring (#16446)
Georgi Gerganov [Tue, 7 Oct 2025 05:21:40 +0000 (08:21 +0300)]
metal : various optimizations + refactoring (#16446)

* metal : ssm_scan minor opts

* metal : get_rows optimize

* metal : cpy optimize

* metal : ssm_conv opt

* metal : ssm_scan simplify

* metal : ssm_Scan opt

8 weeks agollama : add --no-host to disable host buffers (#16310)
Gadflyii [Mon, 6 Oct 2025 17:55:53 +0000 (12:55 -0500)]
llama : add --no-host to disable host buffers (#16310)

* implement --no-host to disable host buffer

* fix equal_mparams

* move no-host enumeration order together with other model params

---------

Co-authored-by: slaren <redacted>
8 weeks agochat : Granite Docling stopping (#16438)
Gabe Goodhart [Mon, 6 Oct 2025 16:59:40 +0000 (10:59 -0600)]
chat : Granite Docling stopping (#16438)

* fix: Fix duplicate fake image before token on first slice

Branch: GraniteDoclingStopping

Signed-off-by: Gabe Goodhart <redacted>
* fix: Use double-newline before overview image

Branch: GraniteDoclingStopping

Signed-off-by: Gabe Goodhart <redacted>
* fix: Remove incorrect newline at the end of granite chat template gen prompt

There should not be one, even for the language models.

Branch: GraniteDoclingStopping

Signed-off-by: Gabe Goodhart <redacted>
* tests: Remove bad newline from granite chat template test (legacy)

Branch: GraniteDoclingStopping

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

Signed-off-by: Gabe Goodhart <redacted>
8 weeks agoci : refactor sdk caching to minimize storage (#16414)
Sigbjørn Skjæret [Mon, 6 Oct 2025 15:40:21 +0000 (17:40 +0200)]
ci : refactor sdk caching to minimize storage (#16414)

* refactor sdk caching to minimize storage

* use correct action

* add myself as owner to /.github/actions/ [no ci]

8 weeks agoggml : fix unaligned access in AMX code (#16315)
Georgi Gerganov [Mon, 6 Oct 2025 13:05:27 +0000 (16:05 +0300)]
ggml : fix unaligned access in AMX code (#16315)

8 weeks agoci : remove missing reranker model files (#16444)
Daniel Bevenius [Mon, 6 Oct 2025 12:56:59 +0000 (14:56 +0200)]
ci : remove missing reranker model files (#16444)

This commit removes jina-reranker-v1-tiny-en model files that are no
longer present on Hugging Face.

The motivation for this that it clears up the CI logs from 404 errors
which can be a little confusing when looking at the logs the first time.

Refs: https://github.com/ggml-org/llama.cpp/actions/runs/18070620247/job/51419855630#step:5:2649

8 weeks agoggml-cpu : fix leftover handling in ggml_vec_scale_f32 for SVE (#16443)
Daniel Bevenius [Mon, 6 Oct 2025 12:17:12 +0000 (14:17 +0200)]
ggml-cpu : fix leftover handling in ggml_vec_scale_f32 for SVE (#16443)

This commit updates the leftover handling in ggml_vec_scale_f32.

The motivation for this is that the code currently incorrectly assumes
there would be fewer than ggml_f32_epr leftover elements. However,
since the main loop processes 2*ggml_f32_epr elements per iteration
, there can be up to (2*ggml_f32_epr - 1) leftover elements.

The original single-pass leftover code could only process ggml_f32_epr
elements, leaving some elements unscaled.

Example scenario with 256-bit SVE:
```
ggml_f32_epr  = 8 (elements per register)
ggml_f32_step = 16 (two registers per iteration)
n             = 25
np            = 16
leftovers     = 9 elements (16-24)

Original    : processes only elements 16-23, misses element 24
This commit : loop processes elements 16-23, then element 24
```

Refs: https://github.com/ggml-org/llama.cpp/actions/runs/18070620247/job/51419855630

8 weeks agonix : removed metal for nix (#16118)
Yuannan [Mon, 6 Oct 2025 09:29:56 +0000 (09:29 +0000)]
nix : removed metal for nix (#16118)

8 weeks agoserver: update readme to mention n_past_max metric (#16436)
Oleksandr Kuvshynov [Mon, 6 Oct 2025 07:53:31 +0000 (03:53 -0400)]
server: update readme to mention n_past_max metric (#16436)

https://github.com/ggml-org/llama.cpp/pull/15361 added new metric
exported, but I've missed this doc.

8 weeks agomodel : Granite docling + Idefics3 preprocessing (SmolVLM) (#16206)
Gabe Goodhart [Sun, 5 Oct 2025 12:57:47 +0000 (06:57 -0600)]
model : Granite docling + Idefics3 preprocessing (SmolVLM) (#16206)

* feat: Add granite-docling conversion using trillion pretokenizer

Branch: gabe-l-hart/GraniteDocling

Signed-off-by: Gabe Goodhart <redacted>
* feat: Add granite-docling vocab pre enum

Branch: gabe-l-hart/GraniteDocling

Signed-off-by: Gabe Goodhart <redacted>
* fix: Use granite-docling pre

Branch: gabe-l-hart/GraniteDocling

Signed-off-by: Gabe Goodhart <redacted>
* feat: Add clip_is_idefics3

Branch: gabe-l-hart/GraniteDocling

Signed-off-by: Gabe Goodhart <redacted>
* feat: Allow multi-token boundary sequences for image templating

Branch: gabe-l-hart/GraniteDocling

Signed-off-by: Gabe Goodhart <redacted>
* feat: Add tiling support for idefices3 in clip.cpp

This should likely be moved into llava_uhd::get_slice_instructions, but for
now this avoids disrupting the logic there.

Branch: gabe-l-hart/GraniteDocling

Signed-off-by: Gabe Goodhart <redacted>
* feat: Partial support for full templating for idefics3 in mtmd

There are still errors encoding some of the image chunks, but the token
sequence now matches transformers _almost_ perfectly, except for the double
newline before the global image which shows up as two consecutive newline
tokens instead of a single double-newline token. I think this is happening
because the blocks are tokenized separately then concatenated.

Branch: gabe-l-hart/GraniteDocling

Signed-off-by: Gabe Goodhart <redacted>
* feat: Fully working image preprocessing for idefics3 w/ resize and slicing

Branch: gabe-l-hart/GraniteDocling

Signed-off-by: Gabe Goodhart <redacted>
* feat: Parse the preprocessor config's longest side and add it to the mmproj hparams

Branch: GraniteDocling

Signed-off-by: Gabe Goodhart <redacted>
* fix: Use the longest side instead of size * scale_factor

For Granite Docling, these come out to the same value, but that was just a
conicidence.

Branch: GraniteDocling

Signed-off-by: Gabe Goodhart <redacted>
* fix: Allow batch encoding and remove clip_is_idefics3

Branch: GraniteDocling

Signed-off-by: Gabe Goodhart <redacted>
* refactor: Remove unnecessary conditionals for empty token vectors

Branch: GraniteDocling

Signed-off-by: Gabe Goodhart <redacted>
* refactor: Use image_manipulation util

Branch: GraniteDocling

Signed-off-by: Gabe Goodhart <redacted>
* add test model

---------

Signed-off-by: Gabe Goodhart <redacted>
Co-authored-by: Xuan Son Nguyen <redacted>
8 weeks agoggml webgpu: actually add softmax, fix rms_norm offset (#16400)
Reese Levine [Sun, 5 Oct 2025 03:59:31 +0000 (20:59 -0700)]
ggml webgpu: actually add softmax, fix rms_norm offset (#16400)

* implement soft_max

* Fix soft_max data race

* Temporary fix, wait on each submit

8 weeks agovulkan: use a more appropriate amount of threads when generating shaders (#16418)
Eve [Sat, 4 Oct 2025 20:04:27 +0000 (20:04 +0000)]
vulkan: use a more appropriate amount of threads when generating shaders (#16418)

* use a more flexible amount of threads

* fix windows compile and 0 thread case

* nominmax

8 weeks agorpc : check src buffer when copying tensor (#16421)
Radoslav Gerganov [Sat, 4 Oct 2025 13:22:45 +0000 (16:22 +0300)]
rpc : check src buffer when copying tensor (#16421)

Only dst buffer is guaranteed to be an RPC buffer. Add check for the src
one.

8 weeks agorpc : add support for multiple devices (#16276)
Radoslav Gerganov [Sat, 4 Oct 2025 09:49:16 +0000 (12:49 +0300)]
rpc : add support for multiple devices (#16276)

* rpc : add support for multiple devices

Allow rpc-server to expose multiple devices from a single endpoint.
Change RPC protocol to include device identifier where needed.

closes: #15210

* fixes

* use ggml_backend_reg_t

* address review comments

* fix llama-bench backend report

* address review comments, change device naming

* fix cmd order

8 weeks agovulkan : incremental shader builds (#16341)
Acly [Sat, 4 Oct 2025 09:42:56 +0000 (11:42 +0200)]
vulkan : incremental shader builds (#16341)

* vulkan (DRAFT): split shader generation by GLSL source file, to improve incremental build times

* support dep-files so shaders are recompiled if their included files change

* rename shader files which are used as "headers" to use .glsl extension
* move glslc extension detection shaders to separate folders
* the above is to prevent them from getting glob'd with the actual compute shaders that need to be compiled

* vulkan : only write embedded shader .hpp/.cpp when they change

* avoid recompiling ggml-vulkan.cpp when editing shaders
* pass single --source argument instead of --input-dir & --filter to shader gen
* check for source file match earlier

* fix hang in vulkan-shaders-gen when there are compilation errors

* early out did not decrement compile_count

* clean up

* fix glslc integer dot product test

* unconditionally write the embedded shader cpp output

* replace output filepath in generated dep-files to match output in CMakeLists

---------

Co-authored-by: Jeff Bolz <redacted>
8 weeks agochat : support Magistral thinking (#16413)
Pascal [Fri, 3 Oct 2025 18:51:48 +0000 (20:51 +0200)]
chat : support Magistral thinking (#16413)

* feat: added a dedicated Magistral chat format that preserves [THINK] spans, parses reasoning before tool calls

* feat: new flow in the chat template test suite for Magistral

8 weeks agoserver : context checkpointing for hybrid and recurrent models (#16382)
ddh0 [Fri, 3 Oct 2025 18:34:51 +0000 (13:34 -0500)]
server : context checkpointing for hybrid and recurrent models (#16382)

* initial commit for branch 3

* generalize `swa_checkpoint` to `ctx_checkpoint`

this extends `llama-server`'s SWA checkpointing logic to include
hybrid/recurrent models such as Jamba, Granite

* oops

* disable debug prints

* keep backwards compat with `--swa-checkpoints`

Co-authored-by: Georgi Gerganov <redacted>
* update prompt re-processing message

* fix off-by-one error per GG

* keep `seq_rm` log per GG

Co-authored-by: Georgi Gerganov <redacted>
* server : fix checkpoint logic to support recurrent caches

* server : cleanup and fixes

---------

Co-authored-by: Georgi Gerganov <redacted>
8 weeks agometal : fix loop bound in ggml_mem_ranges (#16412)
Georgi Gerganov [Fri, 3 Oct 2025 16:18:56 +0000 (19:18 +0300)]
metal : fix loop bound in ggml_mem_ranges (#16412)

8 weeks agollama : fix shapes for bert/mpt q/k norm (#16409)
Sigbjørn Skjæret [Fri, 3 Oct 2025 12:40:25 +0000 (14:40 +0200)]
llama : fix shapes for bert/mpt q/k norm (#16409)

8 weeks agoggml : fix graph reallocation with multiple chunks (#16396)
Acly [Fri, 3 Oct 2025 11:49:08 +0000 (13:49 +0200)]
ggml : fix graph reallocation with multiple chunks (#16396)

reallocation is needed if a single chunk grows in size,
even if total allocation size stays the same or is lower

8 weeks agoFix missing messages on sibling navigation (#16408)
Aleksander Grygier [Fri, 3 Oct 2025 10:51:40 +0000 (12:51 +0200)]
Fix missing messages on sibling navigation (#16408)

* fix: resolve message disappearing issue when navigating between regenerated siblings by using current leaf nodes instead of cached sibling IDs

* chore: update webui build output

* chore: update webui build output

8 weeks agovulkan: Replace uses of maxMemoryAllocationSize and VK_WHOLE_SIZE (#16354)
Jeff Bolz [Fri, 3 Oct 2025 10:50:46 +0000 (05:50 -0500)]
vulkan: Replace uses of maxMemoryAllocationSize and VK_WHOLE_SIZE (#16354)

* vulkan: Replace uses of maxMemoryAllocationSize and VK_WHOLE_SIZE

Replace maxMemoryAllocationSize check with maxBufferSize when creating buffers.
The maxMemoryAllocationSize limit is a "soft" limit and allocations can succeed
beyond that limit. This allows > 4GB buffers to be allocated on some
implementations (e.g. NVIDIA) and tensors this large can be used for im2col
and mul_mat.

For temporary buffers (prealloc_x/y/etc) check against maxStorageBufferRange.
I'm not sure this check is ideal, but we always use these buffers as a single
full size binding and the limit may be smaller than maxMemoryAllocationSize
or maxBufferSize, so I think this is reasonable.

Replace descriptor range uses of VK_WHOLE_SIZE with a manually computed range.
The maxStorageBufferRange may be smaller than the maxBufferSize or
maxMemoryAllocationSize (and the Vulkan spec warns about this in a note) and
it's invalid usage if VK_WHOLE_SIZE computes a range larger than
maxStorageBufferRange.

With this change, it should be possible to generate videos using wan networks
in stable-diffusion.cpp.

* vulkan: Add env var GGML_VK_FORCE_MAX_BUFFER_SIZE and use stoull

8 weeks agovulkan: Fix FA coopmat1 invalid array indexing (#16365)
Jeff Bolz [Fri, 3 Oct 2025 09:52:46 +0000 (04:52 -0500)]
vulkan: Fix FA coopmat1 invalid array indexing (#16365)

When computing sinks, the cm1 shader was looping r from 0 to Br rather than
to rows_per_thread. I must have copied this from the scalar path (where it is
correct), and somehow it wasn't causing failures on current drivers.

8 weeks agoci : change macos-13 to macos-15-intel (#16401)
Daniel Bevenius [Fri, 3 Oct 2025 09:45:16 +0000 (11:45 +0200)]
ci : change macos-13 to macos-15-intel (#16401)

This commit updates the macos-13 runners to macos-15-intel.

The motivation for this changes is the macos-13 runners are scheduled
to be retired on 2025-12-04.

Refs: https://github.blog/changelog/2025-09-19-github-actions-macos-13-runner-image-is-closing-down/

8 weeks agoCapture model name only after first token (streaming) or completed request (#16405)
Aleksander Grygier [Fri, 3 Oct 2025 09:30:39 +0000 (11:30 +0200)]
Capture model name only after first token (streaming) or completed request (#16405)

* feat: Capture model name only after first token (streaming) or completed request (non-streaming)

* chore: update webui build output

* chore: update webui build output

8 weeks agovulkan: in flash attention, bounds check against nem1 (don't rely on GGML_KQ_MASK_PAD...
Jeff Bolz [Fri, 3 Oct 2025 08:33:08 +0000 (03:33 -0500)]
vulkan: in flash attention, bounds check against nem1 (don't rely on GGML_KQ_MASK_PAD) (#16316)

8 weeks agowebui : Fix messages payload sent to chat completions (#16402)
Aleksander Grygier [Fri, 3 Oct 2025 07:11:34 +0000 (09:11 +0200)]
webui : Fix messages payload sent to chat completions (#16402)

* fix: Include just the currently active message branches instead of all in chat completions request

* chore: Build webui static output

* chore: Formatting

* chore: update webui build output

8 weeks agofix: track viewportHeight via window.innerHeight to avoid unwanted scrolling (#16356)
Pascal [Fri, 3 Oct 2025 06:01:31 +0000 (08:01 +0200)]
fix: track viewportHeight via window.innerHeight to avoid unwanted scrolling (#16356)

Use <svelte:window bind:innerHeight> instead of manual resize listener

Co-authored-by: Aleksander Grygier <redacted>
8 weeks agotest-barrier : do not use more threads than physically available (#16389)
Sigbjørn Skjæret [Thu, 2 Oct 2025 18:10:12 +0000 (20:10 +0200)]
test-barrier : do not use more threads than physically available (#16389)

* do not use more threads than physically available

* ensure n_threads > 0

Co-authored-by: Jeff Bolz <redacted>
---------

Co-authored-by: Jeff Bolz <redacted>
8 weeks agoggml webgpu: add support for soft_max, optimize rms_norm (#16357)
Reese Levine [Thu, 2 Oct 2025 18:00:31 +0000 (11:00 -0700)]
ggml webgpu: add support for soft_max, optimize rms_norm (#16357)

* Add inplace softmax

* Move rms_norm to split row approach

* Update debug for supports_op

* clean up debug statements

* Update tests/test-backend-ops.cpp

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

Co-authored-by: Georgi Gerganov <redacted>
8 weeks agomodel : Apertus model implementation (#15852)
Piotr Wilkin (ilintar) [Thu, 2 Oct 2025 17:43:22 +0000 (19:43 +0200)]
model : Apertus model implementation (#15852)

* First attempt

* No permute during convert (fixes qk tensors), proper norm application.

* RoPE = NeoX

* Coherence!

* Migrate xielu params from tensors to hyperparameters

* Simple CUDA kernel

* Revert stupid LLM refactorings

* Chat template support

* configchecker / flake8 errors

* Reorder unary.cu

* I do conclude that LLMs are, in fact, stupid.

* Fix after merge

* Final newline

* Make xIELU an UNARY_OP

* Final newline

* Correctly account for parameter shift

* Argh.

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

Co-authored-by: Georgi Gerganov <redacted>
* Refactor: remove unused methods, inline and factorize softplus, add const modifiers

* Revert CUDA changes, implement xIELU as a separate OP

* Pesky newline

* Add float2half / half2float for F16 inputs/outputs

* CUDA variants, attempt 2

* Actually, attempt 3

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

Co-authored-by: Johannes Gäßler <redacted>
* Missing convert header

* Proper formula and reference for xIELU in the comments.

* Modify unary-ops.cpp to add the functor-based logic besides the template system to retain optimizations

* Apply suggestions from code review

Co-authored-by: Sigbjørn Skjæret <redacted>
* Add tensor mappings for Apertus to global list instead

* Fix lazy on scalars

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

Co-authored-by: Johannes Gäßler <redacted>
* Add comment about the constraints on positive/negative alpha

* Change `softplus` to `ggml_softplus`

---------

Co-authored-by: Georgi Gerganov <redacted>
Co-authored-by: Johannes Gäßler <redacted>
Co-authored-by: Sigbjørn Skjæret <redacted>
2 months agomusa: update compile flags (#16265)
R0CKSTAR [Thu, 2 Oct 2025 13:29:56 +0000 (21:29 +0800)]
musa: update compile flags (#16265)

Signed-off-by: Xiaodong Ye <redacted>
2 months agoci : fix ubuntu-latest-cmake-rpc (disable ccache) (#16388)
Sigbjørn Skjæret [Thu, 2 Oct 2025 11:51:36 +0000 (13:51 +0200)]
ci : fix ubuntu-latest-cmake-rpc (disable ccache) (#16388)

2 months agoci: update vulkan ci (#16294)
Eve [Thu, 2 Oct 2025 08:10:07 +0000 (08:10 +0000)]
ci: update vulkan ci (#16294)

2 months agoci : fix clean-up of old logs (#16381)
Georgi Gerganov [Thu, 2 Oct 2025 07:35:43 +0000 (10:35 +0300)]
ci : fix clean-up of old logs (#16381)

2 months agoSYCL: Update to oneAPI 2025.2 (#16371)
Neo Zhang Jianyu [Thu, 2 Oct 2025 07:16:25 +0000 (15:16 +0800)]
SYCL: Update to oneAPI 2025.2 (#16371)

* update oneapi to 2025.2, use deep-learning-essentials to replace base-tool

* update to 2025.2 use deeplearn essi to replace base toolkit

* add missed dll

* add deep learning essentials

* add sycl-ls

---------

Co-authored-by: Zhang Jianyu <redacted>
2 months agoHIP: add IMbackK to codeowner (#16375)
uvos [Thu, 2 Oct 2025 03:52:59 +0000 (05:52 +0200)]
HIP: add IMbackK to codeowner (#16375)

2 months agoCI: reenable cdna in rocm docker builds (#16376)
uvos [Wed, 1 Oct 2025 21:32:39 +0000 (23:32 +0200)]
CI: reenable cdna in rocm docker builds (#16376)

2 months agoHIP: Disable ROCWMMA fattn on CDNA when compiled against ROCWMMA 2.0.0 (#16221)
uvos [Wed, 1 Oct 2025 21:09:25 +0000 (23:09 +0200)]
HIP: Disable ROCWMMA fattn on CDNA when compiled against ROCWMMA 2.0.0 (#16221)

* HIP: Disable ROCWMMA fatt on CDNA when compiled against ROCWMMA 2.0.0

rocwmma 2.0.0 includes a bug in the code fakeing fp16 accumulation on CDNA

* CUDA: Fix volta condition in ggml_cuda_should_use_wmma_fattn

2 months agollama : parameter conversion and loading fixes for PLaMo2 variants (#16075)
Shunta Saito [Wed, 1 Oct 2025 21:08:15 +0000 (06:08 +0900)]
llama : parameter conversion and loading fixes for PLaMo2 variants (#16075)

* Fix to use hidden_size_per_head

* Fix num heads

* Fix array

* Fix loading weights

* Support old GGUF converted by the previous version of llama.cpp

* Update src/llama-model.cpp

Co-authored-by: Sigbjørn Skjæret <redacted>
* Move shared parameter definitions to the outside of loop

* Not calculating n_embd_head_k,v by n_embd / n_head

---------

Co-authored-by: Sigbjørn Skjæret <redacted>
2 months agoci: Properly install rocwmma for hip builds (#16305)
uvos [Wed, 1 Oct 2025 18:18:03 +0000 (20:18 +0200)]
ci: Properly install rocwmma for hip builds (#16305)

* CI: Properly install rocwmma for hip builds

on windows we now windows install rocwmma from ubuntu pacakges

* CI: update linux rocm docker build to use rocm 7.0

2 months agocommon: introduce http.h for httplib-based client (#16373)
Adrien Gallouët [Wed, 1 Oct 2025 17:22:18 +0000 (19:22 +0200)]
common: introduce http.h for httplib-based client (#16373)

* common: introduce http.h for httplib-based client

This change moves cpp-httplib based URL parsing and client setup into
a new header `common/http.h`, and integrates it in `arg.cpp` and `run.cpp`.

It is an iteration towards removing libcurl, while intentionally
minimizing changes to existing code to guarantee the same behavior when
`LLAMA_CURL` is used.

Signed-off-by: Adrien Gallouët <redacted>
* tools : add missing WIN32_LEAN_AND_MEAN

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

Signed-off-by: Adrien Gallouët <redacted>
Signed-off-by: Adrien Gallouët <redacted>
2 months agoConversation action dialogs as singletons from Chat Sidebar + apply conditional rende...
Aleksander Grygier [Wed, 1 Oct 2025 16:18:10 +0000 (18:18 +0200)]
Conversation action dialogs as singletons from Chat Sidebar + apply conditional rendering for Actions Dropdown for Chat Conversation Items (#16369)

* fix: Render Conversation action dialogs as singletons from Chat Sidebar level

* chore: update webui build output

* fix: Render Actions Dropdown conditionally only when user hovers conversation item + remove unused markup

* chore: Update webui static build

* fix: Always truncate conversation names

* chore: Update webui static build

2 months agoImprove code block color theming (#16325)
Aleksander Grygier [Wed, 1 Oct 2025 13:54:42 +0000 (15:54 +0200)]
Improve code block color theming (#16325)

* feat: Improve code block theming

* chore: update webui build output

* chore: Update webui static build

2 months agoci : use registry cache for docker builds (#16366)
Sigbjørn Skjæret [Wed, 1 Oct 2025 12:09:52 +0000 (14:09 +0200)]
ci : use registry cache for docker builds (#16366)

2 months agoAdd optional setting for showing "Model used:" information (#16337)
Aleksander Grygier [Wed, 1 Oct 2025 10:08:16 +0000 (12:08 +0200)]
Add optional setting for showing "Model used:" information (#16337)

* feat: Add a setting to include model name used to generate the message

* feat: UI improvements

* feat: Save model info along with the database message entry creation

* chore: Build webui static output

2 months agovulkan: make ggml_vk_default_dispatcher support older vulkan headers (#16345)
Eve [Wed, 1 Oct 2025 07:56:36 +0000 (07:56 +0000)]
vulkan: make ggml_vk_default_dispatcher support older vulkan headers (#16345)

* make ggml_vk_default_dispatcher support older vulkan headers

* simpilfy with using

2 months agowebui: Remove running `llama-server` within WebUI `dev.sh` script (#16363)
Aleksander Grygier [Wed, 1 Oct 2025 05:40:26 +0000 (07:40 +0200)]
webui: Remove running `llama-server` within WebUI `dev.sh` script (#16363)

2 months agomodel : support GLM 4.6 (make a few NextN/MTP tensors not required) (#16359)
Bartowski [Tue, 30 Sep 2025 20:24:36 +0000 (16:24 -0400)]
model : support GLM 4.6 (make a few NextN/MTP tensors not required) (#16359)

* Make a few GLM tensors not required

layer.nextn.shared_head_head and layer.nextn.embed_tokens are both excluded from GLM 4.6 resulting in the model not loading after conversion/quantization, this marks those tensors as not required which makes it work

* Update llama-model.cpp

layer.nextn.shared_head_norm also not required in case of future models

2 months agoci : fix ccache key for ubuntu-cpu-cmake (#16355)
Sigbjørn Skjæret [Tue, 30 Sep 2025 19:41:42 +0000 (21:41 +0200)]
ci : fix ccache key for ubuntu-cpu-cmake (#16355)

* fix ccache key for ubuntu-cpu-cmake

* set it for release as well [no ci]

2 months agocommon : disable progress bar without a tty (#16352)
Adrien Gallouët [Tue, 30 Sep 2025 17:52:41 +0000 (19:52 +0200)]
common : disable progress bar without a tty (#16352)

* common : disable progress bar without a tty

Signed-off-by: Adrien Gallouët <redacted>
* Add missing headers

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

Signed-off-by: Adrien Gallouët <redacted>
2 months agoopencl: support pad_ext (#15888)
lhez [Tue, 30 Sep 2025 17:45:45 +0000 (10:45 -0700)]
opencl: support pad_ext (#15888)

2 months agoChatapi ignore empty sampling (#16330)
Pascal [Tue, 30 Sep 2025 17:18:54 +0000 (19:18 +0200)]
Chatapi ignore empty sampling (#16330)

* fix: skip empty sampling fields instead of coercing to 0 in chat API options

* chore: update webui build output

2 months agoggml webgpu: support for rope,div,sub,glu,scale,cont operators (#16187)
Reese Levine [Tue, 30 Sep 2025 16:57:51 +0000 (09:57 -0700)]
ggml webgpu: support for rope,div,sub,glu,scale,cont operators (#16187)

* Work on rope

* Simplify inplace operation generation and combine mul/add generation

* Work on rope variants

* implement neox rope

* rope complete

* Add sub,div,glu operators

* implement scale op

* Update cpy shader to handle cont/more types

* formatting

* Update test vars printing for rope,rms_norm

* Avoid ROPE hardcoded constants

* Add TODO to change ROPE constants to enum

Co-authored-by: Georgi Gerganov <redacted>
* fix TODO comment

---------

Co-authored-by: Georgi Gerganov <redacted>
2 months agoopencl: support ne3 in get_rows (#15866)
lhez [Tue, 30 Sep 2025 16:55:13 +0000 (09:55 -0700)]
opencl: support ne3 in get_rows (#15866)

2 months agocommon : remove common_has_curl() (#16351)
Adrien Gallouët [Tue, 30 Sep 2025 14:39:44 +0000 (16:39 +0200)]
common : remove common_has_curl() (#16351)

`test-arg-parser.cpp` has been updated to work consistently,
regardless of whether CURL or SSL support is available, and
now always points to `ggml.ai`.

The previous timeout test has been removed, but it can be
added back by providing a dedicated URL under `ggml.ai`.

Signed-off-by: Adrien Gallouët <redacted>
2 months agoci : disable ccache for android (#16348)
Sigbjørn Skjæret [Tue, 30 Sep 2025 13:38:01 +0000 (15:38 +0200)]
ci : disable ccache for android (#16348)

2 months agoggml : bump version to 0.9.4 (ggml/1363)
Georgi Gerganov [Tue, 30 Sep 2025 10:42:39 +0000 (13:42 +0300)]
ggml : bump version to 0.9.4 (ggml/1363)

2 months agocuda : Enable CUDA Graph usage for Nemotron Nano v2 (NemotronH) (#16328)
anavp-nvidia [Tue, 30 Sep 2025 08:13:22 +0000 (08:13 +0000)]
cuda : Enable CUDA Graph usage for Nemotron Nano v2 (NemotronH) (#16328)

* Fix Nemotron Nano v2 9B not executing as CUDA Graph on NVIDIA GPUs

* fix to ensure test-backend-ops check passes

2 months agometal : dynamic simdgroups for MV kernels (#16340)
Georgi Gerganov [Tue, 30 Sep 2025 08:03:23 +0000 (11:03 +0300)]
metal : dynamic simdgroups for MV kernels (#16340)

* metal : dynamic simdgroups for MV kernels

* cont : minor

2 months agocommon : simplify etag tracking by removing json (#16342) upstream/0.0.6641
Adrien Gallouët [Tue, 30 Sep 2025 07:36:33 +0000 (09:36 +0200)]
common : simplify etag tracking by removing json (#16342)

The JSON parser is temporarily kept only for backward compatibility. It
reads the etag from old .json files to prevent unnecessary re-downloads
for existing users.

This legacy code can be removed in a future version.

Signed-off-by: Adrien Gallouët <redacted>
2 months agokleidiai : fix work size and threads sync for fp16 (#16246)
Charles Xu [Tue, 30 Sep 2025 07:07:20 +0000 (09:07 +0200)]
kleidiai : fix work size and threads sync for fp16 (#16246)

2 months agocodeowners: add codeowners for opencl backend (#16344)
lhez [Tue, 30 Sep 2025 05:30:16 +0000 (22:30 -0700)]
codeowners: add codeowners for opencl backend (#16344)

2 months agotests: override test_set_rows::max_nmse_err to allow for occasional rounding differen...
Jeff Bolz [Tue, 30 Sep 2025 00:26:34 +0000 (19:26 -0500)]
tests: override test_set_rows::max_nmse_err to allow for occasional rounding differences (#16295)

* tests: override test_set_rows::max_nmse_err to allow for occasional rounding differences

* apply similar error bounds to test_cpy

2 months agoFix thinking blocks with quotes + add handling `[THINK]...[/THINK]` blocks (#16326)
Pascal [Mon, 29 Sep 2025 16:49:47 +0000 (18:49 +0200)]
Fix thinking blocks with quotes + add handling `[THINK]...[/THINK]` blocks (#16326)

* fix: prevent reasoning blocks with quotes from being truncated

* chore: update webui build output

* feat: Improve thinking content parsing

* test: Adds ChatMessage component stories for different thinking blocks

* chore: update webui build output

* fix: ChatMessage story fix

---------

Co-authored-by: Aleksander Grygier <redacted>
2 months agoci : add AMD runners and workflows (#16249)
Georgi Gerganov [Mon, 29 Sep 2025 14:51:48 +0000 (17:51 +0300)]
ci : add AMD runners and workflows (#16249)

* ci : add AMD runners and workflows

* ci : move AMD jobs to separate workflow

* cont : fix paths

2 months agoggml: riscv: add riscv spacemit backend (#15288)
alex-spacemit [Mon, 29 Sep 2025 14:50:44 +0000 (22:50 +0800)]
ggml: riscv: add riscv spacemit backend (#15288)

* ggml: add spacemit backend

Change-Id: I249bdc043485d815a9c351867137bc1e27cc2e23

* add new line at end of file

Change-Id: I889ed1c85fb45e62350ecde0c06f70450cadfbe2

* add riscv zba extension limit

Change-Id: I321eb200f859751727afe5cae13074dfce2bb0ce

* fixed for review comments, file renamed and format

Change-Id: Ia20b6ec24a36638e62e0fe07cf100916a7cce3ce

* fixed for code format, after clang-format

Change-Id: I5dc33a0412da3d3f2d77075d8939185d3009eca2

* use _Float16 instead of __fp16

Change-Id: I039fb02bb95270e641bc4442204e658735859d43

* add ci for riscv64-spacemit-ime-native

Change-Id: I711c1033061df1a289ea77891b2997599dfe8279

* update debian-13-riscv64-spacemit-ime-native ci label

Change-Id: Ifb2b891e2fca57b5da604fce2ac255f27731179a

* remove license comment for spacemit ime

Change-Id: If0dc3ca30a958631ccca0a28b62e0b825f9fb0c3

* upgrade binutils for gcc ime

Change-Id: Ibf2fa74c1064408974cb5b45f044d40987e5fb45

* add spacemit ime cross jobs

Change-Id: I80d74909941d41cb9cd09e51d8baf01c985cbfc6

* remove native compile for riscv64-spacemit-ime

Change-Id: I01920afafdc73fa7424014fd648d243f8ec9e25e

* ci : add caching for spacemit ime cross toolchain

Change-Id: Ic54a192019a2fd982bbd58225ce3bbc38f4053de

* ci: bug fixed for cache path and env

Change-Id: I28c42e10b6fff053bb6580926ca2353448cb042a

* Update .github/workflows/build-linux-cross.yml for cache path

Co-authored-by: Sigbjørn Skjæret <redacted>
* bugfixed for  build-linux-cross.yml,  syntax error

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

Co-authored-by: cailinxi <redacted>
Co-authored-by: Sigbjørn Skjæret <redacted>
2 months agosync : ggml
Georgi Gerganov [Mon, 29 Sep 2025 13:50:52 +0000 (16:50 +0300)]
sync : ggml

2 months agosync : whisper.cpp (ggml/1359)
Georgi Gerganov [Mon, 29 Sep 2025 13:49:11 +0000 (16:49 +0300)]
sync : whisper.cpp (ggml/1359)

* ggml : Fix MKL detection by quoting BLAS_INCLUDE_DIRS (whisper/3426)

* sync : whisper.cpp

2 months agoggml : remove -dev suffix from release version (ggml/1355)
Daniel Bevenius [Fri, 26 Sep 2025 15:34:42 +0000 (17:34 +0200)]
ggml : remove -dev suffix from release version (ggml/1355)

This commit removes the `-dev` suffix from the version string in
CMakeLists.txt and the release script. The version will now be
just be formatted as `MAJOR.MINOR.PATCH`.

2 months agoggml : bump version to 0.9.3 (ggml/1353)
Daniel Bevenius [Thu, 25 Sep 2025 12:39:05 +0000 (14:39 +0200)]
ggml : bump version to 0.9.3 (ggml/1353)

2 months agoggml : prepare for development of 0.9.2-dev
Georgi Gerganov [Sat, 20 Sep 2025 13:44:23 +0000 (16:44 +0300)]
ggml : prepare for development of 0.9.2-dev

2 months agoggml : bump version to 0.9.1
Georgi Gerganov [Sat, 20 Sep 2025 13:44:23 +0000 (16:44 +0300)]
ggml : bump version to 0.9.1

2 months agoggml-backend : add root cause in error message if loading backend library fails ...
Rafal Lewczuk [Mon, 29 Sep 2025 11:17:09 +0000 (13:17 +0200)]
ggml-backend : add root cause in error message if loading backend library fails (#16172)

This PR adds additional information to an error message when loading backend library via ld_load_library() fails. This helps spotting why backend library did not load (missing library, missing dependency or unresolved symbol etc.).

2 months agoggml : check cuda and metal argsort limits and add test (#16323)
Sigbjørn Skjæret [Mon, 29 Sep 2025 09:09:00 +0000 (11:09 +0200)]
ggml : check cuda and metal argsort limits and add test (#16323)

* check cuda argsort limits and add test

* add metal check

2 months agoImprove Mobile UI for dialogs and action dropdowns (#16222)
Aleksander Grygier [Mon, 29 Sep 2025 08:37:20 +0000 (10:37 +0200)]
Improve Mobile UI for dialogs and action dropdowns (#16222)

* fix: Always show conversation item actions

* feat: Improve Alert Dialog and Dialog mobile UI

* feat: Add settings reset to default confirmation

* fix: Close Edit dialog on save

* chore: update webui build output

* webui: implement proper z-index system and scroll management

- Add CSS variable for centralized z-index control
- Fix dropdown positioning with Settings dialog conflicts
- Prevent external scroll interference with proper event handling
- Clean up hardcoded z-index values for maintainable architecture

* webui: ensured the settings dialog enforces dynamic viewport height on mobile while retaining existing desktop sizing overrides

* feat: Use `dvh` instead of computed px height for dialogs max height on mobile

* chore: update webui build output

* feat: Improve Settings fields UI

* chore: update webui build output

* chore: update webui build output

---------

Co-authored-by: Pascal <redacted>
2 months agofix: preserved zero values in chat settings inputs and textareas by switching to...
Pascal [Mon, 29 Sep 2025 07:08:41 +0000 (09:08 +0200)]
fix: preserved zero values in chat settings inputs and textareas by switching to nullish coalescing for field values and default placeholders (#16312)

2 months agollama-cli: prevent spurious assistant token (#16202)
Vinkal [Mon, 29 Sep 2025 07:03:12 +0000 (12:33 +0530)]
llama-cli: prevent spurious assistant token (#16202)

* tools/main: llama-cli: prevent spurious assistant token (#13402)

During prompt ingestion, prompt tokens are accepted into the sampler history (for repetition penalties). The conversation-mode path then appended `common_sampler_last(smpl)` to `assistant_ss` before any new token was sampled. At that point, "last" was a prompt-side token (e.g., an input prefix), so the assistant chat message began with an extra piece.

Fix: append to `assistant_ss` only for a newly sampled (non-EOG) token. This affects only chat message assembly (`assistant_ss` / `chat_msgs` / `common_chat_format_single`); terminal stdout is unchanged. Sampling order/logits are unchanged.

Fixes #13402.

Signed-off-by: Vinkal Chudgar <redacted>
* Update tools/main/main.cpp

Co-authored-by: Sigbjørn Skjæret <redacted>
* tools/main: remove outdated comment

Signed-off-by: Vinkal Chudgar <redacted>
---------

Signed-off-by: Vinkal Chudgar <redacted>
Co-authored-by: Sigbjørn Skjæret <redacted>
2 months agoperplexity : show more kl-divergence data (#16321)
ddh0 [Mon, 29 Sep 2025 06:30:45 +0000 (01:30 -0500)]
perplexity : show more kl-divergence data (#16321)

Adds additional percentile data for displayed in the output of `llama-perplexity --kl-divergence`:
- Added 95 percentile (mirroring existing 5 percentile)
- Added 0.1 percentile (mirroring existing 99.9 percentile)

2 months agoggml : fix dependencies for ggml_set_rows (#16318)
Georgi Gerganov [Mon, 29 Sep 2025 05:41:28 +0000 (08:41 +0300)]
ggml : fix dependencies for ggml_set_rows (#16318)

2 months agovulkan: Fix validation failure in quantized flash attention (#16292)
Jeff Bolz [Mon, 29 Sep 2025 04:50:37 +0000 (23:50 -0500)]
vulkan: Fix validation failure in quantized flash attention (#16292)

2 months agoggml : fix GGML_F32_VEC_FMA argument order in ggml_vec_mad1_f32 (#16307)
Sigbjørn Skjæret [Sun, 28 Sep 2025 21:15:03 +0000 (23:15 +0200)]
ggml : fix GGML_F32_VEC_FMA argument order in ggml_vec_mad1_f32 (#16307)

* fix GGML_F32_VEC_FMA argument order in ggml_vec_mad1_f32

* add test that fails on simd

2 months agocommon : fix reasoning before forced tool call via tool_choice = required (#16264)
crat0z [Sun, 28 Sep 2025 18:13:50 +0000 (14:13 -0400)]
common : fix reasoning before forced tool call via tool_choice = required (#16264)

* common : fix reasoning before forced tool call via tool_choice = required

* common : improve reasoning and commentary handling when tool_choice is required

(cherry picked from commit c746984956d6882c2de73d53ae2bb3bdf889e475)

---------

Co-authored-by: Alde Rojas <redacted>
2 months agoci : fix musa docker build (#16306)
R0CKSTAR [Sun, 28 Sep 2025 14:38:15 +0000 (22:38 +0800)]
ci : fix musa docker build (#16306)

Signed-off-by: Xiaodong Ye <redacted>
2 months agodevops: switch to using ubuntu-22.04-s390x image (#16302)
Aaron Teo [Sun, 28 Sep 2025 11:25:58 +0000 (19:25 +0800)]
devops: switch to using ubuntu-22.04-s390x image (#16302)

Signed-off-by: Aaron Teo <redacted>
2 months agoFixed a few typos in the README of the LLaMA.cpp HTTP Server [no ci] (#16297)
Imad Saddik [Sun, 28 Sep 2025 11:04:46 +0000 (12:04 +0100)]
Fixed a few typos in the README of the LLaMA.cpp HTTP Server [no ci] (#16297)

2 months agovulkan: 64-bit im2col (#16135)
Jeff Bolz [Sun, 28 Sep 2025 06:38:37 +0000 (01:38 -0500)]
vulkan: 64-bit im2col (#16135)

* vulkan: 64-bit im2col

Add variants of the im2col shaders that use buffer_device_address/buffer_reference,
and use 64-bit address calculations. This is needed for large convolutions used in
stable-diffusion.cpp.

* fix validation error for large im2col

2 months agometal : extend mat-mat multiplication support (#16225)
Georgi Gerganov [Sun, 28 Sep 2025 06:34:44 +0000 (09:34 +0300)]
metal : extend mat-mat multiplication support (#16225)

* metal : support mul_mm with src1->type == GGML_TYPE_F16

* metal : support mul_mm_id with src1->type == GGML_TYPE_F16

[no ci]

* metal : mul_mm support ne00 % 32 != 0

* metal : support mul_mm_id with ne00 % 32 != 0

* cont : remove unnecessary unrolls

* cont : simplify data loading

* metal : optimize mul_mm when output bounds checks are not needed

2 months agometal : fuse non-sequential nodes (#16102)
Georgi Gerganov [Sun, 28 Sep 2025 06:34:05 +0000 (09:34 +0300)]
metal : fuse non-sequential nodes (#16102)

* metal : fuse non-sequential nodes

* cont : add comment

* cont : simplify bounds checks

2 months agovulkan: handle mat_mul with A matrix > 4GB (#16176)
Jeff Bolz [Sun, 28 Sep 2025 01:36:34 +0000 (20:36 -0500)]
vulkan: handle mat_mul with A matrix > 4GB (#16176)

* vulkan: handle mat_mul with A matrix > 4GB

This change splits mat_mul operations with huge A matrix into chunks in the M
dimension. This works well for stable-diffusion use cases where the im2col
matrix has very large M.

Fix the order of setting the stride in mul_mm_cm2 - setting the dimension
clobbers the stride, so stride should be set after.

* build fixes

2 months agovulkan: support arbitrary KV dimension in flash attention (#16160)
Jeff Bolz [Sat, 27 Sep 2025 20:43:39 +0000 (16:43 -0400)]
vulkan: support arbitrary KV dimension in flash attention (#16160)

The "Clamp" spec constant is already based on whether KV is a multiple of Bc,
so use that to control whether bounds checking is performed. Add bounds checking
to the scalar and coopmat1 paths. Coopmat2 didn't need any changes (the K/V
tensors are already optionally clamped, nothing else needed to be changed).

2 months agovulkan : make the vulkan.hpp dynamic dispatcher instance private (#16224)
Acly [Sat, 27 Sep 2025 20:41:03 +0000 (22:41 +0200)]
vulkan : make the vulkan.hpp dynamic dispatcher instance private (#16224)

* don't use VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE which can cause conflicts if application or other libraries do the same

2 months agoShow message actions by default (#16289)
Aleksander Grygier [Sat, 27 Sep 2025 17:56:40 +0000 (19:56 +0200)]
Show message actions by default (#16289)

2 months agoCUDA: mul_mat_id for mmf for bs <= 64 for f16 and bs <= 32 for f32 (#16277)
Aman Gupta [Sat, 27 Sep 2025 16:49:32 +0000 (00:49 +0800)]
CUDA: mul_mat_id for mmf for bs <= 64 for f16 and bs <= 32 for f32 (#16277)

* CUDA: mul_mat_id for mmf for bs <= 64 for f16 and bs <= 32 for f32

This commit adds mul_mat_id support for ncols_dst >= 16. It does this by
packing ncols_dst tiles into the blockDim.y.

My tests on a RTX 3090 show that this is faster than the cuBLAS fallback
for f16 till bs=64, and for f32 till bs=32

* Review: refactor if statement