Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,21 @@
# Changelog

## v0.8.31

### Changed

- **llama.cpp submodule** — Updated from 9bebfcb4b to f708a5b2c (20 commits, tag b9846). No NIF changes were required. `include/llama.h`, `ggml/include/ggml.h`, `ggml/include/ggml-backend.h`, `common/chat.h`, `common/json-schema-to-grammar.h`, `common/sampling.h`, and `common/speculative.h` are all unchanged. The only touched header the binding compiles against is `common/common.h`, and its diff does not reach anything the binding consumes: a block of internal `COM_*` logging macros (`COM_DBG`/`COM_TRC`/`COM_INF`/`COM_WRN`/`COM_ERR`/`COM_CNT`) is added, a new `COMMON_SPECULATIVE_TYPE_DRAFT_DFLASH` value is appended to the `common_speculative_type` enum (the DFlash speculative-decoding work below), and `common_params_speculative::need_n_rs_seq()` is extended to also reserve a recurrent-state seq for that new DFlash draft type. The binding only constructs `common_params_speculative` for its MTP path (setting `types` and `draft.*`) and otherwise calls `common_chat_templates_*`, `common_context_can_seq_rm`, `common_batch_add`, and `json_schema_to_grammar` — so the new enum value and the internal `need_n_rs_seq` logic are inert for it. The full test suite passes (158 tests + 4 skipped, with the generation paths run against a Qwen3.5-0.8B model and the embedding paths against a Qwen3-Embedding-0.6B model), all 7 end-to-end smoke tests pass (generation, streaming, chat templates, JSON-schema grammar, raw GBNF, and embeddings), formatting is clean, and Dialyzer reports 0 errors.
- **model**: add DeepSeek V4 (#24162); implement the MiniCPM5 chat parser (#24889).
- **spec/dflash**: add DFlash speculative decoding (#22105); refactor DFlash draft-model conversion (#25110).
- **CUDA/HIP**: add a `cudaMemcpy2DAsync` fast path to `ggml_cuda_cpy` (#25057); use hipBLAS for dense prefill on gfx900 while keeping MMQ for MoE (#24588).
- **vulkan**: roll the bk loop in matmul for Asahi Linux (#24663); use flops instead of weight-tensor size for the submission heuristic (#25005).
- **opencl**: flash-attention improvement (#25069).
- **ggml-webgpu**: add NVFP4 support (#25143).
- **sched**: revert "reintroduce less synchronizations during split compute" (#25138, reverting #20793 which had landed in v0.8.30).
- **chat/jinja**: add a `--reasoning-preserve` flag (#25105); add `jinja --dump-prog` for debugging (#25086).
- **common/server/cli**: dedup preset and cached model entries in `/v1/models` (#25131); remove the unused regex-partial helper (#25118); allow `--offline` in `llama download` (#25091); reduce logs (v2) (#25078).
- **ui/tools**: restore Tailwind scanning in ignored worktrees (#24879); fix stop and reasoning skip in single-model mode (#25084); revert the hover-gated interactive-elements accessibility change (#25098, reverting #24727).

## v0.8.30

### Changed
Expand Down
2 changes: 1 addition & 1 deletion mix.exs
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ end
defmodule LlamaCppEx.MixProject do
use Mix.Project

@version "0.8.30"
@version "0.8.31"
@source_url "https://github.com/nyo16/llama_cpp_ex"

def project do
Expand Down
2 changes: 1 addition & 1 deletion vendor/llama.cpp
Submodule llama.cpp updated 89 files
+0 −2 common/CMakeLists.txt
+16 −2 common/arg.cpp
+155 −0 common/chat.cpp
+47 −47 common/common.cpp
+9 −1 common/common.h
+1 −1 common/fit.cpp
+44 −23 common/jinja/caps.cpp
+5 −1 common/jinja/caps.h
+46 −0 common/jinja/runtime.cpp
+127 −0 common/jinja/runtime.h
+44 −0 common/jinja/value.cpp
+29 −4 common/preset.cpp
+10 −10 common/reasoning-budget.cpp
+0 −204 common/regex-partial.cpp
+0 −56 common/regex-partial.h
+371 −65 common/speculative.cpp
+2 −0 conversion/__init__.py
+14 −1 conversion/base.py
+308 −1 conversion/deepseek.py
+3 −3 conversion/llama.py
+48 −0 conversion/qwen.py
+28 −1 docs/speculative.md
+3 −7 ggml/src/ggml-backend.cpp
+45 −0 ggml/src/ggml-cuda/cpy.cu
+4 −20 ggml/src/ggml-cuda/ggml-cuda.cu
+7 −0 ggml/src/ggml-cuda/mmq.cu
+3 −0 ggml/src/ggml-opencl/CMakeLists.txt
+91 −0 ggml/src/ggml-opencl/fa_tune.h
+1,789 −254 ggml/src/ggml-opencl/ggml-opencl.cpp
+152 −0 ggml/src/ggml-opencl/kernels/cvt.cl
+75 −40 ggml/src/ggml-opencl/kernels/flash_attn_f16.cl
+73 −38 ggml/src/ggml-opencl/kernels/flash_attn_f32.cl
+684 −81 ggml/src/ggml-opencl/kernels/flash_attn_f32_f16.cl
+1,041 −0 ggml/src/ggml-opencl/kernels/flash_attn_f32_q4_0.cl
+1,049 −0 ggml/src/ggml-opencl/kernels/flash_attn_f32_q8_0.cl
+156 −0 ggml/src/ggml-opencl/kernels/flash_attn_pre_f16.cl
+500 −0 ggml/src/ggml-opencl/kernels/set_rows.cl
+4 −0 ggml/src/ggml-openvino/ggml-openvino.cpp
+153 −39 ggml/src/ggml-vulkan/ggml-vulkan.cpp
+7 −0 ggml/src/ggml-webgpu/ggml-webgpu-shader-lib.hpp
+3 −0 ggml/src/ggml-webgpu/ggml-webgpu.cpp
+16 −2 ggml/src/ggml-webgpu/wgsl-shaders/common_decls.tmpl
+21 −0 ggml/src/ggml-webgpu/wgsl-shaders/get_rows.wgsl
+42 −1 ggml/src/ggml-webgpu/wgsl-shaders/mul_mat_decls.tmpl
+46 −0 ggml/src/ggml-webgpu/wgsl-shaders/mul_mat_vec_acc.tmpl
+121 −2 gguf-py/gguf/constants.py
+36 −0 gguf-py/gguf/gguf_writer.py
+5 −0 gguf-py/gguf/tensor_mapping.py
+112 −0 models/templates/deepseek-ai-DeepSeek-V4.jinja
+179 −0 models/templates/openbmb-MiniCPM5-1B.jinja
+1 −0 src/CMakeLists.txt
+57 −0 src/llama-arch.cpp
+34 −0 src/llama-arch.h
+8 −4 src/llama-context.cpp
+358 −24 src/llama-graph.cpp
+81 −2 src/llama-graph.h
+11 −0 src/llama-hparams.h
+1,807 −0 src/llama-kv-cache-dsv4.cpp
+362 −0 src/llama-kv-cache-dsv4.h
+22 −1 src/llama-kv-cache-iswa.cpp
+18 −2 src/llama-kv-cache-iswa.h
+26 −6 src/llama-kv-cache.cpp
+3 −0 src/llama-kv-cache.h
+3 −0 src/llama-model-loader.cpp
+33 −2 src/llama-model.cpp
+25 −0 src/llama-model.h
+1,186 −0 src/models/deepseek4.cpp
+276 −0 src/models/dflash.cpp
+131 −0 src/models/models.h
+0 −1 tests/CMakeLists.txt
+28 −7 tests/test-backend-ops.cpp
+17 −3 tests/test-chat-template.cpp
+78 −0 tests/test-chat.cpp
+30 −0 tests/test-jinja.cpp
+5 −2 tests/test-llama-archs.cpp
+0 −288 tests/test-regex-partial.cpp
+59 −42 tools/server/server-context.cpp
+8 −8 tools/server/server-http.cpp
+4 −1 tools/server/server-models.cpp
+1 −1 tools/server/server-schema.cpp
+12 −6 tools/server/server-stream.cpp
+6 −6 tools/server/server-task.cpp
+4 −8 tools/server/server.cpp
+1 −0 tools/ui/sources.cmake
+1 −0 tools/ui/src/.gitignore
+1 −1 ...pp/chat/ChatAttachments/ChatAttachmentsList/ChatAttachmentsListItem/ChatAttachmentsListItemMcpPrompt.svelte
+1 −1 tools/ui/src/lib/components/app/chat/ChatMessages/ChatMessage/ChatMessageUser/ChatMessageUserPending.svelte
+81 −56 tools/ui/src/lib/components/app/navigation/SidebarNavigation/SidebarNavigationConversationItem.svelte
+28 −8 tools/ui/src/lib/stores/chat.svelte.ts