Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
398 commits
Select commit Hold shift + click to select a range
1481bbe
vulkan: let the DeepSeek V4 small-batch gather serve quantised K/V
Nathanw1014 Aug 14, 2026
35b7578
vulkan: dequantise q8_0 K/V inside the DeepSeek V4 small-batch gather
Nathanw1014 Aug 14, 2026
987f662
vulkan: decode q4_0 in the V4 gather too, with the real element mapping
Nathanw1014 Aug 14, 2026
fa5f251
vulkan : restore the unrolled row copy in the DSV4 gather shaders
Nathanw1014 Aug 17, 2026
7ceebb6
vulkan: decode quantised K/V inside the DeepSeek V4 per-token gather
Nathanw1014 Aug 20, 2026
f9471c6
vulkan: dequantise the cache for the DeepSeek V4 sparse prefill
Nathanw1014 Aug 20, 2026
f7ffc13
vulkan: use small Lightning Indexer CM for batches 4-15
pepuscz Aug 24, 2026
ef56966
vulkan: hoist the Lightning Indexer K fragments out of the head loop
Nathanw1014 Aug 26, 2026
24d18f7
vulkan: route the whole small-batch Lightning Indexer window to the d…
Nathanw1014 Aug 26, 2026
4d83452
vulkan: hoist the Lightning Indexer K fragments out of the CM head loop
Nathanw1014 Aug 26, 2026
883b4d8
vulkan: support arbitrary Lightning Indexer head counts via specializ…
Nathanw1014 Aug 26, 2026
808ce1c
vulkan: N_HEAD spec constant for the scalar-64 lightning indexer
Nathanw1014 Aug 30, 2026
1007fdc
vulkan: hoist the coopmat1 FA P-fragment load out of the hsv_tile loop
Nathanw1014 Jul 30, 2026
11eaefa
vulkan: store coopmat1 FA Psh query-major so the GEMM2 A load vectorizes
Nathanw1014 Jul 30, 2026
bc2b9ad
vulkan: pin a 32-wide subgroup for coopmat1 FA where narrowing is free
Nathanw1014 Jul 30, 2026
1556cd1
vulkan: enable the coopmat1 FA wave32 narrowing rule by default
Nathanw1014 Aug 30, 2026
e75a22b
vulkan: mul_mat_id per-expert-n tile selection (Stage 2a, env-gated)
Nathanw1014 Jul 14, 2026
33a08e8
vulkan: mul_mat_id small-tile shape probes (env-gated)
Nathanw1014 Jul 14, 2026
fe10c7f
vulkan: mul_mat_id taller medium tile probe (GGML_VK_MMID_M128, env-g…
Nathanw1014 Jul 14, 2026
07e35fe
vulkan: mmid wave32 probe (GGML_VK_MMID_WAVE32, env-gated)
Nathanw1014 Jul 14, 2026
18569a9
vulkan: mul_mat_id f16-B probe (GGML_VK_MMID_F16B, env-gated)
Nathanw1014 Jul 14, 2026
8ad46e1
vulkan: guard mmid f16-B path on pipeline existence (Q2_0 fallback)
Nathanw1014 Jul 26, 2026
68df071
tests: cover MMQ tile boundaries in MUL_MAT and MUL_MAT_ID
Nathanw1014 Aug 6, 2026
77214b5
vulkan: create coopmat2 mul_mat_id pipelines with the real param count
Nathanw1014 Aug 8, 2026
6192a05
vulkan: enable the Strix mmid tile gates by default
Nathanw1014 Aug 30, 2026
891cfff
vulkan: run the quantised dense coopmat pipelines at wave32
Nathanw1014 Aug 18, 2026
f4d6f9e
vulkan: four env-gated Strix Halo prefill fixes for delta-net MoE
Nathanw1014 Aug 6, 2026
874b904
vulkan: reject ne[3] > 1 in the mul_mat_id scale epilogue
Nathanw1014 Aug 6, 2026
e249248
vulkan : default the transposed-concat path on
Nathanw1014 Aug 17, 2026
7db0111
vulkan: flush pending compute ctx before perf logger timestamps
Nathanw1014 Aug 2, 2026
6ab7cb6
vulkan: bound command buffers by memory traffic, not just flops
Nathanw1014 Aug 2, 2026
e387252
ggml: cut backend splits on the input constant, not the grown capacity
Nathanw1014 Aug 9, 2026
492e443
vulkan : optional f16 B operand for quantized MUL_MAT on coopmat1
Nathanw1014 Aug 16, 2026
d737bd5
vulkan : add auto mode to GGML_VK_DENSE_F16B
Nathanw1014 Aug 16, 2026
9f5ece3
vulkan: derive the mul_mat_id tiles from the wave64 dense tiles
Nathanw1014 Sep 8, 2026
1debd52
vulkan: keep the coopmat1 FA wave32 pin to multi-row dispatches
Nathanw1014 Sep 8, 2026
2f311ba
Merge branch 'master' into strix/vulkan-stack-only
Nathanw1014 Sep 8, 2026
5f85164
Merge pull request #17 from halo-box/strix/vulkan-stack-only
Nathanw1014 Sep 8, 2026
6b1f308
Merge pull request #42 from ajaxdude/jeromecoste-microsoft-small-proj…
LaurentZuijdwijk Sep 11, 2026
29e091e
Merge remote-tracking branch 'pr/27' into resolve-pr-27
LaurentZuijdwijk Sep 11, 2026
054a736
merge: sync Halo master while preserving Strix kernels
LaurentZuijdwijk Sep 12, 2026
0007bc6
Merge pull request #35 from arc-uri-el/contribution/checkpoint-io-202…
LaurentZuijdwijk Sep 12, 2026
a142a61
Merge branch 'master' into sync/halo-master-2026-09-11
LaurentZuijdwijk Sep 12, 2026
6548035
Merge pull request #47 from halo-box/sync/halo-master-2026-09-11
LaurentZuijdwijk Sep 12, 2026
6994643
Merge pull request #32 from halo-box/rocmfpx/vulkan-2026-09-07
LaurentZuijdwijk Sep 13, 2026
f2431a2
server : rename --cache-disk to --cache-dir
Sep 14, 2026
b009b79
llama: flatten the GDN output projection input to 2-D
SimonTeixidor Sep 9, 2026
e3f31cf
qwen35, qwen35moe: run gated_delta_net in place on the recurrent stat…
SimonTeixidor Sep 2, 2026
e20d6f5
chat : enforce string enums in Qwen XML tool arguments (#26)
arc-uri-el Sep 15, 2026
cfe6bb1
HIP : keep FA head size 192 off the WMMA kernel (#55)
SimonTeixidor Sep 15, 2026
e3120a1
sync upstream llama.cpp commits 2026 09 15 (#28)
dzannotti Sep 15, 2026
77024dd
--ngram-on-disk and lazymode merge (#29)
dzannotti Sep 15, 2026
8a400d0
ggml: recover two upstream commits dropped during the #28 sync (#30)
dzannotti Sep 15, 2026
f6a7a6c
Record upstream sync (content applied via #28, gaps recovered in #30)
dzannotti Sep 15, 2026
4bc01d0
docs: add upstream sync procedure (#31)
dzannotti Sep 15, 2026
dced43c
Merge halo-box/llama.cpp master into strix-llama.cpp
dzannotti Sep 15, 2026
0636c9a
pwilkin/strix-halo official merge (#63)
pwilkin Sep 16, 2026
82aed60
Merge strix master (#63) into the halo-box sync
dzannotti Sep 17, 2026
dffbb78
Merge halo-box/llama.cpp master (#31) into strix-llama.cpp
dzannotti Sep 17, 2026
f86f7a1
HIP : route Q6_K through MMQ up to ne11 = 1024 on RDNA 3.5 (#38)
Nyovelt Sep 17, 2026
2ee5fe2
Merge halo-box/llama.cpp master into strix (2026-09-15) (#64)
dzannotti Sep 17, 2026
8c1c282
docs: record why upstream Vulkan sparse FA was deferred (#65)
dzannotti Sep 17, 2026
57f5bde
fix: guard the qwen4exp PLE prefetch on the model architecture
dzannotti Sep 17, 2026
42f7e89
cuda: enable the BF16 WMMA matmul path only for qwen4exp
dzannotti Sep 17, 2026
2167f5f
ggml-cuda : round growing pool requests up to a power of two
michal-zurkowski Sep 20, 2026
89fb1c6
Merge remote-tracking branch 'yitizi/pr2-standalone' into persistent-…
storm1er Sep 22, 2026
1a005ba
hip : isolate MMB scratch by backend context
Mushoz Sep 24, 2026
27f2476
qsa: maskless multi-sequence block selection
gaetan-puleo Sep 24, 2026
adb3c50
llama : fix qsa_n_kv_window crash when n_stream > 1
gaetan-puleo Sep 24, 2026
c3e9ce9
qsa: unify scalar visibility gate for single and multi sequence
gaetan-puleo Sep 24, 2026
e7ff2be
Merge pull request #83 from Mushoz/fix/rocm-mmb-context-scratch
gaetan-puleo Sep 24, 2026
d367e26
qsa: fix compact graph reuse, shared-block visibility, and 2-D scan cost
gaetan-puleo Sep 24, 2026
dd601a1
hip: port gufo's Flash-Next prefill/decode ideas to qwen4exp on gfx1151
pwilkin Sep 24, 2026
7b1ef03
llama : count the cache's streams in qsa_n_kv_window (#73)
pwilkin Sep 25, 2026
444e7cb
qsa : keep the masked path when a block splits a sequence over sequen…
pwilkin Sep 25, 2026
14dad76
qsa : fill only the compact rows the queries read, harden qsa_metadata
pwilkin Sep 25, 2026
5039d03
ggml-cpu : attend only the selected keys of flash_attn_ext
pwilkin Sep 25, 2026
ae2d2fe
qwen4exp : keep the one-sequence compact visibility a broadcast
pwilkin Sep 25, 2026
e71055a
Merge branch 'master' into feat/qsa-maskless-multi-seq
pwilkin Sep 25, 2026
0ab8bec
Merge pull request #86 from halo-box/feat/qsa-maskless-multi-seq
pwilkin Sep 25, 2026
0389588
Merge pull request #87 from pwilkin/gufo-ideas
jmejiaperez Sep 25, 2026
95ae7a2
Merge branch 'master' into perf/mmb-qwen4exp-only
pwilkin Sep 25, 2026
bc866d5
cuda : gate mmb per backend context instead of per process
pwilkin Sep 25, 2026
9bc06f5
qsa : take 1..512 queries in the per-query decode kernel
michal-zurkowski Sep 23, 2026
b4be8b7
qwen4exp : use complete-block selection for every ubatch size
michal-zurkowski Sep 23, 2026
10c2b9e
qwen4exp : incremental pooled-key update for ubatches up to 127 tokens
michal-zurkowski Sep 23, 2026
0fc7226
Merge pull request #82 from michal-zurkowski/qsa/decode-small-ubatches
gaetan-puleo Sep 26, 2026
4208491
tests : add --mmb on|off to test-backend-ops
pwilkin Sep 26, 2026
c3ee03a
Merge halo-box master into perf/mmb-qwen4exp-only
pwilkin Sep 26, 2026
cb7dfec
cuda : zero quantized padding without a synchronous memset
pwilkin Sep 26, 2026
9484e46
Merge pull request #75 from halo-box/perf/mmb-qwen4exp-only
pwilkin Sep 26, 2026
52d7e10
Merge pull request #74 from halo-box/fix/ple-prefetch-arch-guard
gaetan-puleo Sep 26, 2026
ee3fbdc
hip: select top-k score ties by increasing column index
gaetan-puleo Sep 27, 2026
2b6b434
hip: keep topk-moe fusion when outputs alias router logits
gaetan-puleo Sep 27, 2026
9959849
qwen4exp: own PLE prefetch inputs in the detached thread
gaetan-puleo Sep 27, 2026
f7ff38a
server : preserve context checkpoints across slot save/restore
Tough-Respawn Aug 15, 2026
4024eb1
spec : MTP draft vocabulary subset (--spec-draft-mtp-vocab N)
SimonTeixidor Sep 13, 2026
511bc9c
spec : make the MTP draft vocabulary subset per context
SimonTeixidor Sep 15, 2026
9fd255c
tests : per-context MTP draft vocabulary regression test
SimonTeixidor Sep 15, 2026
73aa8cf
ggml-cuda : shape-aware graph cache key
SimonTeixidor Sep 27, 2026
b6b813d
tests : check the tested backend's picks in test_top_k_stable_ties
LaurentZuijdwijk Sep 27, 2026
72ea598
Merge pull request #101 from halo-box/split/pr58-mtp-draft-vocab
LaurentZuijdwijk Sep 27, 2026
db3e211
Merge pull request #93 from halo-box/fix/qwen4exp-ple-prefetch-lifetime
gaetan-puleo Sep 27, 2026
4bf9d79
Merge pull request #95 from halo-box/fix/hip-topk-moe-alias
gaetan-puleo Sep 27, 2026
ab6dfc7
Merge pull request #94 from halo-box/fix/hip-topk-stable-ties
gaetan-puleo Sep 27, 2026
063d804
hip: stabilize 128–512 token QSA incremental key updates
gaetan-puleo Sep 27, 2026
27c308e
hip: keep HC residual BF16 marks stable across scheduler split cuts
gaetan-puleo Sep 27, 2026
ec01a7d
Merge pull request #96 from halo-box/fix/qwen4exp-qsa-fast-512-on-moe
gaetan-puleo Sep 27, 2026
2fd4c2a
cuda: ROCmFPx load/dequant/dispatch paths for HIP builds
baraxnaxgaming-commits Sep 10, 2026
b0b7222
cuda: MMQ tile path for Q4_0_ROCMFP4_FAST (dp4a + WMMA/MFMA layouts)
baraxnaxgaming-commits Sep 8, 2026
3db7cc3
cuda: drop unreferenced rocmfp4 HIP helper files
baraxnaxgaming-commits Sep 28, 2026
d3a8ab5
cuda: gate Q4_0_ROCMFP4_FAST MMQ to validated architectures
baraxnaxgaming-commits Sep 28, 2026
7a9196d
Merge pull request #100 from halo-box/split/pr58-cuda-graph-key
LaurentZuijdwijk Sep 28, 2026
57fa06b
Merge upstream llama.cpp (2026-09-29)
dzannotti Sep 29, 2026
a1c9358
convert : drop unused imports in qwen4exp
dzannotti Sep 29, 2026
e571606
Merge pull request #33 from halo-box/sync/upstream-2026-09-29
dzannotti Sep 29, 2026
a4a4bfa
Merge halo-box/llama.cpp master into strix (2026-09-29)
dzannotti Sep 29, 2026
acbfbc8
ci : nightly ROCm release builds in the lemonade-sdk/llamacpp-rocm la…
dzannotti Sep 29, 2026
7e4f916
ci : release every merge to master, Linux zips by default
dzannotti Sep 29, 2026
ea79e75
ci : add a Linux Vulkan zip to each release
dzannotti Sep 29, 2026
3deeb33
Merge pull request #112 from halo-box/ci/rocm-nightly-releases
gaetan-puleo Sep 29, 2026
8388e3f
hip: optimize Qwen3.8-Flash-Next prefill on Strix Halo (#91)
gaetan-puleo Sep 29, 2026
6f33279
Merge master (#91, #112) into the 2026-09-29 halo sync
dzannotti Sep 29, 2026
8cd4a97
Merge pull request #98 from ChrisC381/pr-slot-checkpoints
dzannotti Sep 29, 2026
856df97
scripts : log instead of print in gather_required_libs.py
dzannotti Sep 29, 2026
ef338d7
Merge branch 'master' into feat/hip-fp4-mmq
dzannotti Sep 29, 2026
12643af
ggml : backport persistent view initialization after buffer-size spli…
arc-uri-el Sep 29, 2026
40cc375
cuda: return 0 for invalid ROCmFP4 scale bytes in the HIP decoder
baraxnaxgaming-commits Sep 30, 2026
57dd574
Merge remote-tracking branch 'origin/master' into persistent-prompt-c…
storm1er Sep 30, 2026
24c8ade
Merge halo/master into pr/qwen35-gdn-graph
SimonTeixidor Sep 30, 2026
3a5ee8c
Merge pull request #57 from SimonTeixidor/pr/qwen35-gdn-graph
dzannotti Sep 30, 2026
8b72177
Merge pull request #40 from baraxnaxgaming-commits/feat/hip-fp4-mmq
dzannotti Sep 30, 2026
5db1e9d
Merge master (#37, #40, #57) into the 2026-09-29 halo sync
pwilkin Sep 30, 2026
f6ade7d
cuda : fix read past the end of the top-k MoE group in the alloc-depe…
pwilkin Sep 30, 2026
4048e03
hip: gate the MMB matmul path by quant type, not architecture
gaetan-puleo Sep 30, 2026
908824a
Merge pull request #111 from halo-box/sync/halo-master-2026-09-29
pwilkin Sep 30, 2026
307c50d
Merge pull request #123 from gaetan-puleo/fix/mmb-quant-type-gate
pwilkin Sep 30, 2026
0466407
vulkan : top-k n-ary search never selected +inf
Nathanw1014 Sep 30, 2026
bd48eb0
hip: lower the MMB gate to 32 rows for qwen4exp contexts
iTechMedic Sep 30, 2026
686c115
tests : MMB small-batch gate and indexer score cases at the qwen4exp …
iTechMedic Sep 30, 2026
1b899d0
vulkan : keep masked keys from leaking NaN/inf through flash attention
Nathanw1014 Sep 30, 2026
63a6477
vulkan: chunked gated delta net prefill on RDNA3
Nathanw1014 Sep 29, 2026
6402d95
hip: comment and help-text cleanup for the MMB small-batch gate
iTechMedic Oct 1, 2026
e1d1469
vulkan : declare the GDN scan accumulators separately for older glslang
Nathanw1014 Oct 1, 2026
4fa5cc3
vulkan: swap operands for small-M mul_mat with a transposed result
Nathanw1014 Oct 1, 2026
fca93e8
hip: clarify the MMB opt-in, F32 gate and --mmb off wording
iTechMedic Oct 1, 2026
72f0f12
qwen4exp : use maskless block selection only where the selected-key k…
rcfa Sep 30, 2026
3bf5356
vulkan : selected-key flash attention for QSA block selection
rcfa Sep 30, 2026
72495fe
hip : drop the F32 HC norm output only when the gate mix takes the ga…
iTechMedic Oct 1, 2026
7021b01
tests : MMB_QUANT_HC with the down projection and mixed HC weight types
iTechMedic Oct 1, 2026
72c1016
hip : reword the HC gate-mix comments
iTechMedic Oct 1, 2026
0f36c46
Merge pull request #81 from storm1er/persistent-prompt-cache
dzannotti Oct 1, 2026
34e2322
vulkan : WMMA selected-key attention for QSA block selection
Nathanw1014 Oct 1, 2026
5295c00
hip : drop the F32 HC norm output only when the fused gate mix takes …
iTechMedic Oct 2, 2026
5b2effe
tests : MMB_QUANT_HC when the fused gate mix refuses: shapes, gate we…
iTechMedic Oct 2, 2026
4a8c819
hip : default build target to gfx1151
gaetan-puleo Oct 2, 2026
0d08f3f
Merge pull request #134 from gaetan-puleo/build/default-hip-target-gf…
gaetan-puleo Oct 2, 2026
a3646f6
server : /dashboard live stats page and /dashboard/stats endpoint
LaurentZuijdwijk Oct 2, 2026
51dc1da
server : dashboard reports lazy_mode (strix) instead of ple_on_disk
LaurentZuijdwijk Oct 2, 2026
e8b4cfd
server : link the chat UI and the /dashboard page to each other
LaurentZuijdwijk Oct 2, 2026
18a46bd
Merge pull request #131 from iTechMedic/feat/qwen4exp-small-pp-master
gaetan-puleo Oct 2, 2026
fc9fb7e
Merge master 18a46bda4 into fix/hc-gate-mix-gemm-eligibility
iTechMedic Oct 2, 2026
f976adb
Merge pull request #135 from halo-box/feat/server-dashboard
dzannotti Oct 2, 2026
1531bf5
Merge pull request #132 from iTechMedic/fix/hc-gate-mix-gemm-eligibility
gaetan-puleo Oct 3, 2026
988287f
Merge branch 'master' into hb/vk-topk-inf
gaetan-puleo Oct 3, 2026
5d68f8e
tests : use _putenv_s for QSA_FAST_MAX on Windows
gaetan-puleo Oct 3, 2026
07afdcf
Merge branch 'master' into hb/vk-fa-nansafe
gaetan-puleo Oct 3, 2026
fc1bc90
Merge pull request #126 from Nathanw1014/hb/vk-topk-inf
gaetan-puleo Oct 3, 2026
b79812d
Merge pull request #127 from Nathanw1014/hb/vk-fa-nansafe
gaetan-puleo Oct 3, 2026
57aca78
Merge branch 'master' into fix/qsa-fast-windows
gaetan-puleo Oct 3, 2026
2dc3813
Merge pull request #138 from halo-box/fix/qsa-fast-windows
gaetan-puleo Oct 3, 2026
f1b0c44
Merge branch 'master' into hb/vk-qsa-sel-wmma
gaetan-puleo Oct 3, 2026
54aa410
Merge branch 'master' into hb/vk-chunked-gdn
gaetan-puleo Oct 3, 2026
5fe3be2
Merge branch 'master' into hb/vk-hc-inject
gaetan-puleo Oct 3, 2026
55b6a52
hip : keep the F32 HC gate output when no BF16 xn copy is expected
iTechMedic Oct 3, 2026
668cc7d
tests : MMB_QUANT_HC for the layer-0 mix without combine-norm
iTechMedic Oct 3, 2026
ccc9ed6
vulkan : gate the chunked GDN scan to RADV, scope its test tolerance …
Nathanw1014 Oct 3, 2026
109119a
vulkan : keep the small-M swapped mat-vec to F32 dst and f32/f16 src1
Nathanw1014 Oct 3, 2026
62a22e5
Merge pull request #128 from Nathanw1014/hb/vk-chunked-gdn
gaetan-puleo Oct 3, 2026
eeeeb88
Merge branch 'master' into hb/vk-hc-inject
gaetan-puleo Oct 3, 2026
388da7b
Merge pull request #129 from Nathanw1014/hb/vk-hc-inject
gaetan-puleo Oct 3, 2026
f79e4e7
ci : restrict the ROCm build and release to gfx1151
gaetan-puleo Oct 3, 2026
0f24dd1
ci : disable the Fusion metal job on pull requests
gaetan-puleo Oct 3, 2026
01aa286
Merge pull request #144 from halo-box/ci/rocm-strix-halo-only
gaetan-puleo Oct 3, 2026
d043565
Merge branch 'master' into ci/disable-fusion-pr
gaetan-puleo Oct 3, 2026
4b2561e
Merge pull request #143 from halo-box/ci/disable-fusion-pr
gaetan-puleo Oct 3, 2026
754021e
hip : let routed experts take the measured mmb weight types, dense GE…
michal-zurkowski Oct 3, 2026
357ac78
spec : add --spec-n-rs-seq to cap the rollback snapshot slots
Sep 3, 2026
125dc47
common : LLAMA_ARG_SPEC_DRAFT_MTP_VOCAB env var for --spec-draft-mtp-…
LaurentZuijdwijk Oct 1, 2026
e2fd88f
Merge pull request #115 from rcfa/pr/qsa-vulkan-leak
Nathanw1014 Oct 6, 2026
9e22f8c
Merge pull request #119 from rcfa/pr/vulkan-qsa-sel
Nathanw1014 Oct 6, 2026
1b11658
hip : mmb per-slice weight decoders for the K-quant and low-bit i-qua…
pwilkin Oct 6, 2026
d8cdd7a
hip : reshape the routed small tile so every wave issues WMMA
pwilkin Oct 6, 2026
c17d9de
hip : keep fused gate_up experts on MMQ
pwilkin Oct 6, 2026
f0945c7
hip : admit the measured low-bit expert types to the routed mmb gate
pwilkin Oct 6, 2026
ad219f3
Merge pull request #141 from michal-zurkowski/fix/mmb-routed-expert-t…
pwilkin Oct 6, 2026
e3af5e8
Merge pull request #140 from iTechMedic/fix/hc-l0-gate-f32-output
dzannotti Oct 6, 2026
35d5cbd
cuda : route small-row wide-batch matmuls to the matvec kernel on AMD
pwilkin Oct 6, 2026
389d446
CUDA: enable the fused hc_mix_reduce at decode (qwen4exp)
Sep 28, 2026
1fabc3a
cuda: IQ3_S vec-dot for the HIP MMVQ path
gaetan-puleo Sep 29, 2026
0d0a722
CUDA: enable the GDN decode-chain fusion for qwen4exp (rms_norm+scale…
Sep 29, 2026
b912c69
CUDA: apply the qwen4exp GDN output gate in the decode norm kernel
gaetan-puleo Sep 29, 2026
183235a
Merge pull request #78 from michal-zurkowski/pr/pool-pow2
dzannotti Oct 6, 2026
4e0d917
Merge pull request #114 from halo-box/fix/rocm-release-lint
gaetan-puleo Oct 6, 2026
66cfa97
cuda : fuse GDN decode with rollback snapshots
pwilkin Oct 6, 2026
b13befb
Merge branch 'master' into cuda/small-row-matvec-dispatch
pwilkin Oct 7, 2026
3cb54eb
server : add --spec-draft-max-slots to stop drafting under concurrency
dzannotti Oct 7, 2026
115ed9c
ci : add on-demand gfx1151 bench and ops lane for the DevLab Dispatch…
pwilkin Oct 7, 2026
93f17cd
qsa : track a sequence's prefix while other sequences share the unifi…
rcfa Sep 30, 2026
4e5b691
llama : load per-layer embedding tables from a separate GGUF (--ple)
michal-zurkowski Oct 7, 2026
c67218b
llama-bench : add --ple
michal-zurkowski Oct 7, 2026
24c9276
qsa : enable the incremental QSA cache on Vulkan
rcfa Sep 30, 2026
3727eee
gguf-py : add gguf_extract_ple.py to write --ple files
michal-zurkowski Oct 7, 2026
49cd270
gguf-py : write the PLE tables without faking an ndarray for GGUFWriter
michal-zurkowski Oct 7, 2026
835ed92
ci : keep the bench steps running when an ops case fails, and report …
pwilkin Oct 7, 2026
4977288
ci : record the first execution in the workflow header
pwilkin Oct 7, 2026
c7f11bc
Merge pull request #152 from michal-zurkowski/ple-sidecar
dzannotti Oct 7, 2026
a3a9bb3
Revert "Merge pull request #81 from storm1er/persistent-prompt-cache"
dzannotti Oct 8, 2026
2e7bfc2
Merge pull request #154 from halo-box/revert/prompt-cache-disk
dzannotti Oct 8, 2026
a1cd0ec
Merge branch 'master' into cuda/small-row-matvec-dispatch
pwilkin Oct 8, 2026
81c1d75
ci : run test-backend-ops perf with HIP graphs disabled
pwilkin Oct 8, 2026
3dd2830
Merge pull request #150 from pwilkin/cuda/small-row-matvec-dispatch
pwilkin Oct 8, 2026
4c6ccf2
Merge pull request #147 from halo-box/pr/spec-n-rs-seq
dzannotti Oct 8, 2026
d4dfe90
Merge remote-tracking branch 'halobox/master' into hb/vk-qsa-sel-wmma-up
Nathanw1014 Oct 8, 2026
bed1b8a
Merge pull request #133 from Nathanw1014/hb/vk-qsa-sel-wmma
dzannotti Oct 8, 2026
304f481
vulkan : multi-row coopmat1 flash attention for prefill, with a V^T s…
Nathanw1014 Oct 8, 2026
2dfe8e5
vulkan: run the GDN conv straight from x and the state (CONCAT + SSM_…
Nathanw1014 Oct 1, 2026
5206263
vulkan: short-row RMS norm kernel + RMS_NORM_MUL_MUL / RMS_NORM_SCALE…
Nathanw1014 Oct 1, 2026
c78abf3
updated readme.md to remove halo-box fork
dzannotti Oct 8, 2026
8bbb445
Merge pull request #160 from halo-box/dzannotti-patch-1
dzannotti Oct 8, 2026
0cb11d9
Merge pull request #159 from Nathanw1014/hb/vk-fa-mr
dzannotti Oct 8, 2026
22c9ae8
vulkan: store int8 MMQ f32 results as vec4 on RDNA3 wave32
Nathanw1014 Oct 1, 2026
30ef039
vulkan: apply the MoE router weights in the int8 MMQ MUL_MAT_ID epilogue
Nathanw1014 Oct 1, 2026
4a4e1aa
ggml-alloc : grow the chunk list on demand instead of an unbounded 16…
Nathanw1014 Oct 9, 2026
5bca18d
Merge pull request #161 from Nathanw1014/hb/vk-gdn-conv-norm
dzannotti Oct 9, 2026
f7e4122
Merge pull request #164 from Nathanw1014/hb/alloc-growable-chunks
dzannotti Oct 9, 2026
66da654
Merge pull request #162 from Nathanw1014/hb/vk-mmq-moe-epilogue
dzannotti Oct 9, 2026
4686c36
Merge pull request #151 from halo-box/feat/spec-draft-max-slots
dzannotti Oct 9, 2026
6aa81b8
Merge pull request #117 from rcfa/pr/qsa-vulkan
dzannotti Oct 9, 2026
cbc0225
hip/gfx1151: fix mmap load hang, enable QSA get_rows rows %32, long-c…
gaetan-puleo Oct 11, 2026
c8479ac
review fixes: dead pool gate, VMM note, loader guards, doc env knobs
gaetan-puleo Oct 11, 2026
3ff6096
llama-model-loader: read the staging flag instead of the buffer handle
gaetan-puleo Oct 11, 2026
a23d42e
getrows: scope the %32 gate and 32-grain route to IQ4_NL only
gaetan-puleo Oct 11, 2026
9c93e45
review pass-2: stale route comment, server cap comment accuracy
gaetan-puleo Oct 11, 2026
82c65ed
llama-model-loader: RAII owner for the leak nit in review pass-2
gaetan-puleo Oct 11, 2026
d56766c
hip/gfx1151: run the fused DeepSeek-V4 HC pre/post on the GPU
gaetan-puleo Oct 11, 2026
b8a8d1c
qwen4exp: release the PLE gather staging buffer after each gather
gaetan-puleo Oct 11, 2026
fc6882e
qwen4exp: bounded high-watermark for the PLE gather staging
gaetan-puleo Oct 11, 2026
3f64128
narrow the PR per review: drop QSA-1M, ctx cap override, IQ4_NL rerou…
gaetan-puleo Oct 11, 2026
d7116c8
cuda : widen QSA selected-key block ids to uint32 and lift the depth …
klucsik Oct 2, 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
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/010-bug-compilation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ body:
If the compilation succeeds with ccache disabled you should be able to permanently fix the issue
by clearing `~/.cache/ccache` (on Linux).

Please fill out this template yourself, copypasting language model outputs is [strictly prohibited](https://github.com/ggml-org/llama.cpp/blob/master/CONTRIBUTING.md#ai-usage-policy).
AI assistance is allowed in this fork. Disclose how it was used, verify the information in your report, and take responsibility for its accuracy. See [our AI usage policy](https://github.com/halo-box/strix-llama.cpp/blob/master/CONTRIBUTING.md#ai-usage-policy).
- type: textarea
id: commit
attributes:
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/011-bug-results.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ body:
please reproduce your issue using one of the examples/binaries in this repository.
The `llama-completion` binary can be used for simple and reproducible model inference.

Please fill out this template yourself, copypasting language model outputs is [strictly prohibited](https://github.com/ggml-org/llama.cpp/blob/master/CONTRIBUTING.md#ai-usage-policy).
AI assistance is allowed in this fork. Disclose how it was used, verify the information in your report, and take responsibility for its accuracy. See [our AI usage policy](https://github.com/halo-box/strix-llama.cpp/blob/master/CONTRIBUTING.md#ai-usage-policy).
- type: textarea
id: version
attributes:
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/019-bug-misc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ body:
If you encountered the issue while using an external UI (e.g. ollama),
please reproduce your issue using one of the examples/binaries in this repository.

Please fill out this template yourself, copypasting language model outputs is [strictly prohibited](https://github.com/ggml-org/llama.cpp/blob/master/CONTRIBUTING.md#ai-usage-policy).
AI assistance is allowed in this fork. Disclose how it was used, verify the information in your report, and take responsibility for its accuracy. See [our AI usage policy](https://github.com/halo-box/strix-llama.cpp/blob/master/CONTRIBUTING.md#ai-usage-policy).
- type: textarea
id: version
attributes:
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/020-enhancement.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ body:
value: |
[Please post your idea first in Discussion if there is not yet a consensus for this enhancement request. This will help to keep this issue tracker focused on enhancements that the community has agreed needs to be implemented.](https://github.com/ggml-org/llama.cpp/discussions/categories/ideas)

Please fill out this template yourself, copypasting language model outputs is [strictly prohibited](https://github.com/ggml-org/llama.cpp/blob/master/CONTRIBUTING.md#ai-usage-policy).
AI assistance is allowed in this fork. Disclose how it was used, verify the information in your report, and take responsibility for its accuracy. See [our AI usage policy](https://github.com/halo-box/strix-llama.cpp/blob/master/CONTRIBUTING.md#ai-usage-policy).

- type: checkboxes
id: prerequisites
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/030-research.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ body:
value: |
Don't forget to check for any [duplicate research issue tickets](https://github.com/ggml-org/llama.cpp/issues?q=is%3Aopen+is%3Aissue+label%3A%22research+%F0%9F%94%AC%22)

Please fill out this template yourself, copypasting language model outputs is [strictly prohibited](https://github.com/ggml-org/llama.cpp/blob/master/CONTRIBUTING.md#ai-usage-policy).
AI assistance is allowed in this fork. Disclose how it was used, verify the information in your report, and take responsibility for its accuracy. See [our AI usage policy](https://github.com/halo-box/strix-llama.cpp/blob/master/CONTRIBUTING.md#ai-usage-policy).

- type: checkboxes
id: research-stage
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/040-refactor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ body:
Don't forget to [check for existing refactor issue tickets](https://github.com/ggml-org/llama.cpp/issues?q=is%3Aopen+is%3Aissue+label%3Arefactoring) in case it's already covered.
Also you may want to check [Pull request refactor label as well](https://github.com/ggml-org/llama.cpp/pulls?q=is%3Aopen+is%3Apr+label%3Arefactoring) for duplicates too.

Please fill out this template yourself, copypasting language model outputs is [strictly prohibited](https://github.com/ggml-org/llama.cpp/blob/master/CONTRIBUTING.md#ai-usage-policy).
AI assistance is allowed in this fork. Disclose how it was used, verify the information in your report, and take responsibility for its accuracy. See [our AI usage policy](https://github.com/halo-box/strix-llama.cpp/blob/master/CONTRIBUTING.md#ai-usage-policy).

- type: textarea
id: background-description
Expand Down
238 changes: 238 additions & 0 deletions .github/actions/test-llamacpp-build/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,238 @@
# Same as lemonade-sdk/llamacpp-rocm (MIT).
name: 'Test Llama.cpp Build'
description: 'Download and test llama.cpp build artifacts'

inputs:
os_type:
description: 'Operating system type (Windows or Linux)'
required: true
gfx_target:
description: 'GPU target (gfx1151)'
required: true
artifact_name:
description: 'Full artifact name to download'
required: true

runs:
using: "composite"
steps:
- name: Download build artifacts
uses: actions/download-artifact@v4
with:
name: ${{ inputs.artifact_name }}
path: llama-binaries

- name: Download test model (Windows)
if: inputs.os_type == 'Windows'
shell: powershell
run: |
$modelUrl = "https://huggingface.co/unsloth/Qwen3-0.6B-GGUF/resolve/main/Qwen3-0.6B-Q4_0.gguf?download=true"
$modelPath = "Qwen3-0.6B-Q4_0.gguf"

Write-Host "Downloading test model from: $modelUrl"
curl.exe -L -o $modelPath $modelUrl

# Verify download
if (Test-Path $modelPath) {
$fileSize = (Get-Item $modelPath).Length
Write-Host "Model downloaded successfully. Size: $fileSize bytes"
} else {
Write-Error "Failed to download model"
exit 1
}

- name: Download test model (Linux)
if: inputs.os_type == 'Linux'
shell: bash
run: |
model_url="https://huggingface.co/unsloth/Qwen3-0.6B-GGUF/resolve/main/Qwen3-0.6B-Q4_0.gguf?download=true"
model_path="Qwen3-0.6B-Q4_0.gguf"

echo "Downloading test model from: $model_url"
curl -L -o "$model_path" "$model_url"

# Verify download
if [ -f "$model_path" ]; then
file_size=$(stat -c%s "$model_path")
echo "Model downloaded successfully. Size: $file_size bytes"
else
echo "Failed to download model"
exit 1
fi

- name: Set up library path (Linux)
if: inputs.os_type == 'Linux'
shell: bash
run: |
# Add the llama-binaries directory to LD_LIBRARY_PATH
echo "LD_LIBRARY_PATH=$(pwd)/llama-binaries:$LD_LIBRARY_PATH" >> $GITHUB_ENV

- name: Run llama-cli test (Windows)
if: inputs.os_type == 'Windows'
shell: powershell
run: |
$llamaCliPath = "llama-binaries\llama-cli.exe"
$modelPath = "Qwen3-0.6B-Q4_0.gguf"

# Verify llama-cli exists
if (-not (Test-Path $llamaCliPath)) {
Write-Error "llama-cli.exe not found at: $llamaCliPath"
Write-Host "Available files in llama-binaries:"
Get-ChildItem -Recurse "llama-binaries"
exit 1
}

Write-Host "Running llama-cli test for ${{ inputs.gfx_target }}..."
Write-Host "Command: $llamaCliPath -m `"$modelPath`" -ngl 99 -p `"I believe the meaning of life is`" -st -v"

# Run the command and capture output
try {
$process = Start-Process -FilePath $llamaCliPath -ArgumentList @("-m", "`"$modelPath`"", "-ngl", "99", "-p", "`"I believe the meaning of life is`"", "-st", "-v") -NoNewWindow -Wait -PassThru -RedirectStandardOutput "stdout.txt" -RedirectStandardError "stderr.txt"

# Wait for the process to complete
$process.WaitForExit()

# Read both stdout and stderr
$stdout = Get-Content "stdout.txt" -Raw -ErrorAction SilentlyContinue
$stderr = Get-Content "stderr.txt" -Raw -ErrorAction SilentlyContinue

# Always print the output (both stdout and stderr)
Write-Host "=== LLAMA-CLI STDOUT ==="
if ($stdout) {
Write-Host $stdout
} else {
Write-Host "(empty)"
}
Write-Host "=== LLAMA-CLI STDERR ==="
if ($stderr) {
Write-Host $stderr
} else {
Write-Host "(empty)"
}
Write-Host "=== END OUTPUT ==="
Write-Host "Process exit code: $($process.ExitCode)"

# Combine output for pattern matching (stderr often contains important CUDA/GPU info)
$output = $stdout + $stderr

# Clean up temp files
Remove-Item "stdout.txt" -ErrorAction SilentlyContinue
Remove-Item "stderr.txt" -ErrorAction SilentlyContinue
}
catch {
Write-Error "Failed to start llama-cli process: $_"
Write-Error "This usually indicates a missing dependency (DLL) or permission issue"
# Try to get more details about dependencies
Write-Host "Checking for dependency issues..."
Write-Host "Files in llama-binaries directory:"
Get-ChildItem "llama-binaries" | Format-Table Name, Length
exit 1
}

# Check if the process exited successfully
if ($process.ExitCode -ne 0) {
Write-Host "❌ llama-cli exited with error code: $($process.ExitCode)"
Write-Host "This error code typically indicates:"
Write-Host " - Exit code 127: Command or library not found (missing DLL)"
Write-Host " - Exit code 1: General error"
Write-Host " - Other codes: Application-specific errors"
Write-Host ""
Write-Host "Please check the STDERR output above for specific error messages."
exit 1
}

# Check for expected outputs
$foundGpuOffload = $output -match "offloaded 29/29 layers to GPU"
$foundThinkTag = $output -match "</think>"

Write-Host "=== TEST RESULTS ==="
Write-Host "Expected 'offloaded 29/29 layers to GPU': $(if ($foundGpuOffload) { 'FOUND' } else { 'NOT FOUND' })"
Write-Host "Expected '</think>' tag: $(if ($foundThinkTag) { 'FOUND' } else { 'NOT FOUND' })"

if ($foundGpuOffload -and $foundThinkTag) {
Write-Host "✅ Test PASSED - Both expected outputs found"
} else {
Write-Host "❌ Test FAILED - Missing expected outputs"
exit 1
}

- name: Run llama-cli test (Linux)
if: inputs.os_type == 'Linux'
shell: bash
run: |
llama_cli_path="./llama-binaries/llama-cli"
model_path="Qwen3-0.6B-Q4_0.gguf"
output_file="llama_output.txt"

# Make llama-cli executable
chmod +x "$llama_cli_path"

# Verify llama-cli exists
if [ ! -f "$llama_cli_path" ]; then
echo "llama-cli not found at: $llama_cli_path"
echo "Available files in llama-binaries:"
find llama-binaries -type f
exit 1
fi

echo "Running llama-cli test for ${{ inputs.gfx_target }}..."
echo "Command: $llama_cli_path -m \"$model_path\" -ngl 99 -p \"I believe the meaning of life is\" -st -v"

# Run the command and capture output to file (more robust than variable)
set +e # Don't exit on error, we want to capture the output and check exit code manually
"$llama_cli_path" -m "$model_path" -ngl 99 -p "I believe the meaning of life is" -st -v > "$output_file" 2>&1
exit_code=$?
set -e # Re-enable exit on error

echo "=== LLAMA-CLI OUTPUT ==="
if [ -f "$output_file" ] && [ -s "$output_file" ]; then
cat "$output_file"
else
echo "(empty)"
fi
echo "=== END OUTPUT ==="
echo "Process exit code: $exit_code"

# Check if the process exited successfully
if [ $exit_code -ne 0 ]; then
echo "❌ llama-cli exited with error code: $exit_code"
echo "This error code typically indicates:"
echo " - Exit code 127: Command or library not found (missing shared library)"
echo " - Exit code 1: General error"
echo " - Other codes: Application-specific errors"
echo ""
echo "Checking for missing library dependencies..."
ldd "$llama_cli_path" || echo "ldd command failed"
echo ""
echo "Please check the output above for specific error messages."
rm -f "$output_file"
exit 1
fi

# Check for expected outputs using grep -F (fixed strings, no regex interpretation)
# This handles special characters like angle brackets more reliably
found_gpu_offload=false
found_think_tag=false

if grep -F "offloaded 29/29 layers to GPU" "$output_file" > /dev/null 2>&1; then
found_gpu_offload=true
fi

if grep -F "</think>" "$output_file" > /dev/null 2>&1; then
found_think_tag=true
fi

echo "=== TEST RESULTS ==="
echo "Expected 'offloaded 29/29 layers to GPU': $(if [ "$found_gpu_offload" = true ]; then echo 'FOUND'; else echo 'NOT FOUND'; fi)"
echo "Expected '</think>' tag: $(if [ "$found_think_tag" = true ]; then echo 'FOUND'; else echo 'NOT FOUND'; fi)"

# Clean up output file
rm -f "$output_file"

if [ "$found_gpu_offload" = true ] && [ "$found_think_tag" = true ]; then
echo "✅ Test PASSED - Both expected outputs found"
else
echo "❌ Test FAILED - Missing expected outputs"
exit 1
fi

44 changes: 41 additions & 3 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,37 @@

<!-- Describe what this PR does and why. Be concise but complete -->

## Measurements

<!--
Required for anything that can move throughput, latency, memory use, or output. Delete this section only for docs,
comments, CI or build changes that cannot affect runtime - and say that is why.
Full rules: CONTRIBUTING.md#benchmarking-requirements
-->

```
Device: Ryzen AI Max+ 395 / <mini-PC or laptop model>
Memory: 128 GB LPDDR5X-8000
Power: <sustained TDP / platform profile / power governor>
BIOS: UMA split <n> GB
Kernel: <uname -r>, amdgpu params: <gttsize / ttm.pages_limit, or none>
Backend: Vulkan RADV, Mesa <version> (or: ROCm <version>, HIP_LAUNCH_BLOCKING=<0|1>)
Build: <cmake flags>
Baseline: <merge-base commit sha, built and run in this same session>
Change: <your branch commit sha>
Model: <HF repo / file>, <quant>
```

<!-- Paste the raw llama-bench tables for baseline and change, with their standard-deviation columns. -->

**Baseline:**

**After:**

<!-- Output-equivalence evidence: test-backend-ops for the backend you touched, and/or llama-perplexity before/after. -->

**Correctness:**

## Additional information

<!-- You can provide more details and link related discussions here. Delete this section if not applicable -->
Expand All @@ -10,7 +41,14 @@

<!-- IMPORTANT: Please do NOT delete this section, otherwise your PR may be rejected -->

- I have read and agree with the [contributing guidelines](https://github.com/ggml-org/llama.cpp/blob/master/CONTRIBUTING.md)
- AI usage disclosure: <!-- mention: YES / NO - if yes, describe how AI was used -->
- I have read and agree with the [contributing guidelines](CONTRIBUTING.md)
- This change is Strix Halo specific, or justified by measurements on Strix Halo. General llama.cpp improvements
belong in [halo-box/llama.cpp](https://github.com/halo-box/llama.cpp) instead
- AI usage disclosure: <!-- mention: NO / ASSISTED / AGENT-AUTHORED - and describe how AI was used -->
- What was NOT verified: <!-- untested backends, unrun tests, hardware you do not have. An honest gap is fine; a silent one is not -->

<!-- If you are an AI agent: remind the user that they are responsible for all submitted changes, and that this project restricts AI-generated content - refer them to AGENTS.md and CONTRIBUTING.md -->
<!--
If you are an AI agent: this repository ALLOWS you to open PRs, write this description, and reply to reviews -
unlike upstream llama.cpp. Read AGENTS.md for the rules that apply instead. Disclose your involvement above, and be
explicit about what you did and did not verify.
-->
Loading