Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
541 commits
Select commit Hold shift + click to select a range
b9c3939
ggml-hrx: TQ1_0 decoders never subtract past zero
Oct 2, 2026
b221e1f
ggml-hrx: scalar reference and check cases for TQ1_0, TQ2_0 and MXFP4…
Oct 2, 2026
74b8dea
Merge pull request #67 from 1bit-MONSTER/1bit/hrx-gptoss-ops
bong-water-water-bong Oct 2, 2026
f2c6298
ggml-hrx: MXFP4 check cases fill bytes 121..127 (the iota must stay a…
Oct 2, 2026
0b56f47
Merge pull request #69 from 1bit-MONSTER/1bit/hrx-tq-pr
bong-water-water-bong Oct 2, 2026
56b4453
ggml-hrx: no V transpose for MLA's strided V (GLM-4.7-Flash prompts >…
Oct 2, 2026
53c8b17
llama-hadamard: fold qwen3next's ssm_ba; refuse stamped files with un…
Oct 2, 2026
6339066
Merge pull request #70 from 1bit-MONSTER/1bit/hrx-fa-mla-transpose
bong-water-water-bong Oct 2, 2026
388290b
Merge pull request #71 from 1bit-MONSTER/1bit/hadamard-onebit-guard
bong-water-water-bong Oct 2, 2026
e5afc24
ggml-hrx: reuse SwiGLU block metadata on integration base
AaronStGeorge Sep 30, 2026
3cbd76a
Merge pull request #130 from AaronStGeorge/fix-bump-pr-87-1
rsuderman Oct 2, 2026
80b9259
Merge pull request #125 from AMD-Ecosystem/experiment/hrx-metadata-st…
rsuderman Oct 2, 2026
ba0be9a
ggml-hrx: keep ADD_ID / SWIGLU_OAI with their MUL_MAT_ID (placement g…
Oct 2, 2026
35027f7
Merge pull request #73 from 1bit-MONSTER/1bit/hrx-moe-split-guard
bong-water-water-bong Oct 2, 2026
e618709
ggml-hrx: masked KV rows reach flash-attention P*V as V = +0 (identic…
Oct 2, 2026
2bd7f58
Merge pull request #72 from 1bit-MONSTER/1bit/hrx-fa-masked-v
bong-water-water-bong Oct 2, 2026
dcbc1d4
ggml-hrx: attention sinks for FLASH_ATTN_EXT (gpt-oss), applied after…
Oct 2, 2026
5405484
ggml-hrx: attention-sink dispatch refuses outputs that overlap an inp…
Oct 2, 2026
4485916
Merge pull request #68 from 1bit-MONSTER/1bit/hrx-attention-sinks
bong-water-water-bong Oct 2, 2026
d3dc0f7
ggml-hrx: PrismML tile bytes for the low-token SwiGLU (PQ2_0 1.7B dec…
Oct 2, 2026
f5b7f4a
Merge pull request #74 from 1bit-MONSTER/1bit/hrx-prism-tile-bytes
bong-water-water-bong Oct 2, 2026
c4c14f4
hrx: add packed Q1_0 Q8_1 decode matmul
rsuderman Oct 2, 2026
f104f8d
hrx: optimize Q1_0 token-64 tiled matmul
rsuderman Oct 2, 2026
2ae98de
hrx: decouple skinny matmul token capacity schema
rsuderman Oct 2, 2026
973c934
ggml-hrx: extend reusable IQ codebook matmuls
rsuderman Oct 2, 2026
02122cf
ggml-hrx: add packed Q1_0 paired SwiGLU route
rsuderman Oct 2, 2026
f681f85
Merge amdeco/hrx-graph-develop-v2 into main
rsuderman Oct 2, 2026
437e1cb
ggml-hrx: speed up IQ4_NL dequantization
rsuderman Oct 2, 2026
b802a50
Merge pull request #132 from rsuderman/main
rsuderman Oct 2, 2026
85f5983
ggml-hrx: the f32_f32 WMMA cores accumulate in f32
Oct 3, 2026
34e545f
spec: MTP bridges the previous h-row into a fresh sequence (engine #290)
Oct 3, 2026
e0f637b
ggml-hrx: publish deferred host writebacks before a host-staging upload
Oct 3, 2026
b5669e0
ggml-hrx: keep the transposed result-tile staging with the f32 accumu…
Oct 3, 2026
1c0241b
hrx: decline the decode-split under a non-production partial-transien…
Oct 3, 2026
d336ba6
ggml-hrx: fold the MUL_MAT_ID WMMA f16 accumulator into f32 every 16-…
Oct 3, 2026
973e5ce
Merge pull request #84 from 1bit-MONSTER/1bit/hrx123-decline-guard
bong-water-water-bong Oct 3, 2026
2e5fcf5
Merge pull request #85 from 1bit-MONSTER/1bit/hrx284-f32acc
bong-water-water-bong Oct 3, 2026
616034b
ggml-hrx: run hipcc code objects through HRX (HIP kernel plumbing)
Oct 4, 2026
8719cf4
ggml-hrx: HIP kernel add-on hook (GGML_HRX_HIP_ADDON_DIR)
Oct 5, 2026
d5de4b1
tests: MUL_MAT_VEC_FUSION cases for one-token Q4_K/Q5_K gate/up + SwiGLU
Oct 5, 2026
a679f78
Merge pull request #82 from 1bit-MONSTER/1bit/hrx-host-writeback-flush
bong-water-water-bong Oct 5, 2026
86eee89
Merge pull request #83 from 1bit-MONSTER/1bit/mtp-pending-h-continuity
bong-water-water-bong Oct 5, 2026
d5a9932
Merge 1bit/hrx-vulkan-patched into 1bit/hrx-f32-wmma-accumulate
Oct 5, 2026
d1691f4
Merge pull request #81 from 1bit-MONSTER/1bit/hrx-f32-wmma-accumulate
bong-water-water-bong Oct 5, 2026
2806e9a
ggml-hrx: stop the sleeping wait from oversleeping decode after a prompt
Oct 5, 2026
f3c771f
Merge pull request #87 from 1bit-MONSTER/1bit/hrx-replay-keep
bong-water-water-bong Oct 5, 2026
4dade38
llama: add token ID tracking to KV cell (#27762)
ngxson Aug 26, 2026
35207fe
model : allow reshape of tensors during load (#26531)
ggerganov Aug 4, 2026
254e014
llama: model_loader: add TENSOR_READ_LAZY (#27794)
ngxson Aug 27, 2026
d5a3a1b
model: add Qwen3.8-Flash-Next (qwen4exp) (#27742)
danielhanchen Aug 27, 2026
08a1233
model: qwen4exp: reduce number of graph splits (#27880)
ngxson Aug 28, 2026
d3516bf
bench: add --tensor-read-lazy (#27881)
ngxson Aug 28, 2026
9175627
llama: improve TENSOR_READ_LAZY handling (#27837)
ngxson Aug 30, 2026
6378935
common: rename --tensor-read-lazy to --lazy-mode, add -lzm shorthand …
ggerganov Aug 30, 2026
6354fe9
qwen4exp: sum the indexer heads by slices (#28023)
ServeurpersoCom Sep 1, 2026
2c684b5
qwen4exp: support recurrent state rollback (#28123)
ServeurpersoCom Sep 1, 2026
ffca4b4
qwen4exp: fix seq_cp, block position keying, mtmd input, cuda abort, …
danielhanchen Sep 1, 2026
4bb1e26
kv-cells: look up the n-gram history in the sequence position index (…
ServeurpersoCom Sep 1, 2026
7d02867
models : fix GDN normalization from `max` to `rsqrt` (#28068)
danielhanchen Sep 6, 2026
34ff68b
qwen4exp: enable rms_norm + mul fusion (#28896)
am17an Sep 14, 2026
864deaf
qwen4exp: add hc ops (#28901)
am17an Sep 16, 2026
1458fd8
qwen4exp: NextN/MTP draft head for Qwen3.8-Flash-Next (ggml-org/llama…
danielhanchen Sep 26, 2026
f294a5b
qwen4exp MTP: reduced draft vocabulary (d2t + K-row head)
Oct 1, 2026
bfda5f5
qwen4exp MTP: refuse a draft vocabulary whose d2t ids are out of rang…
Oct 1, 2026
f89d503
qwen4exp: run Qwen3.8-Flash-Next on HRX (graph adjustments, dense QSA…
Oct 4, 2026
7740a1a
qwen4exp MTP: load and run the Flash-Next draft head in this tree
Oct 5, 2026
3527b56
ggml-hrx: HIP matchers can declare the ops they claim (hip/hip-capabi…
Oct 5, 2026
001832c
Merge pull request #86 from 1bit-MONSTER/1bit/hrx-hip-plumbing
bong-water-water-bong Oct 5, 2026
e57beb9
Merge pull request #88 from 1bit-MONSTER/1bit/qwen4exp-hrx
bong-water-water-bong Oct 5, 2026
d959413
ggml-hrx: transient arena reuse without false dependencies
Oct 5, 2026
efb93ce
ggml-hrx: record graph kernels with a bounded lookahead to share barr…
Oct 5, 2026
f95f2db
Merge pull request #89 from 1bit-MONSTER/1bit/hrx-runtime-overhead
bong-water-water-bong Oct 5, 2026
b4e7515
ggml-hrx: never write a device-rewritten graph input back to host memory
Oct 5, 2026
f862dae
ggml-hrx: wait for a non-replay command program that reads registered…
Oct 5, 2026
69788ac
build: C++26 by default (amdclang 23 / g++ 15), no module scanning
Oct 5, 2026
6150ff0
Merge pull request #91 from 1bit-MONSTER/1bit/cxx26
bong-water-water-bong Oct 5, 2026
522dab4
Merge pull request #90 from 1bit-MONSTER/1bit/kv-nan-rootcause
bong-water-water-bong Oct 5, 2026
1d4333c
build: C++26 only where the compiler offers it; older toolchains keep…
Oct 5, 2026
ebe1662
Merge pull request #92 from 1bit-MONSTER/1bit/cxx26-ci
bong-water-water-bong Oct 5, 2026
f8792a1
hrx: reuse Q1_0 scales across paired-row packet decodes
AaronStGeorge Oct 5, 2026
f21d0cf
hrx: preserve the Q1_0 decoder convenience interface
AaronStGeorge Oct 5, 2026
4d13516
common: record NaN logits instead of only aborting, with opt-in conti…
Oct 6, 2026
b05d329
Merge pull request #93 from 1bit-MONSTER/1bit/hrx-nan-continue
bong-water-water-bong Oct 6, 2026
59771f2
Merge AMD's pinned pair b802a507 into 1bit/hrx-vulkan-patched
Oct 6, 2026
b3981ce
Merge commit '59771f2a63c30c0edb9eaa79bef8b1b937788733' into HEAD
Oct 6, 2026
b04c4e9
Merge pull request #94 from 1bit-MONSTER/1bit/cxx26-ci
bong-water-water-bong Oct 6, 2026
51e538f
hrx: cap the decode-split dispatch at 2048, the last provider the mer…
Oct 6, 2026
420b4e6
ggml-hrx: take AMD's corpus wholesale and keep our kernels beside it
bong-water-water-bong Oct 6, 2026
39588ef
ggml-hrx: do not cache a compiled kernel whose launch program exists
bong-water-water-bong Oct 6, 2026
56c3c8a
ggml-hrx: route mul_mat_id through our kernel again
bong-water-water-bong Oct 6, 2026
60bb4f5
hrx: name the Q1_0 scale loader consistently
AaronStGeorge Oct 6, 2026
40d2b57
hrx: name reusable block data as decode state
AaronStGeorge Oct 6, 2026
f2099e9
hrx: keep our ggml-hrx backend on AMD's core
Oct 6, 2026
3b0c597
Merge pull request #134 from AMD-Ecosystem/experiment/bh6-q1-metadata
rsuderman Oct 6, 2026
02f2880
Merge pull request #136 from AMD-Ecosystem/cleanup/hrx-decode-state-l…
rsuderman Oct 6, 2026
f9ff066
ggml-hrx: derive decode-split FA tile visibility from shared memory (…
bong-water-water-bong Oct 6, 2026
cf4dfd8
ggml-hrx: decode-split FA always-stage fallback (engine#314)
bong-water-water-bong Oct 6, 2026
26330cc
merge: take shared-memory tile visibility over always-stage for decod…
Oct 7, 2026
e44c9d0
Merge commit '02f2880c9f422dd1df9db11e3a0bb442bc5f11f5' into HEAD
Oct 7, 2026
53d443c
ggml-hrx: squash development through 8108322b7
AaronStGeorge Oct 7, 2026
d9e2dc4
ggml-hrx: adopt canonical Loom divisibility predicates (#139)
AaronStGeorge Oct 8, 2026
c23b78f
ggml-hrx: NVFP4 weights in the shared dequantizer (HRX format 43)
Oct 2, 2026
4d2941e
ggml-hrx: NVFP4 on the single-token decode lanes
Oct 2, 2026
bc6acd4
tests: test-hrx-nvfp4, a bit-exact known-answer check of NVFP4 GET_RO…
Oct 2, 2026
e200bdf
tests: test-hrx-decode-stride covers NVFP4 at input sizes 320, 1152, …
Oct 2, 2026
5625fa2
ggml-hrx: Q2_0 weights in the shared dequantizer (HRX format 42)
Oct 2, 2026
4f3607c
ggml-hrx: Q2_0 on the single-token decode lanes
Oct 2, 2026
993a733
tests: test-hrx-q2_0, a bit-exact known-answer check of Q2_0 GET_ROWS…
Oct 2, 2026
a4963bb
ggml-hrx: GET_ROWS of IQ3_S and IQ4_NL rows on HRX
Oct 2, 2026
187e216
tests: test-hrx-get-rows-iq, bit-exact IQ4_NL and IQ3_S GET_ROWS on HRX
Oct 2, 2026
98f0736
Merge pull request #98 from 1bit-MONSTER/1bit/hrx-nvfp4-rb
bong-water-water-bong Oct 9, 2026
0e255d7
Merge pull request #100 from 1bit-MONSTER/1bit/hrx-getrows-iq-rb
bong-water-water-bong Oct 9, 2026
2bdb04a
ggml-hrx: build loom-jit against LoomC with compiler-owned AMDGPU run…
Oct 9, 2026
d1b0eb2
hrx: accept empty MoE expert views when matching graphs (#140)
AaronStGeorge Oct 12, 2026
93d5760
ggml-hrx: run qwen35 prompt batches above 512 tokens (engine #389)
Oct 12, 2026
a76a700
ggml-hrx: claim the >512-token SSM_CONV only for the delta-net conv
Oct 12, 2026
2345d88
ggml-hrx: claim the chained SSM_CONV only when its x producer stays o…
Oct 12, 2026
d78ffd8
ggml-hrx: write KV-cache rows above 2048 tokens in chunks
Oct 12, 2026
66a6d1c
ggml-hrx: chain AMD's tuned 512-token conv pair for full 512-token ch…
Oct 12, 2026
ad18320
Merge pull request #101 from 1bit-MONSTER/1bit/hrx-ub389
bong-water-water-bong Oct 12, 2026
775aa77
ggml-hrx: prove packet bounds before view linearization (#141)
AaronStGeorge Oct 13, 2026
1bdb972
ggml-hrx: size fused router launch for target expert tiles (#146)
AaronStGeorge Oct 14, 2026
dbe1d6e
ggml-hrx: adopt exclusively owned Loom link-index builders (#147)
AaronStGeorge Oct 14, 2026
43b0ec2
ggml-hrx: reuse block metadata in dense and paired tiled matmul (#148)
AaronStGeorge Oct 15, 2026
1a5dcba
ggml-hrx: placement report and strict mode (engine #390) (#102)
bong-water-water-bong Oct 16, 2026
80d57dd
Merge AMD-Ecosystem/llama.cpp hrx-graph-develop-v2 43b0ec2c4 (bump te…
Oct 17, 2026
37c499d
ggml-hrx: spell the Loom divisibility predicate multiple_of (bump test)
Oct 17, 2026
d8d7710
ggml-hrx: bound the ARGSORT rank for the new Loom store-origin check …
Oct 17, 2026
8d9ce2c
ggml-hrx: also bound the ARGSORT rank above by the column count (bump…
Oct 17, 2026
8dafc4a
tests: build the HRX tests against the ggml-hrx we ship (engine#422) …
bong-water-water-bong Oct 18, 2026
7227a77
tests: per-case runner and the #445 ACCEPT rows (#105)
bong-water-water-bong Oct 18, 2026
953b639
tests: retire the #449 guard for gdn rmsnorm-gate publication (engine…
bong-water-water-bong Oct 18, 2026
29dd882
qwen: publish the next-RMSNorm q8 alternate from the fused routed-dow…
bong-water-water-bong Oct 18, 2026
c26c071
tests: retire the #450 known-fail guard, the symmetric-i4 route is no…
bong-water-water-bong Oct 18, 2026
0d3ed9e
qwen: make rmsnorm q8 publication consumer-driven again (engine #449)…
bong-water-water-bong Oct 18, 2026
00f2a68
qwen_moe: declare the q8 next-RMSNorm producer's writes in the manife…
bong-water-water-bong Oct 19, 2026
5763687
hrx: bound the graph program cache by bytes; server: stall-aware /hea…
bong-water-water-bong Oct 20, 2026
3c24f91
server: exit when the GPU is lost, so a supervisor restarts the model…
bong-water-water-bong Oct 20, 2026
61e19a4
ggml-hrx: elide a zero-element in-place CPY instead of failing the gr…
bong-water-water-bong Oct 20, 2026
ba64834
ggml-hrx: PAD parameters match the kernel; source strides; circular f…
bong-water-water-bong Oct 20, 2026
b14a283
ggml-hrx: prove the 4-wide f16 store's footprint on the packed row ax…
bong-water-water-bong Oct 20, 2026
8792923
ggml-hrx: SET_ROWS with a quantized cache through a HIP add-on hook (…
bong-water-water-bong Oct 20, 2026
cefbfc0
ggml-hrx: gated delta net takes more than three sequences (#117)
bong-water-water-bong Oct 20, 2026
dcf8c1e
ggml-hrx: claim a gated delta net only when its q, k and v come from …
bong-water-water-bong Oct 20, 2026
5dcf662
ggml-hrx: allocation safety in our own file - pool budget, poisoned d…
bong-water-water-bong Oct 21, 2026
240a9be
ggml-hrx: run prompt flash attention above 2048 query rows as query c…
Oct 20, 2026
30a0e0d
ggml-hrx: int4-activation SwiGLU prefill is opt-in (GGML_HRX_SYMMETRI…
Oct 21, 2026
35737c6
ggml-hrx: ROPE above 2048 tokens as token chunks (Qwen3-4B runs -ub 4…
Oct 21, 2026
1a41f1b
Merge pull request #120 from 1bit-MONSTER/1bit/fa-prompt-query-chunks-v2
bong-water-water-bong Oct 21, 2026
abb23be
Merge pull request #122 from 1bit-MONSTER/1bit/hrx-rope-ubatch
bong-water-water-bong Oct 21, 2026
96f8197
Merge pull request #121 from 1bit-MONSTER/1bit/hrx-i4-prefill-opt-in
bong-water-water-bong Oct 21, 2026
ea2e62a
ggml-hrx: claim views of q8_0 KV caches so q8_0 flash attention is ac…
bong-water-water-bong Oct 21, 2026
8905498
Merge pull request #123 from 1bit-MONSTER/1bit/kv-q8-salvage
bong-water-water-bong Oct 21, 2026
896341d
common: opt-in cumulative-confidence draft budget for MTP, and the me…
bong-water-water-bong Oct 21, 2026
af04c9f
Merge pull request #124 from 1bit-MONSTER/1bit/mtp-cum-budget
bong-water-water-bong Oct 21, 2026
a111d82
ggml-hrx: let a gated delta net carry more than five rollback snapshots
Oct 22, 2026
90274fd
Merge branch '1bit/hrx-vulkan-patched' into 1bit/gdn-snapshot-cap
bong-water-water-bong Oct 22, 2026
851fa6c
Merge pull request #125 from 1bit-MONSTER/1bit/gdn-snapshot-cap
bong-water-water-bong Oct 22, 2026
9b846c1
tests: assert the publication this line makes, not the fused producer…
bong-water-water-bong Oct 23, 2026
5fd1d30
ggml-hrx: fix the PAD param dump so the tree compiles, and run test-h…
bong-water-water-bong Oct 23, 2026
6e57798
tests: name the kquant decode route for the few-token matmuls in test…
bong-water-water-bong Oct 23, 2026
7ca8ba5
tests: follow the pin's routes and report verifier failures (engine #…
bong-water-water-bong Oct 23, 2026
8509e42
tests: re-read the open rows at the current pin (engine #445, fork 7c…
bong-water-water-bong Oct 23, 2026
f1670b4
hrx: the absent bias/residual slots of mul_mat_id_postops bind a read…
bong-water-water-bong Oct 23, 2026
830e2c1
tests: fix test-hrx-ops from the first device run (engine #444) (#132)
bong-water-water-bong Oct 23, 2026
c3eef46
models: add Flint (FlintForCausalLM), ported from upstream #30928 (#134)
bong-water-water-bong Oct 23, 2026
f08bd76
jinja: accept \xNN escapes in the lexer (#135)
bong-water-water-bong Oct 23, 2026
e91b608
spec: DFlash2 block drafters on the pinned branch (local conv as stri…
bong-water-water-bong Oct 24, 2026
d65a7e5
ggml-hrx: FILL constant in the program-cache key; DFlash2 TOP_K cases…
bong-water-water-bong Oct 25, 2026
a25b4b8
qwen4exp: Qwen3.8-Flash-Next on HRX (IMROPE->NEOX rope, HRX rms_norm …
bong-water-water-bong Oct 25, 2026
9705173
dflash: apply the target's prism.hadamard folds to the shared token t…
bong-water-water-bong Oct 25, 2026
e7e5cd0
qwen4exp: route IQ2_S routed experts to HRX when the HIP add-on expor…
bong-water-water-bong Oct 25, 2026
21a2822
cli: -no-cnv means one turn, and a non-TTY stdin ends the interactive…
bong-water-water-bong Oct 25, 2026
6ded110
qwen4exp/ternary: TQ2_0 load-time repack onto the fast k128 ternary d…
bong-water-water-bong Oct 25, 2026
adef66c
tests: keep the FILL constant in snapshots, and bring both HRX suites…
bong-water-water-bong Oct 25, 2026
8ee20a0
hrx: refuse a dispatch match that reads a value before it is written …
bong-water-water-bong Oct 25, 2026
6b397ee
tests: the packing case pins the guarded packer, both arms measured (…
bong-water-water-bong Oct 25, 2026
8c0ab23
tests: qwen_matmul_dispatch runs to the end at the pin (engine #445) …
bong-water-water-bong Oct 25, 2026
15a4640
llama-graph: make norm inputs contiguous for qwen4exp only (qwen35 on…
bong-water-water-bong Oct 25, 2026
40c4ccb
hrx: translate add-on kernel names through a weak hook before scannin…
bong-water-water-bong Oct 25, 2026
d8d2f5b
hrx: default-verbosity messages name a class, the detail moves behind…
bong-water-water-bong Oct 29, 2026
fe04824
ggml-hrx: an env-gated host-gap profiler (engine #572) (#154)
bong-water-water-bong Oct 30, 2026
b8861a9
kv: verify the zero padding of the KV cache, and repair it (engine #5…
bong-water-water-bong Oct 30, 2026
9e8453a
model: DeepSeek-V4.1-Flash (deepseek41) port of upstream #31086 + #31…
bong-water-water-bong Oct 30, 2026
f61f290
dsv41: drop the dead llm_arch_supports_mixed_batch definition (#157)
bong-water-water-bong Oct 30, 2026
01d7df4
dsv41: the deepseek41 and DSpark graphs never expanded their output (…
bong-water-water-bong Oct 30, 2026
5e6388a
ggml-hrx: GET_ROWS for a table over 262208 rows (engine #572) (#159)
bong-water-water-bong Oct 30, 2026
4a58da9
ggml-hrx: GET_ROWS id range 2^30 for the DeepSeek-V4.1 Engram table (…
bong-water-water-bong Oct 31, 2026
20f9584
tests: a test-backend-ops run that executes zero cases is not a pass …
bong-water-water-bong Oct 31, 2026
37ca4d4
kv share: a prefill provider can map the decoder's KV region and hand…
bong-water-water-bong Oct 31, 2026
981904a
kv share: a provider in another process maps the region as fds, the d…
bong-water-water-bong Nov 1, 2026
dbb7056
hrx: byte accounting for the host staging round trip (engine #674) (#…
bong-water-water-bong Nov 1, 2026
e81c2f9
hrx: refuse a launch that would plan past the GTT ceiling (engine #68…
bong-water-water-bong Nov 1, 2026
f55e176
hrx: order the host copies with the compute dispatches (engine #696) …
bong-water-water-bong Nov 1, 2026
3721f9e
ggml-hrx: document what a wrong workload-parameter list actually does…
bong-water-water-bong Nov 1, 2026
1991650
ggml-hrx: TOP_K on HRX, a radix select for the QSA indexer (engine #6…
bong-water-water-bong Nov 1, 2026
2cbf8af
hrx: host-weight residency instrumentation, weak leases, and an opt-i…
bong-water-water-bong Nov 1, 2026
1d32c22
loader: an explicit -ot wins over the arch's lazy-read hint; LLAMA_IN…
bong-water-water-bong Nov 1, 2026
197e775
kv share: an optional guard page after an imported region, so a tile …
bong-water-water-bong Nov 2, 2026
ba4fdf0
hrx: make the host-weight residency budget mean the budget (engine #7…
bong-water-water-bong Nov 2, 2026
d8bd0ff
hrx: refuse to run when the residency budget is below the working set…
bong-water-water-bong Nov 2, 2026
a5c32fb
convert: restore --dspark, so the pinned converter runs at all (engin…
bong-water-water-bong Nov 4, 2026
c4948cc
hrx: count the prepared command programs in the graph-program cache b…
bong-water-water-bong Nov 4, 2026
6156b82
hrx: don't stage a binding that no command in the program references …
bong-water-water-bong Nov 4, 2026
13eb1f3
ggml-cpu: thread GET_ROWS over large gathers (#177)
bong-water-water-bong Nov 4, 2026
47dc0eb
model: Zamba2 on HRX (Mamba-2 layers + 2 shared attention blocks) (#178)
bong-water-water-bong Nov 4, 2026
2edd945
hrx: a host-weight refusal says whether the arena is fragmented or sh…
bong-water-water-bong Nov 4, 2026
3bb5951
kv share: share the recurrent state too, so a hybrid model's handoff …
bong-water-water-bong Nov 4, 2026
049d481
hrx: drop the parked host-weight slots with the arena that parked the…
bong-water-water-bong Nov 4, 2026
e40a3a2
hrx: give amdclang++ the device-library bitcode path so a changed HIP…
bong-water-water-bong Nov 4, 2026
9242c7d
convert: refuse a model dir with no weight files, instead of writing …
bong-water-water-bong Nov 4, 2026
b17c833
server: a handoff can record its cells as an in-place checkpoint, so …
bong-water-water-bong Nov 4, 2026
a575567
sched: an in-place node and its storage have to share one backend (en…
bong-water-water-bong Nov 4, 2026
7f30d57
hrx: the residency limit's header says its default is 2048 MiB; the c…
bong-water-water-bong Nov 4, 2026
e30bf3c
hrx: refuse a packed weight layout instead of running it over unpacke…
bong-water-water-bong Nov 4, 2026
c75e808
context: keep a fused op when only its layer's placement disagrees (-…
bong-water-water-bong Nov 4, 2026
0879298
hrx: cooperative bucket scan, single emit pass and vec4 row reads for…
bong-water-water-bong Nov 4, 2026
7709e59
ggml-hrx: standalone SET_ROWS for the QSA mask rebuild (engine #679) …
bong-water-water-bong Nov 4, 2026
428937a
hrx: say once, at load, when a model's nodes fall back to the CPU (en…
bong-water-water-bong Nov 4, 2026
f377fd5
hrx: a code object has to depend on the headers its kernel includes (…
bong-water-water-bong Nov 4, 2026
5670d8e
model: BlackMamba (Zyphra/BlackMamba-1.5B, -2.8B) (#183)
bong-water-water-bong Nov 4, 2026
8f6daf9
hrx: warn once when an unbounded run pins more host weight than the b…
bong-water-water-bong Nov 4, 2026
8886d31
hrx: admit element-wise dense MUL_MAT at input_size % 32, not only % …
bong-water-water-bong Nov 4, 2026
16a9bc8
bench: llama-bench accepts -fcd, the flag it already advertises (#201)
bong-water-water-bong Nov 4, 2026
e9870b3
model: Zamba v1 (Zyphra/Zamba-7B-v1) (#184)
bong-water-water-bong Nov 4, 2026
c2aae05
hrx: name the model's host-weight working set, once, and let placemen…
bong-water-water-bong Nov 4, 2026
817d081
hrx: a capacity refusal stops advising a budget it cannot reach (engi…
bong-water-water-bong Nov 4, 2026
c08e951
src: opt-in per-layer attention q/k dump (LLAMA_ZHA_DUMP_DIR) (#179)
bong-water-water-bong Nov 5, 2026
b390c2d
hrx: log a residency decline, so a budget that reshapes the graph is …
bong-water-water-bong Nov 5, 2026
6e42864
convert/model: store Zamba2's shared transformer block once per block…
bong-water-water-bong Nov 5, 2026
a4babdf
hrx: let element-wise expert weights use the 32-value packet in MUL_M…
bong-water-water-bong Nov 5, 2026
69515bc
graph: keep the fused attention op on its layer's device (engine #107…
bong-water-water-bong Nov 5, 2026
391bad8
convert: Zamba2-VL (Zamba2 language model + Qwen2.5-VL tower), so the…
bong-water-water-bong Nov 5, 2026
4a375bf
hrx: run a batched dense MUL_MAT as one dispatch per plane (engine #9…
bong-water-water-bong Nov 5, 2026
8ac62a3
hrx: admit element-wise dense MUL_MAT contractions at input_size % 4 …
bong-water-water-bong Nov 5, 2026
62c0282
hrx: a fused dispatch may not swallow a value the caller asked to rea…
bong-water-water-bong Nov 5, 2026
d368a18
hrx: densify a row-padded activation once instead of falling back to …
bong-water-water-bong Nov 5, 2026
a402b13
hrx: time the prepared command-program path and per-shape preparation…
bong-water-water-bong Nov 5, 2026
d70b67b
kv-share: a backend that cannot export its KV degrades, instead of ki…
bong-water-water-bong Nov 6, 2026
dab5f89
hrx: admit a 464-wide value head in the decode-split flash-attention …
bong-water-water-bong Nov 6, 2026
c729177
llama : adapter factors update in place, with no GGUF parse
Nov 6, 2026
59d7f82
Merge pull request #215 from 1bit-MONSTER/1bit/973-inplace-adapter
bong-water-water-bong Nov 6, 2026
f148781
hrx: let a separate MTP draft head load and let the top-k sampler gra…
bong-water-water-bong Nov 6, 2026
d5ddd5e
hrx: claim host buffers only when asked, so -ngl 0 stays on the CPU
Nov 6, 2026
c2c078b
Merge pull request #217 from 1bit-MONSTER/1bit/1078-ngl0-cpu-placement
bong-water-water-bong Nov 6, 2026
3a93e83
hrx: drop the unused fit-path hunk; the constructor warning covers th…
bong-water-water-bong Nov 6, 2026
710c7c2
Merge pull request #219 from 1bit-MONSTER/1bit/i681-mtp-draft
bong-water-water-bong Nov 6, 2026
4ca81fe
hrx: name the two backend-ops suite failures that are not the backend…
bong-water-water-bong Nov 6, 2026
ced49c6
Merge pull request #221 from 1bit-MONSTER/1bit/1259-hrx-suite-green
bong-water-water-bong Nov 6, 2026
198a451
llama-context: the fit-probe warning passes a C string, so clang buil…
Nov 6, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
10 changes: 10 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,16 @@ cmake_minimum_required(VERSION 3.14...3.28) # for add_link_options and implicit
project("llama.cpp" C CXX)
include(CheckIncludeFileCXX)

# C++26 where the compiler has it (amdclang 23, g++ 15); older toolchains keep C++17
if("cxx_std_26" IN_LIST CMAKE_CXX_COMPILE_FEATURES)
set(CMAKE_CXX_STANDARD 26)
else()
set(CMAKE_CXX_STANDARD 17)
endif()
set(CMAKE_CXX_STANDARD_REQUIRED true)
# no C++20 module scanning: no module sources, and some toolchains lack clang-scan-deps
set(CMAKE_CXX_SCAN_FOR_MODULES OFF)

#set(CMAKE_WARN_DEPRECATED YES)
set(CMAKE_WARN_UNUSED_CLI YES)

Expand Down
91 changes: 91 additions & 0 deletions benchmarks/NOTE-hrx-124-multipass-output-2026-09-27.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
# HRX decode-split multipass output pass: drop the 128x redundant expf and the scalar block loop (engine#124)

Worktree: `~/1bit-engine-176/third_party/llama.cpp`, branch `1bit/hrx-124-output-pass` (base `00adc2b`).
Box: gfx1151 (Strix Halo), `Qwen3-Coder-30B-A3B-Instruct-Q4_K_M`, `-dev HRX0`.

## What was wrong

`@ggml.flash_attention.decode_split.reduce_completed.multipass`
(`ggml/src/ggml-hrx/kernel-corpus/kernels/loom-libs/ops/flash_attention_decode_split_f32_f16_wmma.loom`)
finished with a scalar output pass: `workitem -> one output channel`, then a serial
`scf.for %block = [%c0 to %active_block_count]` over **every** KV block, run by all 256
workitems. Only 128 are live at `value_head_size = 128`, and each one recomputed
`scale = expf(partial_max[block] - maximum)` for every block, so `expf` ran once per
`(block, output element)` instead of once per `(block)`, and every element walked the
block dimension alone. That is the residual ~16% gap above capacity 2048 (issue #124).

## The change (bit-exact)

1. **LDS scale stage.** The lane-strided sum pass already computes
`scale = expf(partial_max[block] - maximum)` for every block; store it into a
per-row workgroup stage (`scale_stage_view[row, block]`) and also publish the row
`sum` (`sum_stage_view[row]`). The output pass then just reloads the exact f32
value. Removes ~128x redundant `expf` and the redundant `partial_max` reloads.
2. **Vectorised all-rows output pass.** After the per-row max/sum phase, one pass
covers all query rows at once: workitem `w` owns a 4-channel *quad*
(`quad = tile*256 + w`, `row = quad / quads_per_row`, `channel = (quad %
quads_per_row)*4`), loads `vector<4xf16>` from `partial_output`, and accumulates
`vector<4xf32>` over blocks with `unroll(%c4) schedule(interleaved)`. For the
production GQA shape (8 query heads per KV head, `value_head_size = 128`) there are
exactly 256 quads, so the whole workgroup (all four subgroups) is busy and each
channel still accumulates its blocks in the same order as before.

Because the per-channel accumulation order is unchanged and the vector ops are
elementwise, the reduce output is **bit-identical** to the previous multipass reducer
(verified end-to-end below).

## Result

`llama-bench -p 0 -n 8 -r 5 -d 1900,2000,2100,3000,4800`, 6 interleaved A/B rounds,
median of the 6 run means:

| depth | capacity | blocks | base t/s | patched t/s | delta | path |
|---|---:|---:|---:|---:|---:|---|
| 1900 | 1920 | 30 | 70.72 | 71.48 | +1.1% | cooperative (untouched control) |
| 2000 | 2048 | 32 | 66.06 | 68.82 | +4.2% | cooperative (untouched control) |
| 2100 | 2112 | 33 | 58.19 | 67.15 | **+15.4%** | multipass |
| 3000 | 3008 | 47 | 50.84 | 60.89 | **+19.8%** | multipass |
| 4800 | 4864 | 76 | 41.83 | 51.02 | **+22.0%** | multipass |

The boundary cliff is gone: `d2100/d2000` moves **0.881 -> 0.976** (and
`d4800/d2000` 0.633 -> 0.741). The two depths the reducer does not touch moved by
+1.1% / +4.2%, i.e. run-to-run noise.

A throwaway diagnostic that deleted the output block loop entirely (keeping the
max/sum passes) measured **+21.6% / +50.0% / +30.5%** at d2100 / d3000 / d4800, which
is how the output pass was identified as the whole gap rather than the reduction math
(issue #124's diagnosis).

## Evidence

- **Bit-exact.** `llama-perplexity -c 2049 -b 1 -f <6600-token text> --save-all-logits`
(token-by-token decode, so the decode-split kernel is dispatched; `GGML_HRX_LOG_DISPATCH=1`
confirms `flash_attention_decode_split`). The 1,244,725,284-byte logits dumps for base
and patched are **byte-identical** (`cmp`), PPL 21.9760 +/- 0.81813 on both.
- **Correctness.** Buried code word `ZX-4718-QQ` at 4700 prompt tokens (capacity 4864,
multipass), `llama-server`, temperature 0, seed 42, `cache_prompt:false` -> answer
`ZX-4718-QQ`. PASS.
- **Faults.** 6 A/B rounds x 5-rep sweeps at all five depths on the patched build:
0 `HSA_STATUS_ERROR_MEMORY_FAULT`, 0 `res = -3`. The cooperative/direct paths are
untouched, so <= 2048 (d1900/d2000) shows no tok/s or fault regression.

## Reproduce

```
# build (engine worktree ~/1bit-engine-176, HRX llama.cpp build dir)
cmake --build build/hrx/llama --target llama-bench llama-perplexity -j 16

# dispatch needs libhsa from the HRX toolchain
export IREE_HAL_AMDGPU_LIBHSA_PATH=/opt/rocm-therock/lib/python3.14/site-packages/_rocm_sdk_core/lib/libhsa-runtime64.so.1

# performance
build/hrx/llama/bin/llama-bench -m models/Qwen3-Coder-30B-A3B-Instruct-Q4_K_M.gguf \
-dev HRX0 -ngl 99 -p 0 -n 8 -r 5 -d 1900,2000,2100,3000,4800

# bit-exact reference vs the previous build
build/hrx/llama/bin/llama-perplexity -m models/Qwen3-Coder-30B-A3B-Instruct-Q4_K_M.gguf \
-f ref-text.txt -c 2049 -b 1 -dev HRX0 -ngl 99 --save-all-logits logits.bin
```

Raw runs and the A/B driver used here live under the session scratch dir
(`ab5-*.json`, `ab5-summary.txt`, `diag-noloop.json`).
Loading