bench(marlin): add tile-padding performance - #3046
Merged
Merged
Conversation
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.
Summary
This PR adds benchmark tooling only. It does not change kernels or runtime routing.
Benchmark results
Speedup is
fallback latency / padded Marlin latency, so values above 1.0 favor padded Marlin.The main GPTQ run used one Ampere sm80 GPU with 124 SMs, 4-bit symmetric GPTQ, group size 32,
K=4128,N=4096, ExLlama v2 as the correctness-checked fallback, FP16 and BF16, 10 warmups, 30 samples per round, 3 rounds, and 1,000 bootstrap samples.Additional boundary measurements showed the same mixed behavior:
K=256,N=200, versus AWQ Triton: LCB95 was 2.123x at M=1 and 1.676x at M=33.K=160,N=256, versus native AWQ GEMM: LCB95 was 0.932x at M=1 and 1.220x at M=33.K=160,N=256, versus ExLlama v2: LCB95 was 0.513x at M=1 and 0.554x at M=33.All reported candidates, raw padded kernel calls, and selected fallbacks passed their dense-reference accuracy checks. For the 4K GPTQ run, padded Marlin maximum absolute error was at most 0.00390625 for FP16 and 0.03125 for BF16.
These are synthetic single-projection measurements from one GPU configuration, not end-to-end model results. The performance run was captured on public commit
c50bcfedawith the exact benchmark script included by this PR.Current routing policy
The results do not support broad automatic routing for tile-misaligned shapes:
AUTOcontinues to use the existing fallback.The JSON report records these gates and leaves
promotion_readyfalse until cross-GPU evidence exists.Validation
Representative performance command: