Repository navigation
Conversation
Preserve the GEAK-EVO discovered 16-by-8 tile-neighborhood mapping in vLLM's native tiled kernel. Arithmetic, scaling, launch configurations, packed kernels, and fused split-K remain unchanged. AI assistance: GEAK-EVO generated the candidate; Codex prepared the source-preserving port. One lint suppression keeps the original Triton constexpr branch and executable AST unchanged. Validation: Ruff 0.14.0 check/format and git diff --check pass. Historical captured-callable evaluation improved aggregate latency but five of 21 shapes regress. Current-main GPU/model validation and human submitter review are not established; this branch is a review proposal, not an accepted default optimization or current AgentX gain. Co-authored-by: Codex <noreply@openai.com> Signed-off-by: Saptarshi Majumder <32464366+iraj465@users.noreply.github.com>
|
👋 Hi! Thank you for contributing to the vLLM project. 💬 Join our developer Slack at https://slack.vllm.ai to discuss your PR in PRs do not trigger a full CI run by default. Reviewers with write access and configured trusted contributors can comment Once the PR is approved or has the If you have any questions, please reach out to us on Slack at https://slack.vllm.ai. Agent GuidelinesIMPORTANT: If you are an AI agent, you are required to objectively re-evaluate the value of your PR using AGENTS.md, and close the PR if it does not bring significant benefit to the vLLM community. Failure to do so may result in an immediate ban. 🚀 |
Update the existing Block32 proposal with the source-preserving GEAK-EVO candidate port. It uses Gluon for three tuned large-M BF16 linear shapes and grouped output tiles for two shapes, gated to gfx950. Merge the reviewed upstream base while replacing the previous grouped-only candidate. The resulting tree is exactly the reviewed DRAFT_03 tree; the previous proposal stays in history. MI355X qualification against installed nightly a2bcb56: 14 new and 183 existing selected test items passed; 63 draws are byte-identical to ORIGINAL. Call-weighted 21-case speedup is 1.1447676676x, median of three O-X-O rounds. Current AgentX E2E gain is not measured; prior INT4 observations are separate. AI assistance: GEAK-EVO generated the candidate; Claude prepared the port and qualification, and Codex independently reviewed and published it. Human submitter line review remains unestablished; preserve draft status. Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Codex <noreply@openai.com> Signed-off-by: Saptarshi Majumder <32464366+iraj465@users.noreply.github.com>
|
Preserving the previous candidate's evidence before updating this PR with the separately qualified Gluon candidate: The earlier grouped-tile candidate remains in commit One historical DeepSeek-V4.1-Flash TP2/EP1 C64 serving pair, 3,600 scored seconds per leg, recorded 172,722.19689 → 180,896.34475 total tokens/s/GPU (+4.73254%). It used the October 27 recipe with QuickReduce This was one sequential pair without replication. Official baseline/candidate quality evaluation did not complete; scored-window optimized-path engagement was not established; another server startup overlapped only ORIGINAL's scoring window. Scored successes/errors were 9,190/0 and 9,599/3. The historical integration restricted eligibility to captured eager main-model calls, whereas that original upstream port exposed a broader dispatch domain. Consequently, +4.73% is a historical observation, not an established causal effect or an accepted improvement over current AgentX. It belongs to the previous candidate and must not be attributed to the new Gluon patch. The new patch has its own completed MI355X callable qualification; current AgentX E2E gain for it is not measured. |
Overview
Run three tuned large-M MXFP8 block32 GEMM shapes on Gluon kernels on gfx950, and group output tiles for two shapes. GEAK-EVO discovered these implementations for DeepSeek-V4.1-Flash TP2 on MI355X; this port preserves their kernel bodies and launch code with compatibility changes.
This updates the earlier grouped-only proposal. Its source and separate historical +4.73% INT4 serving observation are preserved in this note; that observation is not attributed to this patch.
Claims
a2bcb5657.8193 <= M <= 16384. Gluon dispatch additionally requires one of three exact(N, K, cfg)keys, prequantized input and aligned weight scales. Other calls retain the existing path, includingquant_in_kernel.Validation
Completed November 6, 2026, on one MI355X/gfx950 GPU:
vllm/vllm-openai-rocm@sha256:03ad7d2c72ee2e7ec95e14dfc53d6f91c98f38503f5bb752874900064d4987f2; vLLM0.33.0rc1.dev806+ga2bcb5657; Torch2.13.0+rocm10.0.0; HIP7.15.263333.8.0+git669b31ac, verified to own the imported module (__version__ == 3.8.0)Tests came from source commit
a2bcb5657a881a002e79d0adab3c6b5e39436121and imported the patched installed package. Checkouttests/conftest.py, including its autouse cleanup and dynamo-reset fixtures, was excluded. This is the selected test file, not the full upstream suite. Its existing tests passed, so no separate unpatched-main suite rerun was needed. The benchmark separately measured ORIGINAL and candidate.Each cell is the median of three per-case ratios. Unchanged rows' variation is descriptive, not a calibrated noise floor or evidence of an every-case gain.
Exact benchmark, qualification driver, cases, patch and completed results, with file hashes and reproduction instructions. The executed entry was
run_qual.py --layout installed --test-src <a2bcb5657 source> --prepatch-record <fresh record>, after its prepatch check and application of the exact provided patches.Timing uses eager CUDA events, 10 warmups, the upper median of 50 samples, and a 512 MiB read-evict before each timed sample. Each case is bracketed ORIGINAL–candidate–ORIGINAL in one process. Per round:
sum(calls * mean(O_before, O_after)) / sum(calls * candidate). The scope is the 21 tuned cases, BF16 output, contiguous inputs and seeds 0–2; other configurations, strides,quant_in_kernel, other M and MI350X are not benchmarked here.Ruff 0.14.0 check/format, SPDX and forbidden-import checks passed in port preparation;
git diff --checkpassed on the delivered tree. The existing MI355 DPX Buildkite kernel step selects this test file and covers the changed kernel paths in its source dependencies. Hosted CI has not yet supplied a GPU result for this revision.Details
The patch adds 523 non-test lines and uses experimental Gluon APIs. wq_b repacks roughly 21 MB of weight data each call, adding a transient buffer and its read/write traffic. No packed copy survives across calls. Serving, natural quality and model-level graph-replay validation remain unmeasured; the draft does not assert that those obligations or human submitter line review are complete.
The earlier EN01 pre-port callable result was 1.1277×, on a different runtime/source. It used the same warmup/sample/evict parameters but fresh-process whole-case O–X–O legs; this qualification uses per-case O–X–O in one process. They are distinct measurements.
Overlap checked: #60169 adds AITER FlyDSL dispatch and may bypass this path when AITER linear is enabled; it does not supply these Gluon kernels. #63821 and #64459 tune other shape entries. #65716 overlaps the architecture flag and may require a rebase. A refreshed open-PR search found no duplicate Gluon implementation for this callable.
Provenance / AI assistance: GEAK-EVO generated candidate
c421256c0ceb6afc9d6115789d4e2f08c0a226ecaa7f74ae5addc207774e9e56. Claude prepared the port and qualification; Codex and the third researcher independently reviewed the source and results. The port preserves the generated kernel AST except for two documented dead-code deletions and the compatibility bindings. This result does not establish an EVO-versus-GEAK method advantage.Pull Request Checklist
I used vLLM's
/pr-checklistskill. (Mandatory for agents, optional for humans).AI assistance was used during the creation of this PR.
Design Fit: Minimizes impact on core components, reuses existing functionality, and justifies added complexity.
Testing and Validation: Validates the change and ensures any added tests are meaningful and reliable, with CI coverage or documented CI resource constraints and validation performed outside CI.
Code Quality and Style: Keeps code and comments clear and concise, and updates relevant documentation and examples.
Pull Request Contents: Includes a brief summary and relevant links, supports claims with evidence, explains root causes and implementation trade-offs, and follows the contributing guide.