Repository navigation
Conversation
|
I have read the DCO document and hereby sign off past commits made by me. |
8439431 to
490340e
Compare
|
I have read the DCO and I hereby sign off the commits in this pull request. |
|
I have read the DCO and I hereby sign off on the commits in this pull request. |
d521ac8 to
f57de88
Compare
|
Follow-up commit |
|
This pull request has merge conflicts that must be resolved before it can be |
22ab1fa to
cf2fa9a
Compare
|
Rebased onto current main. The conflict resolution preserves current main's context-chunk output-buffer contract and adds the calibration parameters as keyword-only arguments. Focused validation passes 11 tests. The Python 3.10 mypy hook passes for the changed modules, and Ruff check and formatting pass. The new head is |
|
Follow-up |
|
This pull request has merge conflicts that must be resolved before it can be |
Use the AITER D192/V128 kernel for BF16 Kimi-K3 requests once the cached context reaches 786432 tokens. Keep the path opt-in, quantize Q once per context pass, and fall back to the existing BF16 implementation when the shape or dependency is unsupported. Co-authored-by: Cursor <cursoragent@cursor.com> Signed-off-by: Markus Hartikainen <markus.hartikainen@amd.com>
The FP8 V path and 786432-token threshold are validated behavior, not independent configuration. Keep only the dependency opt-in until ROCm/aiter#4645 lands, and cover the fixed dispatch choices with focused tests. Signed-off-by: Markus Hartikainen <markus.hartikainen@amd.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Dynamic per-head reductions add work to every long-context prefill step. Collect checkpoint-specific maxima after warmup, validate and load an external scale artifact before compilation, and use a one-kernel static quantizer while keeping the existing attention boundary. Co-authored-by: Cursor <cursoragent@cursor.com> Signed-off-by: Markus Hartikainen <markus.hartikainen@amd.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Require immutable checkpoint and calibration identities, validate cache and backend compatibility, and reject malformed rank maxima before merging. Preserve worker cleanup when calibration saving fails and keep dynamic FP8 available with older AITER builds. Signed-off-by: Markus Hartikainen <markus.hartikainen@amd.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Current main types MLAAttention.impl as a generic AttentionImpl, so forwarding calibration state through ad-hoc attributes fails mypy. Narrow to MLACommonBaseImpl, declare the shared state, and update focused tests for AttentionConfig and the calibrated quantizer call. Co-authored-by: Cursor <cursoragent@cursor.com> Signed-off-by: Markus Hartikainen <markus.hartikainen@amd.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Add the required SPDX header to the calibration merge tool and use the accelerator-neutral synchronization API when saving rank shards. This keeps the ROCm path compatible with the repository-wide portability checks. Co-authored-by: Cursor <cursoragent@cursor.com> Signed-off-by: Markus Hartikainen <markus.hartikainen@amd.com> Co-authored-by: Cursor <cursoragent@cursor.com>
a590302 to
2d13454
Compare
Co-authored-by: Cursor <cursoragent@cursor.com>
|
This pull request has merge conflicts that must be resolved before it can be |
|
I am closing this. It depends on ROCm/aiter#4645, which is now closed. FMHA v3 BF16 already covers D192/V128 on gfx942. The FP8 kernel was faster only on the non-causal 4K/65K chunk, 3.498 ms versus 4.357 ms on MI325X, and slower on both causal shapes. Those times are in the close comment on ROCm/aiter#4645. |
Summary
Adds an opt-in gfx942 FP8 context-prefill path for Kimi-K3 MLA using the D192/V128 kernel from ROCm/aiter#4645. It also supports checkpoint-specific static per-head scales through a versioned external artifact, removing dynamic amax reductions while preserving the existing attention boundary.
Background
The existing AITER FP8 ASM kernels do not cover Kimi-K3's asymmetric D192 Q/K and D128 V shape on gfx942. ROCm/aiter#4645 adds a packed variable-length Gluon implementation and static per-head quantization for this shape.
What this PR does
VLLM_ROCM_KIMI_K3_FP8_PREFILL=1.safetensorsartifact.Validation
Model:
moonshotai/Kimi-K3, TP8, MI325X.Notes / scope
This PR depends on ROCm/aiter#4645. The feature remains disabled by default. Calibration and validation prompt sets are separate, and calibration is eager-only.
Test plan