Skip to content

[CI] Split (B200) LM Eval Humming Activation FP8/INT8 into per-model jobs - #58195

Closed
Thangnguyenvn98 wants to merge 1 commit into
vllm-project:mainfrom
Thangnguyenvn98:agent/lm-eval-humming-b200-act-split
Closed

Thangnguyenvn98 wants to merge 1 commit into
vllm-project:mainfrom
Thangnguyenvn98:agent/lm-eval-humming-b200-act-split

Conversation

@Thangnguyenvn98

@Thangnguyenvn98 Thangnguyenvn98 commented Sep 22, 2026 •

Copy link
Copy Markdown
Contributor

What

:nvidia: (B200) LM Eval Humming Activation FP8/INT8 TEMPORARY runs 16 GSM8K activation-quant configs (9 FP8 + 7 INT8) as two sequential pytest invocations in one optional pod, well over the 20-minute target. Following the per-model-job convention from #57965, this replaces it with five content-named jobs, one config list each, so the timeline and job names say exactly what ran.

Old

lm-eval-humming-b200-act   "(B200) LM Eval Humming Activation FP8/INT8 TEMPORARY"
├── config-act-fp8.txt   (9 configs)
└── config-act-int8.txt  (7 configs)

New

lm-eval-humming-b200-qwen35-35b          (B200) LM Eval Humming Qwen3.5 35B               config-b200-qwen35-35b.txt
lm-eval-humming-b200-qwen3-30b-act-fp8   (B200) LM Eval Humming Qwen3 30B Activation FP8  config-b200-qwen3-30b-act-fp8.txt
lm-eval-humming-b200-qwen3-30b-act-int8  (B200) LM Eval Humming Qwen3 30B Activation INT8 config-b200-qwen3-30b-act-int8.txt
lm-eval-humming-b200-gpt-oss             (B200) LM Eval Humming GPT-OSS                   config-b200-gpt-oss.txt
lm-eval-humming-b200-small-models        (B200) LM Eval Humming Small Models              config-b200-small-models.txt

Old → new key: lm-eval-humming-b200-act → the five lm-eval-humming-b200-* keys. config-act-fp8.txt and config-act-int8.txt stay unchanged, because the (H100) activation job still runs both. The 16 YAML configs are untouched; coverage is multiset-identical to the two lists on current main, including the AWQ config that runs in both the FP8 and INT8 commands today.

Expected runtime and overhead

Predictions from per-config log timestamps on a recent passing main run, as a share of the old job's pytest time:

job pytest (share of old) non-pytest overhead main overhead cause
Qwen3.5 35B ~32% <1m pod setup + checkout
Qwen3 30B Activation FP8 ~29% <1m pod setup + checkout
Qwen3 30B Activation INT8 ~18% <1m pod setup + checkout
GPT-OSS ~11% <1m pod setup + checkout
Small Models ~11% <1m pod setup + checkout
  • Slowest job stays under the 20-minute target; timeouts drop 50 → 30.
  • Aggregate: about +3 worker-minutes versus the unsharded job (four repeated pod setups), well inside the ≤20 budget.
  • The 30B family is the only one split further, along the activation-dtype axis the old label already used; together it would sit just under 20m with no headroom for new configs.

Notes

Verification done locally (no GPU)

  • check_test_tethering.py --all — pass.
  • yaml.safe_load on lm_eval.yaml; multiset coverage check against main; all referenced config YAMLs exist.
  • GPU validation via a scoped Buildkite build; results will be posted as a comment.

AI assistance disclosure

This change was prepared with AI assistance (Kimi Code, Claude Code). I reviewed the diff and the evidence cited above.

🤖 Generated with Claude Code

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This pull request is from a fork — automated review is disabled. A repository maintainer can comment @claude review to run a one-time review.

@mergify mergify Bot added the ci/build label Sep 22, 2026
@Thangnguyenvn98
Thangnguyenvn98 force-pushed the agent/lm-eval-humming-b200-act-split branch from d12c033 to 53ecaa4 Compare September 22, 2026 19:28
@Thangnguyenvn98 Thangnguyenvn98 changed the title [CI] Split (B200) LM Eval Humming Activation FP8/INT8 into named FP8/INT8 shard jobs [CI] Split (B200) LM Eval Humming Activation FP8/INT8 into per-model jobs Sep 22, 2026
@Thangnguyenvn98

Copy link
Copy Markdown
Contributor Author

Reworked to follow the #57965 convention: dropped the parallelism: 2 + indexed shard-list design in favor of five content-named single-replica jobs, one config list each. The old job and the now-orphaned config-act-int8.txt are removed; config-act-fp8.txt stays for the H100 job. Body updated with the new layout and predictions.

@mergify

mergify Bot commented Sep 23, 2026

Copy link
Copy Markdown
Contributor

This pull request has merge conflicts that must be resolved before it can be
merged. Please rebase the PR, @Thangnguyenvn98.

https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork

@mergify mergify Bot added the needs-rebase label Sep 23, 2026
…jobs

The single optional B200 activation job runs 16 GSM8K configs (9 FP8 + 7
INT8) as two sequential commands in one pod. Following the vllm-project#57965 convention, replace it with
five content-named single-replica jobs, one config list each: Qwen3.5 35B,
Qwen3 30B Activation FP8, Qwen3 30B Activation INT8, GPT-OSS, and Small
Models. Every job stays under the 20-minute target.

Same 16 configs, unchanged: the five new lists cover config-act-fp8.txt
and config-act-int8.txt on main exactly (multiset-equal, including the
AWQ config that runs in both lists today). Both shared lists stay, since
the (H100) activation job still runs them.

Per-config timings from recent main runs.

Co-authored-by: Kimi <noreply@moonshot.ai>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Thang Nguyen <thangnguyenvn647@gmail.com>
@Thangnguyenvn98

Copy link
Copy Markdown
Contributor Author

Validation

Scoped build 90987 on 49369030cf (rebased onto main after #46528), keys = the five new lm-eval-humming-b200-* jobs. Every job's log shows HEAD is now at 49369030cf.

job configs passed pytest (share of old) non-pytest overhead main overhead cause
Qwen3.5 35B 3 / 3 ~31% <1m pod setup + checkout
Qwen3 30B Activation FP8 5 / 5 ~29% <1m pod setup + checkout
Qwen3 30B Activation INT8 3 / 3 ~19% <1m pod setup + checkout
GPT-OSS 2 / 2 ~11% <1m pod setup + checkout
Small Models 3 / 3 ~11% <1m pod setup + checkout
  • Coverage: 16 passed, 0 skipped — the same 16 configs the unsharded job runs from config-act-fp8.txt + config-act-int8.txt on main.
  • Runtime: slowest job well under the 20-minute target, matching the prediction within a minute per job.
  • Cost: about +3.4 worker-minutes versus the unsharded baseline (predicted ~+2.9), inside the ≤20 budget. The increase is the four extra pod setups.
  • GPT-OSS's first attempt hit a Buildkite stack_error before it was assigned an agent (it never ran); the automatic retry passed. Not related to this change.

🤖 Generated with Claude Code

@Thangnguyenvn98

Copy link
Copy Markdown
Contributor Author

Closing in favor of automatic runtime sharding: CI now plans each step's shards when the pipeline is generated, from main's per-file timings (automatic_shard: true), so hand-split jobs are no longer the approach. This step isn't a fit for automatic sharding yet (see #61999 for why); if its runtime warrants it, it will be enrolled through automatic_shard once its commands allow.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant