Repository navigation
Conversation
Collaborator
|
Please don't merge this 🙏 , I am working on a way to create better merge request for merging upstream |
quantize : choose quant types to hit a bpw or file size target (re-open of #156)
3 of 5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Re-opens #155, which was reverted in #168 because agents stopped working on master after it merged. The content is unchanged; this PR is where the breakage gets found and fixed before it lands again.
halo-box/llama.cpp is archived, so this fork now syncs with ggml-org/llama.cpp directly. This PR does that in two real merges, per SYNC.md:
Afterwards strix is 0 commits behind upstream. Merge with "Create a merge commit", not squash, or the upstream history is lost and the next sync conflicts on every commit again.
Draft until two things are done (see the end of this description): the remaining backend-ops runs pass, and someone runs Qwen3.8-Flash on HIP and Vulkan.
Resolution rules
MTP follows upstream's design. Everywhere else, strix's side wins where the two collide, upstream's non-conflicting changes stay, and upstream fixes are ported into strix's code. Strix contributors: please check how your areas came out.
qwen4exp / QSA
qwen4exp.cppand itsmodels.hstruct: selected-key/WMMA block selection, incremental pooled keys, PLE prefetch and the HIP prefill work.llama-memory-hybrid-idxcarries both APIs: strix'sqsa_*for qwen4exp, and upstream's k-pool for the new GLM5Next model (GLM-5.3-Flash). strix's contextset_input_qsa, which upstream had deleted, is restored.MTP
graph_mtp. It builds the same draft as upstream's Qwen4Exp: add MTP ggml-org/llama.cpp#29761: eh_proj of [enorm(e); hnorm(h)], the draft's ownnextn.hc_head_*mixer, sparse QSA attention. It also loads shared sidecars that ship without embeddings or an LM head.Recurrent state (
llama-graph)Upstream's single fixed-size state gather (ggml-org#29856) is combined with strix's in-place gated delta net. In-place-capable consumers keep the full gather, and their state view sits next to the consumer whether or not the rows are in place. In-place and gathered ubatches then build the same graph. Without that, every switch between them reallocated the graph: a speed cost in normal use, and an abort under
GGML_SCHED_DEBUG_REALLOCin both upstream's shared-seq test and strix's seq-cp graph-reuse test.CUDA / HIP
get_J_maxhelper upstream removed.Vulkan
flash_attn.comp,flash_attn_cm2.comp,lightning_indexer.compandtopk_nary_search.comp, with upstream's FA shared-memory out-of-bounds fix (vulkan: fix Flash Attention shmem write out of bounds ggml-org/llama.cpp#29988) ported in.Allocation
alloc_buffer_nrefactor replaces strix's backport of the view-init fix. Its planner flushed on zero-size tensors, which left views of a tensor larger thanmax_sizeuninitialised. That is fixed here, caught by strix'stest_view_init_after_max_size_split, and is worth upstreaming.Server and tests
common_batch/llama_process.Known regression to port later
None open. ggml-org#29856 was reverted in the first merge commit and restored in the second, so review the two together.
Verified
test-jinja-py, because the image has nojinja2.test-recurrent-state-rollback-dsv4: passes on both backends here, but fails intermittently, as it does on pristine strix (3 of 4 runs).test-backend-opsagainst CPU on ROCm0: TOP_K, ARGSORT, RMS_NORM, GATED_DELTA_NET, PAD and ROLL have no failures.Before taking this out of draft
test-backend-opsruns pass: MUL_MAT, MUL_MAT_ID and FLASH_ATTN_EXT on ROCm0; TOP_K, FLASH_ATTN_EXT, LIGHTNING_INDEXER and GATED_DELTA_NET on Vulkan0.--spec-type draft-mtp, including a shared-sidecar MTP file), compared against current master for prompt-processing and token-generation speed and output. Nothing has been benchmarked yet.🤖 Generated with Claude Code