-
Notifications
You must be signed in to change notification settings - Fork 4
feat(quant): complete op × quant-format matrix — 30 Track-1 formats across every weight-bearing kernel #250
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
ekryski
merged 66 commits into
0xClandestine:dev
from
thewafflehaus:ek/precision-support
Jun 3, 2026
Merged
Changes from 46 commits
Commits
Show all changes
66 commits
Select commit
Hold shift + click to select a range
950fe7e
feat(quant): block-scaled element + scale codecs (E2M1/E4M3/E5M2/E8M0)
ekryski 24001a8
feat(quant): host packer + dequant oracle for block-scaled formats
ekryski a59a297
feat(quant): mxfp4 block-scaled dequant kernel + GPU correctness test
ekryski 2814cf6
feat(quant): nvfp4 / mxfp8 (e4m3,e5m2) / nvfp8 dequant kernels + GPU …
ekryski ac2c549
feat(quant): mxfp4 dequantizing GEMV (Phase B core matmul) + GPU test
ekryski e8fd990
feat(quant): nvfp4 / mxfp8 (e4m3,e5m2) / nvfp8 dequantizing GEMVs + G…
ekryski f086388
feat(quant): block-scaled dequantizing GEMM (qmm) for all 5 formats +…
ekryski 7caeda4
feat(quant): block-scaled MoE gather-GEMM for all 5 formats + GPU tests
ekryski ecd70aa
feat(quant): mxfp4 simdgroup-matrix (MMA) dequant GEMM + GPU test
ekryski 164c5f9
feat(codegen): block-scaled decode DSL intrinsics (e2m1/e4m3/e5m2)
ekryski 13d4a0b
feat(quant): nvfp4 simdgroup-matrix (MMA) dequant GEMM + GPU test
ekryski 0224b15
feat(quant): mxfp8 (e4m3,e5m2) + nvfp8 simdgroup-matrix (MMA) GEMM + …
ekryski f8f5bbc
feat(bench): block-scaled qgemv precision benches (decode shape)
ekryski fbe3d7d
feat(bench): block-scaled qmm + MMA precision benches
ekryski 4e082dd
docs(spec): mark Appendix B block-scaled formats implemented
ekryski 94eecbc
feat(quant): unify framework for int8 + legacy fp4/fp8 (full-matrix f…
ekryski 73d29b3
feat(quant): block-scaled fused RMSNorm+GEMV for all 5 formats + GPU …
ekryski cf0d136
feat(quant): block-scaled fused gated-RMSNorm+GEMV for all 5 formats …
ekryski 2aab42f
feat(quant): block-scaled batched Q/K/V GEMV for all 5 formats + GPU …
ekryski 545a5b4
feat(quant): block-scaled batched-4 GEMV + batched Q/K/V GEMM, all 5 …
ekryski d92bef2
feat(quant): block-scaled batched-4 GEMM for all 5 formats + GPU tests
ekryski e91f913
feat(quant): block-scaled dequant-gather (embeddings) for all 5 forma…
ekryski 197f49c
feat(quant): block-scaled flash SDPA (quantized KV) for all 5 formats…
ekryski 81d407b
feat(quant): legacy fp4/fp8 + symmetric int8 qgemv (full-matrix 2nd a…
ekryski 7f8ad08
feat(quant): legacy fp4/fp8 + int8 on dequant / qmm / MoE gather + GP…
ekryski 0c5e9dd
feat(quant): legacy fp4/fp8 + int8 across all fused/attention/gather …
ekryski d3b1bab
feat(quant): legacy fp4/fp8 + int8 on qmm-MMA (simdgroup) — full matr…
ekryski fd3d18d
docs(spec): mark Appendix B full op×format matrix complete
ekryski f5578a9
feat(quant): block-scaled MPP qmm + expert-indexed GEMV (all 9 format…
ekryski 354e87d
feat(quant): block-scaled NAX qmm (all 9 formats) + GPU tests
ekryski 323d296
feat(quant): block-scaled MoE gather-qmm via MPP (all 9 formats) + GP…
ekryski ce54ffc
docs(spec): add MPP/NAX/MoE-MPP/expert-indexed block-scaled backends …
ekryski 3446dba
feat(quant): block-scaled MoE-MPP at bm8 + bm64 tiles (all 9 formats)…
ekryski e73580c
feat(quant): block-scaled quantized patch embedding (all 9 formats) +…
ekryski 325fbb1
docs(spec): bm8/bm64 + patch_embed coverage; classify ops where quant…
ekryski 887f67d
feat(quant): block-scaled quantized conv2d + depthwise + audio conv1d…
ekryski 0d33cfd
feat(quant): block-scaled quantized conv3d + dilated conv1d (all 9 fo…
ekryski 5db73eb
fix(test+quant): make the #[test_kernel] gate real, fix the bugs it e…
ekryski 0eddc27
docs(spec): record conv coverage + the test-gate linkage fix + fp4-MM…
ekryski a16f2f2
feat(quant): block-scaled cooperative conv2d/conv3d-MMA (all 9 format…
ekryski 32e39f9
docs(spec): conv MMA block-scaled done; only winograd deferred
ekryski 24274e6
fix(quant): correct fp4 simdgroup-MMA on f32 activations
ekryski 76e9e46
docs: document full quant-format × kernel matrix + int8 coverage
ekryski 0286bd5
feat(quant): block-scaled flash-SDPA KV for all production head dims
ekryski a92e75b
feat(quant): block-scaled simdgroup-MMA patch-embed (all 9 formats)
ekryski 299fbc9
docs: flash all-head-dim + MMA patch-embed coverage; affine int is cu…
ekryski 4b6c049
feat(quant): int8 block-scaled flash-SDPA KV at d96 via ragged tail b…
ekryski 0136fd9
docs(audit): trim fp_quantized_mma note to mechanism, not change history
ekryski 545dcc9
feat(quant): symmetric intN + MXINT format foundation (codec, packing…
ekryski 1d97af3
feat(quant): GPU dequant kernels for symmetric int2-6 + MXINT2-8
ekryski 10e8f02
feat(quant): integer formats for qgemv + qmm + embedding-gather (wave 1)
ekryski 000b38b
feat(quant): integer formats for fused-norm/patch-embed/batched qGEMV…
ekryski 9c790ab
feat(quant): integer formats for batched-qmm + conv families (wave 3)
ekryski 42345e1
feat(quant): integer formats for qmm MMA/MPP/NAX perf paths (wave 4)
ekryski 3568d5d
feat(quant): integer formats for patch-embed-MMA + conv2d/3d-MMA (wav…
ekryski 6e95863
feat(quant): integer formats for flash-SDPA + MoE gather + expert-ind…
ekryski d72b426
feat(quant): integer formats for MoE-MPP gather (bm16/bm8/bm64) (wave 7)
ekryski 21afae5
docs: reframe quant coverage to element/scale/zero-point axes; full i…
ekryski 3a94577
feat(quant): fp16 group-scale axis foundation + GPU dequant proof (Ph…
ekryski e16a2dd
feat(quant): fp16-scale formats for qgemv + qmm (Phase 2 wave 1)
ekryski 0e9622c
feat(quant): fp16-scale formats for gather/fused-norm/patch-embed/bat…
ekryski ff99511
feat(quant): fp16-scale formats for batched-qmm + conv families (Phas…
ekryski 3a236bc
feat(quant): fp16-scale formats for MMA/MPP/NAX perf paths (Phase 2 w…
ekryski 936d226
feat(quant): fp16-scale formats for MoE gather + expert-indexed + MoE…
ekryski 1e9eb2b
docs: fp16-scale axis implemented — quant matrix now 30 Track-1 formats
ekryski eb53781
feat(quant): fp16-scale formats for flash-SDPA — completes the fp16 a…
ekryski File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why can't these be expressed via DSL? Ideally we don't hardcode algos into the DSL, but rather provide all needed primitives to easily do whatever you need.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Anything can be expressed in the DSL. Just isn't right now and I didn't focus on optimizing as I'm still adding more kernels in this PR. Just got rebased after all the CI churn so I could ensure build is passing and see the clear diff.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would this be a good opurtunity for starting primitives file? Kernels that other kernels use?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fine with shipping this for now, can revisit ops later, lets just try to avoid new ops where DSL can easily express it.