test(speculative): add EAGLE-3 fp8 draft convergence smoke for SM89+#3081
Open
khazic wants to merge 2 commits into
Open
test(speculative): add EAGLE-3 fp8 draft convergence smoke for SM89+#3081khazic wants to merge 2 commits into
khazic wants to merge 2 commits into
Conversation
Adds a turnkey harness to validate fp8 draft-training convergence on fp8-capable hardware (H100/Ada, sm_89+), the last open fp8 item in the speculative-decoding tracking issue (NVIDIA-NeMo#2958). The fp8 feature (NVIDIA-NeMo#2963) shipped with unit tests and an emulate path but was never run through a real fp8 GEMM on real silicon. The harness trains the same tiny EAGLE-3 draft twice from one seed and data order (real fp8 vs bf16 baseline) and asserts the fp8 loss is finite, decreases, and tracks bf16 within tolerance. It gates on compute capability >= 8.9 and refuses to certify on pre-Hopper GPUs. - examples/speculative/eagle3/qwen3_eagle3_fp8_smoke.yaml: shrunk config - tests/functional_tests/speculative/run_eagle3_fp8_convergence_smoke.sh Signed-off-by: khazic <khazzz1c@gmail.com>
18 tasks
Contributor
|
Ran the fp8 convergence smoke on local H100 hardware for PR #3081. Context:
Logs:
|
HuiyingLi
approved these changes
Jul 15, 2026
Signed-off-by: khazic <khazzz1c@gmail.com>
Contributor
Author
|
The five |
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.
What
Adds a turnkey harness to validate fp8 draft-training convergence on fp8-capable hardware (sm_89+), the last open fp8 item in the speculative-decoding tracking issue #2958.
The fp8 draft feature (#2963) shipped with unit tests and an
emulate: truenumerics path, but was never run through a real fp8 GEMM on real silicon, so issue #2958 still carries this under "Validation debt":Our fleet is A100/A800 (sm_80, pre-Hopper), which has no fp8 GEMM, so I cannot discharge this here. This PR prepares everything so someone with H100/Ada can run it in one command.
How it validates
run_eagle3_fp8_convergence_smoke.shtrains the same tiny EAGLE-3 draft twice from an identical seed and data order:fp8.emulate: false, real hardware GEMM,compile: on)fp8.enabled: false)then asserts:
(2) + (3) together are the convergence check the issue asks for.
It gates on compute capability >= 8.9 and refuses to certify on pre-Hopper GPUs (a pipeline-only escape hatch,
ALLOW_NON_SM89=1, prints loudly that it does not discharge the debt).Files
examples/speculative/eagle3/qwen3_eagle3_fp8_smoke.yaml: shrunk EAGLE-3 fp8 config (Qwen3-8B target, seq 1024, few dozen samples, a handful of steps) so one H100 reaches a step in a couple of minutes.tests/functional_tests/speculative/run_eagle3_fp8_convergence_smoke.sh: the harness (hardware gate, unit tests, data gen, two runs, comparison assertions).No production code changes: this is validation tooling only. The existing fp8 unit tests (
test_spec_draft_fp8_lora.py) are re-run as step 1 of the harness.Run it (H100/Ada node)
Ask
@HuiyingLi could you run this on an sm_89+ box (H100/H200/L40S/Ada) and paste the
### 5/5comparison block back here (and on #2958)? That records the real fp8 hardware validation and lets us tick the last fp8 box in the tracking issue. Knobs if useful:N_ROWS(sample count),TOL(fp8-vs-bf16 tolerance, default 0.15). Thanks!