Skip to content

Commit d5d7ec5

Browse files
Merge pull request #458 from bernardladenthin/claude/busy-archimedes-lo9uyy
Upgrade llama.cpp from b11211 to b11214
2 parents 1c23d8e + 80c08dc commit d5d7ec5

6 files changed

Lines changed: 18 additions & 10 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,12 @@ from version 5.0.0 onward. Pre-fork releases (`1.x`–`4.2.0`) were authored by
7070
without a native library or model.
7171

7272
### Changed
73+
- **llama.cpp `b11211` → `b11214`.** Three upstream commits, version-only from this project's side:
74+
a HIP flash-attention kernel choice for CDNA (#28907), a Vulkan argsort fix for Adreno (#29469), and
75+
**#29516**, which makes `common_sampler_init` *throw* `failed to parse grammar: llguidance is not
76+
enabled` instead of calling `GGML_ABORT` when a `%llguidance` grammar reaches a build without
77+
llguidance. That one matters in a JVM: these builds do not enable llguidance, so such a grammar used
78+
to abort the whole process; it now surfaces as an ordinary request error. All patches apply unchanged.
7379
- **BREAKING (runtime): the shipped SLF4J binding is now `slf4j-simple`, not `logback-classic`.**
7480
Two independent reasons, and the first is a hard failure rather than a preference:
7581

‎CLAUDE.md‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
66

77
Java bindings for [llama.cpp](https://github.com/ggerganov/llama.cpp) via JNI, providing a high-level API for LLM inference in Java. The Java layer communicates with a native C++ library through JNI.
88

9-
Current llama.cpp pinned version: **b11211**
9+
Current llama.cpp pinned version: **b11214**
1010

1111
## Upgrading CUDA Version
1212

@@ -538,7 +538,7 @@ needs no extra step here, `build-webui` re-reads the tag and rebuilds the matchi
538538
ships no UI):
539539
```bash
540540
# needs node/npm + network for the asset build; the embed step is plain cmake -P
541-
git clone --depth 1 --branch b11211 https://github.com/ggml-org/llama.cpp /tmp/lc
541+
git clone --depth 1 --branch b11214 https://github.com/ggml-org/llama.cpp /tmp/lc
542542
( cd /tmp/lc/tools/ui && npm ci && npm run build )
543543
mkdir -p webui-generated /tmp/ui-gen
544544
cmake -DUI_SOURCE_DIR=/tmp/lc/tools/ui -DUI_BINARY_DIR=/tmp/ui-gen \
@@ -578,7 +578,7 @@ cache lives in **Depot Cache** over sccache's **WebDAV** backend:
578578
- `SCCACHE_WEBDAV_TOKEN: ${{ secrets.DEPOT_TOKEN }}` — a Depot **organization** token, stored
579579
as the repo secret **`DEPOT_TOKEN`**.
580580

581-
Because `sccache` is **content-addressed** and llama.cpp is pinned (`GIT_TAG b11211`), the
581+
Because `sccache` is **content-addressed** and llama.cpp is pinned (`GIT_TAG b11214`), the
582582
~280 upstream object files are byte-identical every run, so a warm cache recompiles only the
583583
*changed* files. Depot's cache is **shared across all branches** (unlike GitHub's
584584
per-branch `actions/cache`), so every branch builds incrementally; a `b<nnnn>` version bump
@@ -1683,7 +1683,7 @@ ctest --test-dir build --output-on-failure -R "ResultsToJson"
16831683

16841684
#### Upstream source location (in CMake build tree)
16851685

1686-
llama.cpp is fetched via CMake FetchContent, pinned to `GIT_TAG b11211`.
1686+
llama.cpp is fetched via CMake FetchContent, pinned to `GIT_TAG b11214`.
16871687

16881688
**GoogleTest** is a separate `BUILD_TESTING`-only FetchContent (`GIT_TAG v1.18.0`), used solely
16891689
by the `jllama_test` C++ unit-test binary — not by the shipped library, and not coupled to the

‎README.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
**Build:**
1212
![Java 8+](https://img.shields.io/badge/Java-8%2B-informational)
1313
![Platform](https://img.shields.io/badge/Platform-Linux%20%7C%20macOS%20%7C%20Windows%20%7C%20Android-lightgrey)
14-
[![llama.cpp b11211](https://img.shields.io/badge/llama.cpp-%23b11211-informational)](https://github.com/ggml-org/llama.cpp/releases/tag/b11211)
14+
[![llama.cpp b11214](https://img.shields.io/badge/llama.cpp-%23b11214-informational)](https://github.com/ggml-org/llama.cpp/releases/tag/b11214)
1515
[![JPMS](https://img.shields.io/badge/JPMS-modular%20JAR-25A162)](https://openjdk.org/projects/jigsaw/)
1616
![JUnit](https://img.shields.io/badge/tested%20with-JUnit6-25A162)
1717
[![JSpecify](https://img.shields.io/badge/JSpecify-1.0.0%20%40NullMarked-25A162)](https://jspecify.dev)

‎docs/history/llama-cpp-breaking-changes.md‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -756,3 +756,5 @@ Used during `llama.cpp` version bumps: when upgrading, scan this file from the r
756756
| b11163–b11209 | patches + upstream verification | **All eight patches apply unchanged** at every tag of the range. Patch-target file touched: `src/llama-model.cpp` (#29294, and #29151 earlier in the series — `0012`), away from the split-normalisation block. **Standing drop-checks at pristine b11209, all "still required":** `0001` (`common_params_parse_main` 0 occurrences in `common/arg.h`; the count-guarded `argv = utf8.ptrs.data()` override still at `common/arg.cpp:1282`, so [ggml-org/llama.cpp#26416](https://github.com/ggml-org/llama.cpp/issues/26416) remains open), `0002` (`params_base.load_progress_callback = load_progress_callback` still unguarded at `server-context.cpp:1095`), `0012` (bare `splits[i] /= split_sum` at `llama-model.cpp:1582`), `0014` (`common_log_set_callback` 0 occurrences in `common/log.h`); `0003`/`0006`/`0007`/`0008` absent upstream. **Verified at the target from a fresh configure** (`rm -rf build && cmake -B build -DBUILD_TESTING=ON`, the real `FetchContent` path): stamp head `187664b53` with **eight** SHA-256 lines, `verify-patches-applied.sh` green (8 applied, tree dirty), Release build clean with **0 warnings** — which is what proves the `0007` refresh of the b11103–b11104 step, since only a compile can — `ctest` **559/559**, `nm -D` 40 `Java_*` exports, and `mvn clean verify` **1774 run, 0 failures, 0 errors** (272 skipped, the model-gated classes; no GGUF in this sandbox) with `NativeLibraryLoadSmokeTest` **4/4, 0 skipped** (`nativeBuildInfoMatchesPinnedVersionConstant` confirms `b11209` against the linked `build-info`), `LlamaLoggerTest` 6/6 against the real library, spotless and SpotBugs clean. Model-backed Java tests were not run (HF-blocked sandbox). The four intermediate pins were checked by patch replay and header diff, not by a build of their own. |
757757
| b11209–b11211 | Two commits, 5 files, 69 lines: **#29440** (RPC: wait on the RDMA completion channel instead of spinning, `ggml/src/ggml-rpc/transport{,-apple}.cpp`) and **#29514** (upstream CI only: `GGML_SCHED_DEBUG_REALLOC=1` for the ctest workflows). Version-only from this project's side: `GGML_RPC` is `OFF` here, so the one source change is never compiled into `jllama`. The upstream `release.yml` is untouched, so the CUDA (13.4) / ROCm (10.0.0) / OpenVINO pins derived from it are unchanged. |
758758
| b11209–b11211 | patches + upstream verification | **All eight patches apply unchanged** (fresh configure into an empty build dir; the applier's stamp lists all eight against `d7fb90e8e`). No patch-target file is in the range. |
759+
| b11211–b11214 | Three commits, 5 files, 29 lines: **#28907** (HIP: fattn-mma on CDNA for `dkq > 256` at large batch, `ggml-cuda/fattn*.cu[h]` + `scripts/hip/gcn-cdna-vgpr-check.py`), **#29469** (Vulkan argsort kernel selection for Adreno) and **#29516** (`common/sampling.cpp`: an llguidance grammar without `LLAMA_LLGUIDANCE` now throws `std::runtime_error` instead of `GGML_ABORT` — a process abort turned into a catchable error, which for a JNI host is the difference between a failed request and a dead JVM). Version-only from this project's side: no API change, no workflow/ROCm/CUDA-component change upstream in the range. |
760+
| b11211–b11214 | patches + upstream verification | **All eight patches apply unchanged** (fresh configure into an empty build dir). No patch-target file is in the range. |

‎llama/CMakeLists.txt‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ set(LLAMA_BUILD_APP OFF CACHE BOOL "" FORCE)
173173
FetchContent_Declare(
174174
llama.cpp
175175
GIT_REPOSITORY https://github.com/ggerganov/llama.cpp.git
176-
GIT_TAG b11211
176+
GIT_TAG b11214
177177
PATCH_COMMAND ${CMAKE_COMMAND}
178178
-DPATCH_DIR=${CMAKE_CURRENT_SOURCE_DIR}/patches
179179
-DLLAMA_SRC=<SOURCE_DIR>

‎llama/src/main/java/net/ladenthin/llama/value/LlamaCppVersion.java‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,28 +10,28 @@
1010
* library was compiled against, exposed as a compile-time constant so callers can render a badge or
1111
* emit a startup log line without loading the native library.
1212
*
13-
* <p>{@link #LLAMA_CPP_VERSION} is a pure-Java string ({@code "b11211"}) that mirrors the
13+
* <p>{@link #LLAMA_CPP_VERSION} is a pure-Java string ({@code "b11214"}) that mirrors the
1414
* {@code GIT_TAG} in {@code llama/CMakeLists.txt}. It is available even when {@code libjllama} is
1515
* absent (pure-Java checkout, before {@code System.load}), which is what makes it suitable for a
1616
* lightweight version badge in Android or other UIs.</p>
1717
*
1818
* <p>For the <em>authoritative</em> value that is baked into the native binary — the build number
19-
* plus the resolved upstream commit, e.g. {@code "b11211-<commit>"} — call
19+
* plus the resolved upstream commit, e.g. {@code "b11214-<commit>"} — call
2020
* {@link net.ladenthin.llama.LlamaModel#getLlamaCppBuildInfo()} instead; that reads llama.cpp's own
2121
* {@code build-info} through JNI and therefore cannot drift from the compiled library (but requires
2222
* the native library to be loaded).</p>
2323
*/
2424
public final class LlamaCppVersion {
2525

2626
/**
27-
* The pinned llama.cpp release tag this library was built against, e.g. {@code "b11211"}.
27+
* The pinned llama.cpp release tag this library was built against, e.g. {@code "b11214"}.
2828
*
2929
* <p>Kept in lockstep with {@code GIT_TAG} in {@code llama/CMakeLists.txt} — see the
3030
* "Upgrading/Downgrading llama.cpp Version" checklist in {@code CLAUDE.md}. This is the
3131
* compile-time pin; use {@link net.ladenthin.llama.LlamaModel#getLlamaCppBuildInfo()} for the
3232
* value actually linked into the native binary.</p>
3333
*/
34-
public static final String LLAMA_CPP_VERSION = "b11211";
34+
public static final String LLAMA_CPP_VERSION = "b11214";
3535

3636
// Constants holder — not instantiable.
3737
private LlamaCppVersion() {}

0 commit comments

Comments
 (0)