Skip to content

pr-set: drop #314 (Flint merged upstream), repin Inkling and #298 - #318

Merged
danielhanchen merged 4 commits into
masterfrom
pinset/drop-flint-repin-inkling-298
Oct 25, 2026
Merged

danielhanchen merged 4 commits into
masterfrom
pinset/drop-flint-repin-inkling-298

Conversation

@danielhanchen

@danielhanchen danielhanchen commented Oct 22, 2026 •

Copy link
Copy Markdown
Member

The prebuilt is upstream ggml-org at an aged b#### tag plus the pins in scripts/unsloth/pr-set.json, merged in order (git diff3, then additive_merge.py for pure add/add conflicts only). When upstream absorbs a pin, the pin is deleted.

On today's aged base (b11812) and the newest tag (b11819), master's pin set stops at the merge step: #314 and ggml-org#25731 are refused, and pin_contract reports 2 pins not intact.

pin upstream PR that broke it fix new SHA
#314 Flint ggml-org#30928 (Flint upstream, first in b11803) drop the pin; the flint feature check stays with owner null (removed)
ggml-org#25731 Inkling ggml-org#30910 (build_lora_mm Hadamard input) keep the upstream hunk, re-apply the pin's prec parameter d0cd5c0
ggml-org#25731 Inkling ggml-org#30928 FLINT = 62, ggml-org#23343 DOMYN_SMALL = 63 LLAMA_VOCAB_PRE_TYPE_INKLING = 64, after DOMYN_SMALL d0cd5c0
ggml-org#25731 Inkling ggml-org#30640 GGML_OP_TOP_K_MASK GGML_OP_COUNT asserts to 103, RPC_PROTO_PATCH_VERSION to 2 d0cd5c0
#243 glm5-next ggml-org#30932 (glm5 : optimize inputs, first in b11823): new_pool_idxs is now 1-D and new_pool_flat is gone "Fix merge conflicts" merge of b11823: keep upstream's 1-D input, the chunked re-pooling views it at i0*kpool elements; PR base moved to base/upstream-5c19a5a75 (+34/-12, 1 file, same as before) 30a106e
#298 DeepSeek-V4.1 (none) repin to the PR head: output LoRA, DSpark router denominator, mtmd placeholder token counts, namespaced DSML tool names be83657

The Inkling commit is a single "Fix merge conflicts" merge of b11819 (the oldest tag with DOMYN_SMALL) into the previous pin e1b89cf, and it merges cleanly with ggml-org master.

Per-tag evidence (llama_pinset.py):

CUDA (b11820, B200): full CUDA build ok, test-chat ok, test-backend-ops MUL_MAT 2582/2582, MUL_MAT_ID 1027/1027, PAD 37/37, GET_ROWS 349/349.
Inkling numeric gate (llama_pinset.py gate, Inkling-Small UD-IQ1_S, wikitext-2 -c 512, 20 chunks, B200): old pin e1b89cf vs new pin d0cd5c0 vs d0cd5c0 merged with ggml-org master: PPL 39.199589 on all three, mean KLD 0.000000, same top-1 100%. d0cd5c0 is now the head of ggml-org#25731 (fast-forward from e1b89cf).

Not covered: ROCm / Vulkan / macOS / Windows / ARM legs, tags after b11827, the glm5-next chunked path above 16384 new pools (no test reaches it; the view offset is the same byte offset as before).

The qwen4exp DFlash fix (#307) is not pinned: upstream ggml-org#30927 makes the same change and reaches the base with the next tag.

Repin Inkling (ggml-org#25731) and #266 for base b11838

The nightly prebuilt (run 40019033180, base b11838) stopped in Resolve tag: ggml-org#25731 no longer merges onto the aged tag. The prebuilt is the aged upstream b#### tag plus the pins in scripts/unsloth/pr-set.json, merged in order (git diff3, then additive_merge.py for pure add/add only). With the pins from #318, two of them are refused on b11838 and b11840. Each is fixed in its own branch by merging b11838 into that branch (git merge --no-ff b11838, commit Fix merge conflicts). Upstream lines are kept verbatim and only the pin's own change is re-applied. Nothing is rebased.

pin upstream PR that broke it fix new SHA
ggml-org#25731 (Inkling) ggml-org#30974 (vocab: Nemotron-3.5-Embed) took LLAMA_VOCAB_PRE_TYPE value 64, which Inkling also used. ggml-org#31036 (ci: behavior check workflow) relabelled the tests next to Inkling's tests/CMakeLists.txt additions Upstream enum kept as is, Inkling renumbered to 65. The pre type is runtime only (GGUF stores the pre string), and a duplicate 64 would be a duplicate case in llama-vocab.cpp. In CMake, upstream's labelled lines are taken and the two flash-attn test blocks are re-added in front fb9ddb92df2c4f71417172626e86d7e6bfe55a96 (was d0cd5c06d)
#266 (mmap populate) ggml-org#31036 relabelled the llama_build_and_test lines around the pin's test line Upstream lines taken, test-mmap-populate-budget line re-added after test-batch-alloc af3b2bc3201ecf75cf7fd1fbb1f76e264920809d (was 1eae0b577)

The diff of each new head against b11838 is the same as the pin's own diff against its old merge base: Inkling 70 files, +4119/-126; #266 5 files, +481.

Evidence

Window: b11838 (aged now) and b11840 (ages in at 22:46Z).

tag merge pin_contract merge_checks CPU gate CUDA build test-backend-ops MUL_MAT / MUL_MAT_ID / PAD / GET_ROWS test-chat feature_matrix
b11838 ok, 22 pins 22/22 intact clean ok ok 2582/2582, 1027/1027, 37/37, 349/349 pass 15/15 CPU and GPU
b11840 ok, 22 pins 22/22 intact clean ok ok 2582/2582, 1027/1027, 37/37, 349/349 pass 15/15 CPU and GPU

Before the repin, the same set failed on both tags: ggml-org#25731 and #266 refused, pin_contract 2 pins not intact.

Inkling numeric gate (unsloth/Inkling-Small-GGUF UD-IQ1_S, wikitext-2 -c 512 --chunks 20, reference A = d0cd5c06d):

arm commit PPL mean KLD vs A top-1 vs A
A vs A d0cd5c0 39.199589 -0.000000 100.000%
B fb9ddb9 39.199589 -0.000000 100.000%
C fb9ddb9 + ggml-org master (4213f12cd) 39.199589 -0.000000 100.000%

The new Inkling head also merges cleanly with current ggml-org master (arm C).

Not covered

b11846: #241 repinned

The prebuilt is upstream ggml-org at an aged b#### tag plus the pins in scripts/unsloth/pr-set.json, merged in order. Text merges use git diff3 and fall back to additive_merge.py only for pure add/add conflicts. b11846 (published 2026-10-24 00:01Z, ages in at 06:01Z) is the next tag the nightly can pick. With the set as it was, #241 does not merge on it.

Breaking upstream PR

Fix (in #241's own branch, no carry pin)

  • git merge --no-ff b11846 into carry/superseded-pin-optimizations (7fa42ff), commit Fix merge conflicts (f5fb11c).
  • Conflict resolution: kept upstream's ggml_cuda_graph_update_executable(cudaGraphExec_t & instance, cudaGraph_t cuda_graph) as is. That function no longer takes a graph key, so the pin has nothing to retype there. Everything else the pin does auto-merged and is unchanged: the uint64_t key and ggml_cuda_graph_get_key() hash, the uint64_t map key and cuda_graph(uint64_t) in common.cuh, the uint64_t signatures of ggml_cuda_graph_evaluate_and_capture / ggml_cuda_graph_set_enabled and their callers, and src/llama-memory-hybrid-idx.cpp.
  • I checked the pin-added lines for the old upstream shapes (graph->instance, graph->graph, update_executable(ctx, key)) and found none. Upstream's new chunk code calls cuda_ctx->cuda_graph(graph_key) with the pin's uint64_t key, so each shape still gets its own entry, and each entry now holds that shape's chunk instances.
  • Diff of the new head against its merge base with upstream (b11846, 1a24df1): common.cuh +12/-6, ggml-cuda.cu +33/-7, llama-memory-hybrid-idx.cpp +5/-2. That is the pin's own change minus the update_executable retype upstream removed. The pin's llama-mmap.cpp line was already absorbed upstream by llama : do not map foreign ranges into a backend buffer ggml-org/llama.cpp#30405 (in b11838 already, not related to this fix).

Per-tag evidence (local sim + verify)

tag merge pin_contract merge_checks
b11838 ok, 22 pins (ggml-org#25731, #70, #298 additive) all 22 pins intact clean
b11840 ok, 22 pins (same additive set) all 22 pins intact clean
b11846 ok, 22 pins (same additive set) all 22 pins intact clean

Before the fix, b11846 had #241 REFUSED on ggml/src/ggml-cuda/ggml-cuda.cu and pin_contract reported 1 pin not intact.

verify --tag b11846 --cuda on the merged tree:

  • CPU gate build (llama test-llama-archs test-backend-ops test-mtmd-impl): ok
  • feature_matrix CPU: all 15 features demonstrated (12 checks need a GPU)
  • full CUDA build: ok
  • test-chat: all tests passed
  • test-backend-ops: MUL_MAT 2582/2582, MUL_MAT_ID 1027/1027, PAD 37/37, GET_ROWS 349/349
  • feature_matrix GPU: all 15 features demonstrated on GPU. Per-feature rows are identical to the b11840 verify.

Not covered locally: ROCm, Vulkan, macOS, Windows and ARM legs (nightly only), unchecked pins, and tags newer than b11846.

Flint landed upstream as ggml-org#30928 (a37cc46, first in b11803), so the
#314 pin no longer merges: it is refused in conversion/flint.py,
conversion/base.py, convert_hf_to_gguf_update.py and src/llama-vocab.h.
Drop it and keep the flint feature check with owner null, since the
feature now arrives through the base tag.

Repin Inkling (ggml-org#25731) to d0cd5c0, a merge of b11819 (the
oldest tag with DOMYN_SMALL, and the base tonight's nightly can pick)
into e1b89cf. That resolves the build_lora_mm conflict with
ggml-org#30910 (LoRA on Hadamard-folded weights: upstream hunk kept, the
pin's prec parameter re-applied), moves LLAMA_VOCAB_PRE_TYPE_INKLING
after upstream's FLINT (62, ggml-org#30928) and DOMYN_SMALL (63,
ggml-org#23343) to 64, and bumps
the GGML_OP_COUNT asserts to 103 and RPC_PROTO_PATCH_VERSION to 2 now
that upstream's GGML_OP_TOP_K_MASK (ggml-org#30640) and the pin's
GGML_OP_FLASH_ATTN_EXT_BANDED are both present.

Repin #298 to its current head be83657, which adds the output LoRA,
DSpark router denominator, mtmd placeholder and namespaced tool-name
fixes.
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-22T17:50:25.454038Z 5015eb6 PR opened
🔒 Security Review ✅ Completed 2026-10-22T17:50:19.927263Z 5015eb6 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5015eb662f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread scripts/unsloth/pr-set.json Outdated
"prs": [
"https://github.com/ggml-org/llama.cpp/pull/24423/commits/dd7f73b19deb9e79dd441904cf0158af459cd034",
"https://github.com/ggml-org/llama.cpp/pull/25731/commits/e1b89cfa035866efdc2857318f438609584395f5",
"https://github.com/ggml-org/llama.cpp/pull/25731/commits/d0cd5c06d92bb8bc471efcaa6efdbce044128b23",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Keep the Inkling pin on the aged base

When latest resolves to a tag before b11819—the commit identifies b11812 as the current aged base—this SHA bypasses that selection: d0cd5c06d merges b11819 into the Inkling branch, while .github/workflows/unsloth-prebuilt.yml merges the entire pinned commit and its ancestry rather than applying only its patch. Builds labeled as b11812 will therefore include every unrelated upstream change through b11819 without the configured six-hour aging window; the supplied validation also covers only b11819/b11820. Wait until b11819 becomes the selected base or pin an Inkling resolution whose ancestry does not advance the base.

Useful? React with 👍 / 👎.

"https://github.com/unslothai/llama.cpp/pull/283/commits/644ca7d817b8a591c61dee2e17778b43b1ecf3eb",
"https://github.com/unslothai/llama.cpp/pull/287/commits/22fb037b1b84513e141d724bb9403ecb48925e32",
"https://github.com/unslothai/llama.cpp/pull/298/commits/d1781c3ea6ab7c75c635a8fea60d2b3f4937c645",
"https://github.com/unslothai/llama.cpp/pull/298/commits/be8365722ea432809818fa21a4ecebfac2e7d298",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Add gates for the newly pinned DeepSeek behaviors

This head adds output-LoRA, DSpark denominator, MTMD placeholder-count, and namespaced DSML behavior, but feature-checks.json still runs only the existing arch:deepseek41, GET_ROWS, and projector-registry probes. The arch probe never loads an adapter, probe_mtmd only invokes test_projector_registry, and the preflight neither builds nor runs test-chat, so incorrect LoRA/router results, placeholder counts, or tool-name parsing can still produce the unchanged 15/15 feature pass. Extend the manifest and preflight gate with probes that exercise the newly accepted behavior before widening this pin.

Useful? React with 👍 / 👎.

@danielhanchen
danielhanchen merged commit b4277ee into master Oct 25, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant