]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/log
pkg/ggml/sources/llama.cpp
6 months agovulkan : fix soft_max.comp division by zero (whisper/2633)
gn64 [Mon, 16 Dec 2024 10:34:38 +0000 (19:34 +0900)]
vulkan : fix soft_max.comp division by zero (whisper/2633)

This change prevents a division by zero error when p.KY is 0.

6 months agoggml : remove return from ggml_gallocr_allocate_node (ggml/1048)
Daniel Bevenius [Sat, 14 Dec 2024 02:23:08 +0000 (03:23 +0100)]
ggml : remove return from ggml_gallocr_allocate_node (ggml/1048)

This commit removes the return statement from ggml_gallocr_allocate_node
function.

The motivation behind this change is to make the code more readable and
consistent.

6 months agoggml : add check for grad_accs (ggml/1046)
Daniel Bevenius [Fri, 13 Dec 2024 07:19:38 +0000 (08:19 +0100)]
ggml : add check for grad_accs (ggml/1046)

* ggml : add check for grad_accs

This commit adds a check for grad_accs in ggml_graph_get_grad and
ggml_graph_get_grad_acc functions. This is necessary to avoid segfaults
when grad_accs is not initialized.

The motivation for this change is that I find it nice to be able to
print out a computation graph using ggml_graph_print but this function
segfaults when grad_accs is not initialized:
```console
(gdb) p g1
$2 = (ggml_cgraph *) 0x7ffff66004b0
(gdb) p *g1
$3 = {size = 2048, n_nodes = 1, n_leafs = 2, nodes = 0x7ffff6600500,
grads = 0x0, grad_accs = 0x0, leafs = 0x7ffff6604500,
visited_hash_set = {size = 4099, used = 0x7ffff6610518,
keys = 0x7ffff6608500}, order = GGML_CGRAPH_EVAL_ORDER_LEFT_TO_RIGHT}
(gdb) p ggml_graph_print(g1)
=== GRAPH ===
n_nodes = 1

Program received signal SIGSEGV, Segmentation fault.
0x0000555555579775 in ggml_graph_get_grad
(cgraph=0x7ffff66004b0,node=0x7ffff6600340)
    at /ggml/ggml/src/ggml.c:5990
5990  return igrad != GGML_HASHSET_FULL &&
          ggml_bitset_get(cgraph->visited_hash_set.used, igrad) ?
          cgraph->grads[igrad] : NULL;
```

* squash! ggml : add check for grad_accs

Fix the check in ggml_graph_get_grad. The check was incorrectly using
cgraph->grad_accs instead of cgraph->grads.

6 months agoggml : update ggml_backend_cpu_device_supports_op (#10867)
Georgi Gerganov [Tue, 17 Dec 2024 16:35:42 +0000 (18:35 +0200)]
ggml : update ggml_backend_cpu_device_supports_op (#10867)

* ggml : fix cpy op for IQ-quants to use reference impl

ggml-ci

* ggml : disable tests involving i-matrix quantization

* ggml : update ggml_backend_cpu_device_supports_op

ggml-ci

6 months agoserver : fill usage info in embeddings and rerank responses (#10852)
krystiancha [Tue, 17 Dec 2024 16:00:24 +0000 (16:00 +0000)]
server : fill usage info in embeddings and rerank responses (#10852)

* server : fill usage info in embeddings response

* server : fill usage info in reranking response

6 months agollama : add Falcon3 support (#10864)
Billel Mokeddem [Tue, 17 Dec 2024 15:24:56 +0000 (19:24 +0400)]
llama : add Falcon3 support (#10864)

6 months agoreadme : update typos (#10863)
Ruan [Tue, 17 Dec 2024 09:47:20 +0000 (17:47 +0800)]
readme : update typos (#10863)

6 months agoserver : (UI) fix missing async generator on safari (#10857)
Xuan Son Nguyen [Tue, 17 Dec 2024 08:52:09 +0000 (09:52 +0100)]
server : (UI) fix missing async generator on safari (#10857)

* server : (UI) fix missing async generator on safari

* fix

6 months agovulkan: bugfixes for small subgroup size systems + llvmpipe test (#10809)
Eve [Tue, 17 Dec 2024 05:52:55 +0000 (05:52 +0000)]
vulkan: bugfixes for small subgroup size systems + llvmpipe test (#10809)

* ensure mul mat shaders work on systems with subgroup size less than 32

more fixes

add test

* only s_warptile_mmq needs to be run with 32 threads or more

6 months agorwkv6: add wkv6 support for Vulkan backend (#10829)
Zhiyuan Li [Mon, 16 Dec 2024 21:00:46 +0000 (05:00 +0800)]
rwkv6: add wkv6 support for Vulkan backend (#10829)

* rwkv_wkv6 vulkan shader

* RWKV_WKV6 Vulkan op tests passed

Signed-off-by: Molly Sophia <redacted>
* Apply code format changes

Signed-off-by: Molly Sophia <redacted>
* add [[unroll]] and remove unnecessary conditions

* add uma support

* fix erros in EditorConfig Checker

---------

Signed-off-by: Molly Sophia <redacted>
Co-authored-by: Molly Sophia <redacted>
6 months agounicode : improve naming style (#10838)
Georgi Gerganov [Mon, 16 Dec 2024 10:31:45 +0000 (12:31 +0200)]
unicode : improve naming style (#10838)

* unicode : improve naming style

ggml-ci

* cont [no ci]

6 months agosampling : refactor + optimize penalties sampler (#10803)
Georgi Gerganov [Mon, 16 Dec 2024 10:31:14 +0000 (12:31 +0200)]
sampling : refactor + optimize penalties sampler (#10803)

* sampling : refactor + optimize penalties sampler

ggml-ci

* common : apply ignore_eos as logit bias

ggml-ci

* batched : remove penalties sampler

* params : allow penalty_last_n == -1 to be equal to context size

ggml-ci

* common : by default, move the penalties at the end of the sampling chain

ggml-ci

* common : ignore all EOG tokens

Co-authored-by: Diego Devesa <redacted>
* common : move back the penalties at the front of the sampling chain

ggml-ci

* readme : restore hint about --ignore-eos flag [no ci]

* llama : minor

ggml-ci

* webui : update

---------

Co-authored-by: Diego Devesa <redacted>
6 months agollava : Allow locally downloaded models for QwenVL (#10833)
Bartowski [Sun, 15 Dec 2024 20:43:25 +0000 (15:43 -0500)]
llava : Allow locally downloaded models for QwenVL (#10833)

* Allow locally downloaded models for QwenVL

* Define model_path

* rm trailing space

---------

Co-authored-by: Xuan Son Nguyen <redacted>
6 months agollama : add Deepseek MoE v1 & GigaChat models (#10827)
Valentin Mamedov [Sun, 15 Dec 2024 17:02:46 +0000 (00:02 +0700)]
llama : add Deepseek MoE v1 & GigaChat models (#10827)

* Add deepseek v1 arch & gigachat template

* improve template code

* add readme

* delete comments

* remove comment

* fix format

* lint llama.cpp

* fix order of deepseek and deepseek2, move gigachat temlate to the end of func

* fix order of deepseek and deepseek2 in constants; mark shared exp as deepseek arch need

* remove comments

* move deepseek above deepseek2

* change placement of gigachat chat template

6 months agoscripts : change build path to "build-bench" for compare-commits.sh (#10836)
Georgi Gerganov [Sun, 15 Dec 2024 16:44:47 +0000 (18:44 +0200)]
scripts : change build path to "build-bench" for compare-commits.sh (#10836)

6 months agoserver: (UI) add syntax highlighting and latex math rendering (#10808)
Vinesh Janarthanan [Sun, 15 Dec 2024 11:55:54 +0000 (05:55 -0600)]
server: (UI) add syntax highlighting and latex math rendering (#10808)

* add code highlighting and math formatting

* code cleanup

* build public/index.html

* rebuild public/index.html

* fixed coding style

* fixed coding style

* style fixes

* highlight: smaller bundle size, fix light & dark theme

* remove katex

* add bundle size check

* add more languages

* add php

* reuse some langs

* use gzip

* Revert "remove katex"

This reverts commit c0e5046accd10be3f83018cffdc29a652849fc61.

* use better maintained @vscode/markdown-it-katex

* fix gzip non deterministic

* ability to add a demo conversation for dev

* fix latex rendering

* add comment

* latex codeblock as code

---------

Co-authored-by: Xuan Son Nguyen <redacted>
6 months agogguf-py : bump to v0.13.0
Georgi Gerganov [Sun, 15 Dec 2024 11:16:42 +0000 (13:16 +0200)]
gguf-py : bump to v0.13.0

6 months agoserver: Fix `has_next_line` in JSON response (#10818)
Michelle Tan [Sat, 14 Dec 2024 22:29:45 +0000 (22:29 +0000)]
server: Fix `has_next_line` in JSON response (#10818)

* Update server JSON response.

* Add unit test to check `has_new_line` JSON response

* Remove `has_new_line` unit test changes.

* Address code review comment: type check for `has_new_line` in unit test

6 months agonix: allow to override rocm gpu targets (#10794)
Evgeny Kurnevsky [Sat, 14 Dec 2024 18:17:36 +0000 (18:17 +0000)]
nix: allow to override rocm gpu targets (#10794)

This allows to reduce compile time when you are building for a single GPU.

6 months agollama : add Qwen2VL support + multimodal RoPE (#10361)
HimariO [Sat, 14 Dec 2024 12:43:46 +0000 (20:43 +0800)]
llama : add Qwen2VL support + multimodal RoPE (#10361)

* Barebone Qwen2VL LLM convertor

* Add Qwen2VL cli entrypoint

* [WIP] add qwen2vl arch

* Verify m-rope output

* Add vl-rope/2d-rope support for qwen2vl ViT

* update qwen2vl cli tool

* update 5D tensor op workaround

* [WIP] qwen2vl vision model

* make batch and clip utils compatible with qwen2vl

* [WIP] create inference workflow, gguf convert script but fix

* correcting vision-rope behavior, add the missing last layer back to ViT

* add arg parser to qwen2vl_surgery

* replace variable size array with vector

* cuda-gdb cmake preset

* add fp32 mrope, vision rope kernel

* add fp16 support for qwen2vl and m-rope

* add `GGML_ROPE_TYPE_MROPE`, `GGML_ROPE_TYPE_VISION`

* fix rope op mode switching, out dated func args

* update `llama_hparams`

* update to keep up stream changes

* resolve linter, test errors

* add makefile entry, update speical image padding token

* add mrope unit test, fix few compiler warnings

* rename `mrope` related function, params

* minor updates on debug util, bug fixs

* add `m-rope` testcase to `test-backend-ops`

* Apply suggestions from code review

Co-authored-by: Georgi Gerganov <redacted>
* fix traililng whitespce

* store `llama_hparams.rope_sections` with fixed size array

* update position id tensor size check in GGML_OP_ROPE

* minor updates

* update `ggml_backend_*_supports_op` of unsupported backends

* remote old `rope_section` compare operator

---------

Co-authored-by: Georgi Gerganov <redacted>
6 months agoRemoves spurious \r in output that causes logging in journalctl to treat lines as...
cduk [Fri, 13 Dec 2024 22:21:49 +0000 (23:21 +0100)]
Removes spurious \r in output that causes logging in journalctl to treat lines as binary and therefore hidden by default (#10771)

Signed-off-by: Charles Darke <redacted>
Co-authored-by: Charles Darke <redacted>
6 months agoIntroducing experimental OpenCL backend with support for Qualcomm Adreno GPUs (#10693)
lhez [Fri, 13 Dec 2024 20:23:52 +0000 (12:23 -0800)]
Introducing experimental OpenCL backend with support for Qualcomm Adreno GPUs (#10693)

* [cl][adreno] Add Adreno GPU support

Add new OpenCL backend to support Adreno GPUs

---------

Co-authored-by: Skyler Szot <redacted>
Co-authored-by: Shangqing Gu <redacted>
Co-authored-by: Alexander Angus <redacted>
Co-authored-by: Hongqiang Wang <redacted>
Co-authored-by: Max Krasnyansky <redacted>
* [cl][ci] Add workflow for CL

* [cl][adreno] Fix memory leak for non SMALL_ALLOC path

* opencl: integrate backend dyn.load interface and fix compiler and format warnings

* opencl: remove small-alloc support and fix build errors for non-opencl platforms

* opencl: fixed merge conflict (MUSA added twice in cmake)

* opencl-ci: use RUNNER_TEMP instead of github.workspace

* opencl: fix embed tool invocation with python3

* opencl: CI workflow fixes

* opencl: Clean up small-alloc in CMake files

* opencl: cleanup ggml-opencl2 header file

* opencl: use ulong for offsets and strides in ADD kernel

* opencl: use cl_ulong for all offsets

* opencl: use cl_ulong for sizes and strides

* opencl: use `GGML_LOG_xxx` instead of `fprintf(stderr, ...)`

* opencl: rename backend `opencl2` -> `opencl`

* opencl: rename kernel files `ggml-opencl2` -> `ggml-opencl`

* opencl: make OpenCL required, remove redundant lib and inc directories

* `ggml-base`, `..` and `.` are added by `ggml_add_backend_library`

* opencl: rename backend - funcs, structs, etc `opencl2` -> `opencl`

* opencl: remove copyright marker since main license already covers

* opencl: replace some more OPENCL2 leftovers

* opencl: remove limits on `tensor_extra`

* opencl: use pools for `tensor_extra`

* opencl: fix compiler warnings with GCC and Clang

Still getting the warning about clCreateCmdQueue being obsolete.
Will fix that separately.

* opencl: fail gracefully if opencl devices are not available

Also for unsupported GPUs.

* opencl: fix MSVC builds (string length error)

* opencl: check for various requirements, allow deprecated API

* opencl: update log message for unsupported GPUs

---------

Co-authored-by: Skyler Szot <redacted>
Co-authored-by: Shangqing Gu <redacted>
Co-authored-by: Alexander Angus <redacted>
Co-authored-by: Hongqiang Wang <redacted>
Co-authored-by: Max Krasnyansky <redacted>
6 months agoOpt class for positional argument handling (#10508)
Eric Curtin [Fri, 13 Dec 2024 18:34:25 +0000 (18:34 +0000)]
Opt class for positional argument handling (#10508)

Added support for positional arguments `model` and `prompt`. Added
functionality to download via strings like:

  llama-run llama3
  llama-run ollama://granite-code
  llama-run ollama://granite-code:8b
  llama-run hf://QuantFactory/SmolLM-135M-GGUF/SmolLM-135M.Q2_K.gguf
  llama-run huggingface://bartowski/SmolLM-1.7B-Instruct-v0.2-GGUF/SmolLM-1.7B-Instruct-v0.2-IQ3_M.gguf
  llama-run https://example.com/some-file1.gguf
  llama-run some-file2.gguf
  llama-run file://some-file3.gguf

Signed-off-by: Eric Curtin <redacted>
6 months agofix: graceful shutdown for Docker images (#10815)
Corentin REGAL [Fri, 13 Dec 2024 17:23:50 +0000 (18:23 +0100)]
fix: graceful shutdown for Docker images (#10815)

6 months agogguf-py : numpy 2 newbyteorder fix (#9772)
Jett Janiak [Fri, 13 Dec 2024 14:48:44 +0000 (15:48 +0100)]
gguf-py : numpy 2 newbyteorder fix (#9772)

6 months agoFix crash caused by ggml_backend_load_all when launching on Android Activity (#10812)
谢乃闻 [Fri, 13 Dec 2024 12:56:07 +0000 (12:56 +0000)]
Fix crash caused by ggml_backend_load_all when launching on Android Activity (#10812)

* Fix crash caused by ggml_backend_load_all when launching on AndroidActivity.

Details:
Calling ggml_backend_load_all during initialization in the AndroidActivity project leads to a crash with the error:
terminating with uncaught exception of type std::__ndk1::__fs::filesystem::filesystem_error: filesystem error: in directory_iterator::directory_iterator(...): Permission denied [./].
This issue occurs because AndroidActivity restricts file access due to sandboxing.

Reproduction:
In the example folder, the LlamaAndroid project can reproduce the crash by calling ggml_backend_load_all first in Java_android_llama_cpp_LLamaAndroid_backend_1init.

* Update ggml/src/ggml-backend-reg.cpp

---------

Co-authored-by: Diego Devesa <redacted>
6 months agovulkan: small mul_mat_vec optimizations (#10665)
Eve [Fri, 13 Dec 2024 08:42:04 +0000 (08:42 +0000)]
vulkan: small mul_mat_vec optimizations (#10665)

* double the number of rows per workgroup

* Update ggml-vulkan.cpp

* Vulkan: Add VK_EXT_subgroup_size_control support to ensure full subgroups for coopmats

* only increase the number of rows for amd and subgroup size 64

* fix missing NUM_ROWS for mul_mat_vec_iq4_nl_f16_f32, untested

* use subgroup min and max to check for gcn (requires https://github.com/ggerganov/llama.cpp/pull/10721)

* manual merge ggml-vulkan.cpp

* set min and max subgroup size in any case

* Also double the number of rows for Intel GPUs

6 months agoSYCL: Reduce most of the compiler warnings (#10748)
Akarshan Biswas [Fri, 13 Dec 2024 06:42:15 +0000 (12:12 +0530)]
SYCL: Reduce most of the compiler warnings (#10748)

* Try to reduce some unused and typecast warnings

* Reduce compiler warnings step 2

* add a newline at the end of the file

* Initialize nreduce as size_t

* [SYCL] Remove pragma directives from mmq.cpp

* SYCL: mmq add condition to prevent blocks_per_tile_x_row variable from becoming 0

* SYCL softmax: Initialize nreduce as size_t

* ggml-sycl.cpp: fix some trailing whitespaces

* SYCL: remove the unused variables instead of commenting it out

* SYCL poo2d kernel: set NAN for invalid pooling op

* SYCL gemm.hpp: remove pragma directives

* SYCL gemm.hpp: use const cast to properly support dnnl::memory

* SYCL: wkv6 remove a comment

* SYCL: clean comments step 2

* SYCL: clean comments and variables step 3

* SYCL: Use GGML_UNUSED for unused variables

* SYCL: remove extra empty lines and a comment

* Remove TODO

* cleanup spaces

* add a stdout for unsupported op

* use sycl printf over fprintf

* remove prints for CI

* SYCL ggml-sycl: pool2D use sycl::nan and remove if-else block

---------

Co-authored-by: Abhilash Majumder <redacted>
6 months agoggml : Fix compilation issues on ARM platform when building without fp16 (#10811)
Karol Kontny [Fri, 13 Dec 2024 00:04:19 +0000 (01:04 +0100)]
ggml : Fix compilation issues on ARM platform when building without fp16 (#10811)

6 months agocommon : improve -ctv -ctk CLI arguments (#10806)
Xuan Son Nguyen [Thu, 12 Dec 2024 21:53:05 +0000 (22:53 +0100)]
common : improve -ctv -ctk CLI arguments (#10806)

* common : improve ctv ctk cli argument

* regenerate docs

* even better approach

* use std::vector

6 months agocontrib : add ngxson as codeowner (#10804)
Xuan Son Nguyen [Thu, 12 Dec 2024 19:52:28 +0000 (20:52 +0100)]
contrib : add ngxson as codeowner (#10804)

6 months agoCUDA: faster non-contiguous concat (#10760)
a3sh [Thu, 12 Dec 2024 18:09:50 +0000 (02:09 +0800)]
CUDA: faster non-contiguous concat (#10760)

* faster uncontiguous concat

* Use a lambda to avoid code duplication

Co-authored-by: Diego Devesa <redacted>
* Update ggml/src/ggml-cuda/concat.cu

* add constexpr  and static assert

---------

Co-authored-by: Diego Devesa <redacted>
6 months agoremove CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS (#10797)
Diego Devesa [Thu, 12 Dec 2024 18:02:49 +0000 (19:02 +0100)]
remove CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS (#10797)

other windows build fixes

6 months agoVulkan: Use improved q4_k and q5_k dequant code in dequant shaders (#10798)
0cc4m [Thu, 12 Dec 2024 17:36:00 +0000 (18:36 +0100)]
Vulkan: Use improved q4_k and q5_k dequant code in dequant shaders (#10798)

6 months agoVulkan: Add VK_EXT_subgroup_size_control support to ensure full subgroups for coopmat...
0cc4m [Thu, 12 Dec 2024 17:35:37 +0000 (18:35 +0100)]
Vulkan: Add VK_EXT_subgroup_size_control support to ensure full subgroups for coopmats (#10721)

* Vulkan: Add VK_EXT_subgroup_size_control support to ensure full subgroups for coopmats

* Fix subgroup size control extension support check

Add accf32 and accf16 checks for coopmats

* Also disable coopmats on amdvlk

6 months agocommon : add missing env var for speculative (#10801)
Xuan Son Nguyen [Thu, 12 Dec 2024 15:57:32 +0000 (16:57 +0100)]
common : add missing env var for speculative (#10801)

6 months agodocs: update server streaming mode documentation (#9519)
CentricStorm [Wed, 11 Dec 2024 22:40:40 +0000 (22:40 +0000)]
docs: update server streaming mode documentation (#9519)

Provide more documentation for streaming mode.

6 months agoMerge pull request #10788 from ggerganov/gg/gguf-py-0.11.0
Georgi Gerganov [Wed, 11 Dec 2024 21:14:46 +0000 (23:14 +0200)]
Merge pull request #10788 from ggerganov/gg/gguf-py-0.11.0

6 months agogguf-py : bump version to 0.11.0
Georgi Gerganov [Wed, 11 Dec 2024 21:13:31 +0000 (23:13 +0200)]
gguf-py : bump version to 0.11.0

6 months agoserver : (UI) add tok/s, get rid of completion.js (#10786)
Xuan Son Nguyen [Wed, 11 Dec 2024 19:52:14 +0000 (20:52 +0100)]
server : (UI) add tok/s, get rid of completion.js (#10786)

* get rid of completion.js

* extract chat bubble to a component

* add tok/s info

* sync

* fix BASE_URL

* only extract timings when it's enabled

* fix auto scroll

6 months agoUpdate README.md (#10772)
qingy1337 [Wed, 11 Dec 2024 15:16:32 +0000 (07:16 -0800)]
Update README.md (#10772)

6 months agoci : pin nodejs to 22.11.0 (#10779)
Xuan Son Nguyen [Wed, 11 Dec 2024 13:59:41 +0000 (14:59 +0100)]
ci : pin nodejs to 22.11.0 (#10779)

6 months agobug-fix: snprintf prints NULL in place of the last character (#10419)
kallewoof [Wed, 11 Dec 2024 13:48:04 +0000 (22:48 +0900)]
bug-fix: snprintf prints NULL in place of the last character (#10419)

* bug-fix: snprintf prints NULL in place of the last character

We need to give snprintf enough space to print the last character and the null character, thus we allocate one extra byte and then ignore it when converting to std::string.

* add comment about extra null-term byte requirement

6 months agodocs: fix server documentation formatting (#10776)
CentricStorm [Wed, 11 Dec 2024 10:47:43 +0000 (10:47 +0000)]
docs: fix server documentation formatting (#10776)

6 months agoggml: load all backends from a user-provided search path (#10699)
Gilad S. [Wed, 11 Dec 2024 00:47:21 +0000 (02:47 +0200)]
ggml: load all backends from a user-provided search path (#10699)

* feat: load all backends from a user-provided search path

* fix: Windows search path

* refactor: rename `ggml_backend_load_all_in_search_path` to `ggml_backend_load_all_from_path`

* refactor: rename `search_path` to `dir_path`

* fix: change `NULL` to `nullptr`

Co-authored-by: Diego Devesa <redacted>
* fix: change `NULL` to `nullptr`

---------

Co-authored-by: Diego Devesa <redacted>
6 months agovulkan: request round-to-even for fp16 in im2col/rope_head (#10767)
Jeff Bolz [Tue, 10 Dec 2024 20:23:17 +0000 (14:23 -0600)]
vulkan: request round-to-even for fp16 in im2col/rope_head (#10767)

Vulkan doesn't mandate a specific rounding mode, but the shader_float_controls
feature allows rounding mode to be requested if the implementation supports it.

6 months agovulkan: dynamic subgroup size for the remaining k quants (#10745)
Eve [Tue, 10 Dec 2024 19:33:23 +0000 (19:33 +0000)]
vulkan: dynamic subgroup size for the remaining k quants (#10745)

* q5_k

q4_k

q3_k

q2_k

q6_k multi row example

* revert as multi row isnt faster for k quants

6 months agoimatrix : Add imatrix to --no-context-shift (#10766)
Bartowski [Tue, 10 Dec 2024 17:23:50 +0000 (12:23 -0500)]
imatrix : Add imatrix to --no-context-shift (#10766)

This allows for setting the --no-context-shift value in llama-imatrix which is required for models like DeepSeek

6 months agoCUDA: rename macros to avoid conflicts with WinAPI (#10736)
Andreas Kieslinger [Tue, 10 Dec 2024 17:23:24 +0000 (18:23 +0100)]
CUDA: rename macros to avoid conflicts with WinAPI (#10736)

* Renames NVIDIA GPU-architecture flags to avoid name clashes with WinAPI. (e.g. CC_PASCAL, GPU architecture or WinAPI pascal compiler flag?)

* Reverts erroneous rename in SYCL-code.

* Renames GGML_CUDA_MIN_CC_DP4A to GGML_CUDA_CC_DP4A.

* Renames the rest of the compute capability macros for consistency.

6 months agoserver : add flag to disable the web-ui (#10762) (#10751)
Yüg [Tue, 10 Dec 2024 17:22:34 +0000 (17:22 +0000)]
server : add flag to disable the web-ui (#10762) (#10751)

Co-authored-by: eugenio.segala <redacted>
6 months agovulkan: disable spirv-opt for coopmat shaders (#10763)
Jeff Bolz [Tue, 10 Dec 2024 17:22:20 +0000 (11:22 -0600)]
vulkan: disable spirv-opt for coopmat shaders (#10763)

There are some bugs in the 1.3.296 SDK, so disable this. It isn't strictly
necessary anyway.

Add missing dependency on vulkan-shaders-gen, so shaders get recompiled when it
changes.

Fix coopmat support reporting when glslc doesn't support NV_coopmat2.

6 months agoCUDA: fix shared memory access condition for mmv (#10740)
Johannes Gäßler [Mon, 9 Dec 2024 19:07:12 +0000 (20:07 +0100)]
CUDA: fix shared memory access condition for mmv (#10740)

6 months agoChanges to CMakePresets.json to add ninja clang target on windows (#10668)
Srihari-mcw [Mon, 9 Dec 2024 17:40:19 +0000 (23:10 +0530)]
Changes to CMakePresets.json to add ninja clang target on windows (#10668)

* Update cmakepreset.json to use clang with ninja by default

* Update cmakepreset.json to add clang and ninja based configs

* Updates to build.md file

* Make updates to rename preset targets

* Update with .cmake file

* Remove additional whitespaces

* Add .cmake file for x64-windows-llvm

* Update docs/build.md

* Update docs/build.md

---------

Co-authored-by: Max Krasnyansky <redacted>
6 months agovulkan: fix compile warnings (#10731)
Jeff Bolz [Mon, 9 Dec 2024 07:24:01 +0000 (01:24 -0600)]
vulkan: fix compile warnings (#10731)

6 months agocmake : simplify msvc charsets (#10672)
Borislav Stanimirov [Mon, 9 Dec 2024 07:15:13 +0000 (09:15 +0200)]
cmake : simplify msvc charsets (#10672)

6 months agoserver : fix format_infill (#10724)
Xuan Son Nguyen [Sun, 8 Dec 2024 22:04:29 +0000 (23:04 +0100)]
server : fix format_infill (#10724)

* server : fix format_infill

* fix

* rename

* update test

* use another model

* update test

* update test

* test_invalid_input_extra_req

6 months agoserver : bring back info of final chunk in stream mode (#10722)
Xuan Son Nguyen [Sun, 8 Dec 2024 19:38:51 +0000 (20:38 +0100)]
server : bring back info of final chunk in stream mode (#10722)

* server : bring back into to final chunk in stream mode

* clarify a bit

* traling space

6 months agoVulkan: fix NaN in tanh.comp with AMD proprietary driver on Windows (#10723)
stduhpf [Sun, 8 Dec 2024 18:19:19 +0000 (19:19 +0100)]
Vulkan: fix NaN in tanh.comp with AMD proprietary driver on Windows (#10723)

* Vulkan: fix NaN in tanh.comp

* Faster NaN-free tanh

6 months agollama : use cmake for swift build (#10525)
Diego Devesa [Sun, 8 Dec 2024 11:14:54 +0000 (12:14 +0100)]
llama : use cmake for swift build (#10525)

* llama : use cmake for swift build

* swift : <> -> ""

* ci : remove make

* ci : disable ios build

* Revert "swift : <> -> """

This reverts commit d39ffd9556482b77d4ea5b118b453fc1c097a31d.

* ci : try fix ios build

* ci : cont

* ci : cont

---------

Co-authored-by: Georgi Gerganov <redacted>
6 months agovulkan: compile a test shader in cmake to check for coopmat2 support (#10713)
Jeff Bolz [Sun, 8 Dec 2024 08:05:55 +0000 (02:05 -0600)]
vulkan: compile a test shader in cmake to check for coopmat2 support (#10713)

6 months agollama : add 128k yarn context for Qwen (#10698)
Robert Collins [Sat, 7 Dec 2024 21:12:27 +0000 (16:12 -0500)]
llama : add 128k yarn context for Qwen (#10698)

* add 128k yarn context for Qwen

* added property for model tensors

* removing useless line

6 months agoserver : (refactor) no more json in server_task input (#10691)
Xuan Son Nguyen [Sat, 7 Dec 2024 19:21:09 +0000 (20:21 +0100)]
server : (refactor) no more json in server_task input (#10691)

* server : (refactor) no more json in server_task input

* add test for slots endpoint

* add tests for /props and /slots

* remove task inf_type

* fix CI by adding safe_json_to_str

* add "model_path" to /props

* update readme

6 months agoggml : disable iq4_nl interleave size 8 (#10709)
Georgi Gerganov [Sat, 7 Dec 2024 16:38:15 +0000 (18:38 +0200)]
ggml : disable iq4_nl interleave size 8 (#10709)

ggml-ci

6 months agoserver : various fixes (#10704)
Georgi Gerganov [Sat, 7 Dec 2024 16:02:05 +0000 (18:02 +0200)]
server : various fixes (#10704)

* server : various fixes

ggml-ci

* server : show curent seed in slot_params

ggml-ci

* fix /slots endpoint

* Update examples/server/server.cpp

Co-authored-by: Georgi Gerganov <redacted>
* server : reflect endpoint response changes in the readme

ggml-ci

---------

Co-authored-by: Xuan Son Nguyen <redacted>
Co-authored-by: Xuan Son Nguyen <redacted>
6 months agoggml : refactor online repacking (#10446)
Djip007 [Sat, 7 Dec 2024 12:37:50 +0000 (13:37 +0100)]
ggml : refactor online repacking (#10446)

* rename ggml-cpu-aarch64.c to .cpp

* reformat extra cpu backend.

- clean Q4_0_N_M and IQ4_0_N_M
  - remove from "file" tensor type
  - allow only with dynamic repack

- extract cpu extra bufts and convert to C++
  - hbm
  - "aarch64"

- more generic use of extra buffer
  - generalise extra_supports_op
  - new API for "cpu-accel":
     - amx
     - aarch64

* clang-format

* Clean Q4_0_N_M ref

Enable restrict on C++

* add op GGML_OP_MUL_MAT_ID for Q4_0_N_M with runtime repack

* added/corrected control on tensor size for Q4 repacking.

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

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

Co-authored-by: Georgi Gerganov <redacted>
* add debug logs on repacks.

---------

Co-authored-by: Georgi Gerganov <redacted>
6 months agoserver : fix free of spec context and batch (#10651)
Georgi Gerganov [Sat, 7 Dec 2024 09:52:44 +0000 (11:52 +0200)]
server : fix free of spec context and batch (#10651)

ggml-ci

6 months agoVulkan: VK_KHR_cooperative_matrix support to speed up prompt processing (#10597)
0cc4m [Sat, 7 Dec 2024 09:24:15 +0000 (10:24 +0100)]
Vulkan: VK_KHR_cooperative_matrix support to speed up prompt processing (#10597)

* Vulkan: Implement VK_KHR_cooperative_matrix support in the matrix matrix multiplication shader

* Improve performance with better q4_k and q5_k dequant and store unrolling

* Add Vulkan MUL_MAT and MUL_MAT_ID accumulator precision selection

* Rework mulmat shader selection and compilation logic, avoid compiling shaders that won't get used by device

* Vulkan: Implement accumulator switch for specific mul mat mat shaders

* Vulkan: Unroll more loops for more mul mat mat performance

* Vulkan: Add VK_AMD_shader_core_properties2 support to read Compute Unit count for split_k logic

* Disable coopmat support on AMD proprietary driver

* Remove redundant checks

* Add environment variable GGML_VK_DISABLE_COOPMAT to disable VK_KHR_cooperative_matrix support

* Fix rebase typo

* Fix coopmat2 MUL_MAT_ID pipeline selection

6 months agometal : Extend how Llama.cpp locates metal resources (#10676)
Robert Ormandi [Sat, 7 Dec 2024 07:55:01 +0000 (01:55 -0600)]
metal : Extend how Llama.cpp locates metal resources (#10676)

* metal : Extend how Llama.cpp locates metal resources (#10675)

  * It searches the resource file in the directory where the current
    binary is located as well.
  * Resolves symbolic links.

Rationale:

When we plug this dependency into a Bazel build and run it in the
context of Bazel (e.g. testing):

  * the execution directory is often very different from where the files
    are located and no direct control over this (Bazel sandboxing),
  * the Bazel sandbox often use symbolic links to make files available.

With this patch, we can have the resource file added to the target,
can build and run tests in the context of Bazel.

* Update ggml/src/ggml-metal/ggml-metal.m

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

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

Co-authored-by: Georgi Gerganov <redacted>
6 months agoconvert : add support for Roberta embeddings (#10695)
Sukriti Sharma [Sat, 7 Dec 2024 07:02:14 +0000 (00:02 -0700)]
convert : add support for Roberta embeddings (#10695)

6 months agoconvert : add custom attention mapping
Georgi Gerganov [Fri, 6 Dec 2024 19:33:15 +0000 (21:33 +0200)]
convert : add custom attention mapping

6 months agocommon : bring back --no-warmup to server (#10686)
Xuan Son Nguyen [Fri, 6 Dec 2024 12:29:05 +0000 (13:29 +0100)]
common : bring back --no-warmup to server (#10686)

6 months agoserver : (refactoring) do not rely on JSON internally (#10643)
Xuan Son Nguyen [Fri, 6 Dec 2024 10:14:32 +0000 (11:14 +0100)]
server : (refactoring) do not rely on JSON internally (#10643)

* server : (refactoring) reduce usage of json internally

* move all response types to struct

* wip [no ci]

* many fixes

* add virtual function

* fix index

* minor style fix

* add std::move

* refactor handle_completions_generic

* add virtual functions

* remove server.hpp

* clarify server_sent_event RFC specs

* apply review comments

* fix model_alias and completion_probabilities

* small clean up

* remove virtual for to_json_oai_compat()

* naming oai_compat --> oaicompat

* fix unwanted recursive call

* update docs

6 months agofix(server) : not show alert when DONE is received (#10674)
Plamen Minev [Thu, 5 Dec 2024 21:36:41 +0000 (23:36 +0200)]
fix(server) : not show alert when DONE is received (#10674)

6 months agovulkan: Add VK_NV_cooperative_matrix2 support for mul_mat and flash attention (#10206)
Jeff Bolz [Thu, 5 Dec 2024 19:15:05 +0000 (13:15 -0600)]
vulkan: Add VK_NV_cooperative_matrix2 support for mul_mat and flash attention (#10206)

6 months agollama : add Minerva 7B model support (#10673)
Riccardo Orlando [Thu, 5 Dec 2024 18:30:59 +0000 (19:30 +0100)]
llama : add Minerva 7B model support (#10673)

* Support for Minerva 7B

* Update convert_hf_to_gguf_update.py

6 months agosync : ggml
Georgi Gerganov [Thu, 5 Dec 2024 11:27:42 +0000 (13:27 +0200)]
sync : ggml

6 months agoggml: add `GGML_SET` Metal kernel + i32 CPU kernel (ggml/1037)
PAB [Wed, 4 Dec 2024 08:19:30 +0000 (09:19 +0100)]
ggml: add `GGML_SET` Metal kernel + i32 CPU kernel (ggml/1037)

* implemented cpu kernel

* add i32 test cases in test-backend-ops

* typedef `ggml_metal_kargs_set`

* implemented `kernel_set`

* memcpy

6 months agoggml : add `GGML_PAD_REFLECT_1D` operation (ggml/1034)
PAB [Tue, 3 Dec 2024 19:20:04 +0000 (20:20 +0100)]
ggml : add `GGML_PAD_REFLECT_1D` operation (ggml/1034)

* ggml_pad_reflect_1d defined in header

* implemented on CPU

* called the forward pass

* impl Metal kernel

* added Metal kernel

* added OP_PAD_REFLECT_1D in test-backend-ops.cpp

* add test-pad-reflect-1d test case

* test case support multiple backend

6 months agopy : update outdated copy-paste instructions [no ci] (#10667)
Daniel Bevenius [Thu, 5 Dec 2024 07:47:55 +0000 (08:47 +0100)]
py : update outdated copy-paste instructions [no ci] (#10667)

This commit updates the copy-paste instruction in
convert_hf_to_gguf_update.py to reflect that convert_hf_to_gguf.py
will have already been updated with the new get_vocab_base_pre()
function when this script completes.

6 months agoUpdate deprecation-warning.cpp (#10619)
aryantandon01 [Wed, 4 Dec 2024 22:19:20 +0000 (03:49 +0530)]
Update deprecation-warning.cpp (#10619)

Fixed Path Separator Handling for Cross-Platform Support (Windows File Systems)

6 months agoserver : fix speculative decoding with context shift (#10641)
Georgi Gerganov [Wed, 4 Dec 2024 20:38:20 +0000 (22:38 +0200)]
server : fix speculative decoding with context shift (#10641)

* server : fix speculative decoding with context shift

ggml-ci

* server : take into account speculative limits

ggml-ci

* server : add tests

6 months agoggml : add predefined list of CPU backend variants to build (#10626)
Diego Devesa [Wed, 4 Dec 2024 13:45:40 +0000 (14:45 +0100)]
ggml : add predefined list of CPU backend variants to build (#10626)

* ggml : add predefined list of CPU backend variants to build

* update CPU dockerfiles

6 months agoggml-cpu : fix HWCAP2_I8MM value (#10646)
Diego Devesa [Wed, 4 Dec 2024 13:40:44 +0000 (14:40 +0100)]
ggml-cpu : fix HWCAP2_I8MM value (#10646)

6 months agoFix HF repo commit to clone lora test models (#10649)
ltoniazzi [Wed, 4 Dec 2024 09:45:48 +0000 (09:45 +0000)]
Fix HF repo commit to clone lora test models (#10649)

6 months agollama: Support MiniCPM-1B (with & w/o longrope) (#10559)
JFLFY2255 [Wed, 4 Dec 2024 09:42:50 +0000 (17:42 +0800)]
llama: Support MiniCPM-1B (with & w/o longrope) (#10559)

6 months agovulkan: Implement "fast divide" (mul+shift) for unary ops like copy (#10642)
Jeff Bolz [Wed, 4 Dec 2024 07:28:59 +0000 (01:28 -0600)]
vulkan: Implement "fast divide" (mul+shift) for unary ops like copy (#10642)

6 months agoSYCL : Move to compile time oneMKL interface backend selection for NVIDIA backend...
Nicolò Scipione [Wed, 4 Dec 2024 01:29:20 +0000 (02:29 +0100)]
SYCL : Move to compile time oneMKL interface backend selection for NVIDIA backend (#10584)

* [SYCL] Move to Compile Time backend selection on oneMKL Interface for NVIDIA backend

Move to compile time selection to backend to avoid latency at run time.
Add it to all mkl gemm calls and only for NVIDIA backend.

Signed-off-by: nscipione <redacted>
* Formatting

* Address PR comments to increase readibility

---------

Signed-off-by: nscipione <redacted>
6 months agofix typo of README.md (#10605)
Wang Ran (汪然) [Wed, 4 Dec 2024 01:22:50 +0000 (09:22 +0800)]
fix typo of README.md (#10605)

6 months agoAvoid using __fp16 on ARM with old nvcc (#10616)
Frankie Robertson [Wed, 4 Dec 2024 00:41:37 +0000 (02:41 +0200)]
Avoid using __fp16 on ARM with old nvcc (#10616)

6 months agoAdd docs for creating a static build (#10268) (#10630)
Benson Wong [Wed, 4 Dec 2024 00:40:36 +0000 (16:40 -0800)]
Add docs for creating a static build (#10268) (#10630)

* Add notes for a static build

* Update docs/build.md

---------

Co-authored-by: Diego Devesa <redacted>
6 months agoclip : add sycl support (#10574)
piDack [Wed, 4 Dec 2024 00:26:37 +0000 (08:26 +0800)]
clip : add sycl support (#10574)

Co-authored-by: piDack <redacted>
6 months agovulkan: optimize and reenable split_k (#10637)
Jeff Bolz [Tue, 3 Dec 2024 19:29:54 +0000 (13:29 -0600)]
vulkan: optimize and reenable split_k (#10637)

Use vector loads when possible in mul_mat_split_k_reduce. Use split_k
when there aren't enough workgroups to fill the shaders.

6 months agoserver : (web ui) Various improvements, now use vite as bundler (#10599)
Xuan Son Nguyen [Tue, 3 Dec 2024 18:38:44 +0000 (19:38 +0100)]
server : (web ui) Various improvements, now use vite as bundler (#10599)

* hide buttons in dropdown menu

* use npm as deps manager and vite as bundler

* fix build

* fix build (2)

* fix responsive on mobile

* fix more problems on mobile

* sync build

* (test) add CI step for verifying build

* fix ci

* force rebuild .hpp files

* cmake: clean up generated files pre build

6 months agoscripts : remove amx sync
Georgi Gerganov [Tue, 3 Dec 2024 17:42:30 +0000 (19:42 +0200)]
scripts : remove amx sync

ggml-ci

6 months agosync : ggml
Georgi Gerganov [Tue, 3 Dec 2024 17:40:25 +0000 (19:40 +0200)]
sync : ggml

6 months agoCUDA: remove unnecessary warp reduce in FA (ggml/1032)
mahorozte [Tue, 3 Dec 2024 13:11:43 +0000 (21:11 +0800)]
CUDA: remove unnecessary warp reduce in FA (ggml/1032)

* kqmax_new_j in every thread within warp is same after operate at line 199,this reduce can be omit

* same problem in vec32

---------

Co-authored-by: ZhaoXiaoYu <redacted>
6 months agofeat: add `GGML_UNARY_OP_ARGMAX` Metal kernel (ggml/1019)
PAB [Mon, 2 Dec 2024 18:27:24 +0000 (19:27 +0100)]
feat: add `GGML_UNARY_OP_ARGMAX` Metal kernel (ggml/1019)

* implemented argmax kernel

* tpig -> tgpig

* change to strides

* contiguous assertions

* kernel working and tested

* argmax simd parallel implementation

* added 2 new tests for argmax in test-backend-ops

* cosmit

* added 3 tests cases for perf eval

* add test_argmax in make_test_cases_perf

* Update test-backend-ops.cpp

Co-authored-by: Diego Devesa <redacted>
---------

Co-authored-by: Diego Devesa <redacted>
6 months agometal : add `GGML_OP_CONV_TRANSPOSE_1D` kernels (ggml/1026)
PAB [Thu, 28 Nov 2024 08:25:06 +0000 (09:25 +0100)]
metal : add `GGML_OP_CONV_TRANSPOSE_1D` kernels (ggml/1026)

* wip

* wip implementation f32

* kernel conv transpose 1d f32 working

* initial commit

6 months agollama : add missing LLAMA_API for llama_chat_builtin_templates (#10636)
Xuan Son Nguyen [Tue, 3 Dec 2024 11:54:30 +0000 (12:54 +0100)]
llama : add missing LLAMA_API for llama_chat_builtin_templates (#10636)

6 months agoreadme : add option, update default value, fix formatting (#10271)
Nikolaos Pothitos [Tue, 3 Dec 2024 10:50:08 +0000 (12:50 +0200)]
readme : add option, update default value, fix formatting (#10271)

* readme : document --no-display-prompt

* readme : update default prompt context size

* readme : remove unnecessary indentation

Indenting a line with four spaces makes Markdown treat that section as
plain text.

* readme : indent commands under bullets

* readme : indent commands in lettered list