Conversation
Author
|
/tag-run-ci-label |
5 tasks
4 tasks
Restore the HCU Stage B registration dropped during the upstream sync. The required workflow still includes this file, so its missing registration aborted all four partitions before test execution. Verified all 46 required files resolve across the four partitions with run_suite.py --list.
Install the shared pinned sgl-eval CLI in regular and image/wheel modes. Derive FP8 reference scales and one-ULP rounding bounds from the output format. Add the config_value interface to the serving-chat mock. Validated FP8 numeric cases on gfx936, 17 chat tests (one existing skip), installer branch/failure behavior, and actual pinned CLI installation in a disposable container.
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.
Motivation
DeepSeek-V4 Flash with DSpark on HCU could not use several optimized kernels
without broad global switches or a matching recent
sgl-kernelwheel:DsparkDraftSampleronly admittedVanillaMarkovto the fused greedyproposal path.
DSparkV4MarkovHeadhas the same vanilla Markov recurrence,but is a separate class and therefore materialized full-vocabulary bias and
corrected-logit tensors on every proposal step.
torch.ops.sgl_kernel.deepseek_v4_topk_transform_512, while their LightOppackage exposes the ABI-compatible fused transform.
SGLANG_OPT_BF16_FP32_GEMM_ALGOselector could not selectthe already-supported AITER path independently of the broad
SGLANG_USE_AITERswitch.The result was avoidable decode latency on BW1000, especially at batch size 1.
Modifications
concrete
VanillaMarkovclass.sample_block_greedy_fusedforDSparkV4MarkovHeadusing theexisting
MarkovGreedyStepkernel. It crops padded vocabulary columns andretains the eager path for genuinely TP-sharded Markov heads.
LightOp's ABI-compatible fused top-k/page-table transform when that op is not
present.
SGLANG_OPT_BF16_FP32_GEMM_ALGO=aiteras a narrow DSV4 compressorswitch.
SGLANG_USE_AITER=truekeeps its existing behavior.VanillaMarkovhead can opt into the fusedgreedy interface without entering the eager fallback.
All performance-sensitive choices remain opt-in except the missing-AOT-op
fallback. The default compressor algorithm remains
cublas.Accuracy Tests
Test system:
gfx936), DTK 26.04, PyTorch 2.10DeepSeek-V4-Flash-0731-W4A8-INT4-Channel-Attn-W8A8-INT8-ChannelGSM8K, five-shot Chat API, 50 examples, 8 client threads, max 1024 output
tokens:
The fixed long-form Chinese prompt also produced coherent, non-repeating
technical prose for exactly 1024 output tokens.
Precision note: AITER's tuned BF16 GEMM returns BF16-rounded values before this
function converts the tensor back to FP32. For M=6, N=1024, K=4096, comparison
against
torch.mm(..., out_dtype=torch.float32)measured max absolute error0.498169 and mean absolute error 0.070678. For that reason the AITER algorithm
is explicitly opt-in; users needing the original FP32-accumulation path keep
the default
cublassetting.The fused Markov kernel can select a different draft token on rare near ties
because it accumulates in FP32 instead of reproducing eager BF16 intermediate
rounding. These are proposals only; target verification still controls emitted
tokens.
Speed Tests and Profiling
Single-request OpenAI Chat API benchmark with a fixed realistic technical
writing prompt,
temperature=0,ignore_eos=true, and exactly 1024 generatedtokens:
The W4A8 MoE, communication settings, prompt, and other service configuration
were held constant for this A/B comparison.
Kernel measurements on one BW1000:
The top-k parity sweep covered mixed sequence lengths and confirmed that this
image had no DSV4 sgl-kernel AOT op, so the LightOp fallback was exercised
rather than merely imported.
Tests
pytest -q test/registered/spec/dspark/test_dspark_draft_path_default.py::TestDsparkFusedGreedyRouting::test_custom_markov_head_can_provide_fused_greedy_sampler1 passedcropping and TP-sharded fallback: passed.
4096: passed.
SGLANG_OPT_BF16_FP32_GEMM_ALGO=aiterrouting and outputshape/dtype test: passed.
compileall, andgit diff --check: passed.Checklist
CI States
Latest PR Test (Base): ❌ Missing
run-cilabel -- add it to run CI tests.Latest PR Test (Extra): ❌ Blocked --
run-ciis required first.