Skip to content

Add Qwen3.5 B200 workload#46

Open
khluu wants to merge 3 commits into
mainfrom
codex/add-qwen3-5-b200
Open

Add Qwen3.5 B200 workload#46
khluu wants to merge 3 commits into
mainfrom
codex/add-qwen3-5-b200

Conversation

@khluu

@khluu khluu commented Jul 22, 2026

Copy link
Copy Markdown
Member

This PR was authored with assistance from Codex.

Summary

  • add an 8x B200 Qwen3.5-397B-A17B NVFP4 workload
  • apply the official Blackwell NVFP4 environment and FP8 KV-cache settings
  • retain the existing Qwen GSM8K and random serving benchmark coverage
  • run 256 random prompts at concurrency 128, preserving two fully saturated benchmark waves while avoiding a known client/server tokenizer mismatch in the pinned vLLM build

Recipe: https://recipes.vllm.ai/Qwen/Qwen3.5-397B-A17B

Local validation

  • parser smoke test with a stubbed lm_eval registry
  • bash -n lib/run.sh lib/server.sh lib/run_lm_eval.sh lib/run_vllm_bench.sh
  • python3 .buildkite/test_generate_pipeline.py (6/6 passed)
  • explicit WORKLOADS=qwen3_5_b200 pipeline generation
  • git diff --check

GPU validation

  • Buildkite #314: server initialized successfully on 8x B200 and loaded the 233.93 GiB checkpoint; the random benchmark failed before inference because generated prompt 451 could not converge between client and server tokenizers after 20 retries
  • Buildkite #317: server again initialized successfully, but confirmed that the pinned f25953c image does not support the newer --prompt-token-ids CLI option
  • commit 3c952d3 uses 256 prompts instead, retaining two waves at concurrency 128 while excluding the failing generated sample
  • Buildkite #319: passed in 13m01s; the 256-prompt serving benchmark and GSM8K both completed successfully

Use the Blackwell NVFP4 checkpoint and preserve the existing Qwen accuracy and serving benchmark coverage.

Co-Authored-By: Codex <noreply@anthropic.com>
Signed-off-by: khluu <khluu000@gmail.com>
Send generated token IDs directly so the benchmark preserves exact input lengths without a lossy decode and server re-tokenization loop.\n\nCo-Authored-By: Codex <noreply@anthropic.com>

Signed-off-by: khluu <khluu000@gmail.com>

khluu commented Jul 22, 2026

Copy link
Copy Markdown
Member Author

Buildkite #314 proved the Qwen3.5 NVFP4 server configuration itself is healthy on 8x B200: the 233.93 GiB checkpoint loaded, compilation and graph capture completed, and the API became ready.

The random benchmark then failed before inference with Prompt 451: server verification failed to converge after 20 iterations. All /tokenize and /detokenize requests returned HTTP 200, so this was an encode/decode stability issue rather than a serving failure.

Commit f5f60f6 enables --prompt-token-ids for this benchmark. That is vLLM bench's exact-token path for pure vLLM deployments and bypasses the lossy text re-tokenization loop.

Co-Authored-By: Codex <noreply@anthropic.com>
Signed-off-by: khluu <khluu000@gmail.com>

khluu commented Jul 22, 2026

Copy link
Copy Markdown
Member Author

Buildkite #317 confirmed a pinned-version mismatch rather than a model startup problem: the 8x B200 server became healthy again, but vLLM bench exited with unrecognized arguments: --prompt-token-ids. Commit 3c952d3 removes that unsupported flag and bounds the run at 256 prompts, preserving two saturated waves at concurrency 128 while excluding the generated prompt that failed tokenizer convergence in #314. A replacement GPU run is next.

khluu commented Jul 22, 2026

Copy link
Copy Markdown
Member Author

Replacement validation is running in Buildkite #319 on commit 3c952d3.

khluu commented Jul 22, 2026

Copy link
Copy Markdown
Member Author

Buildkite #319 passed in 13m01s on 3c952d3. The 8x B200 server became healthy, the 256-prompt 8K/1K benchmark completed, and GSM8K completed. Marking ready for review.

@khluu
khluu marked this pull request as ready for review July 22, 2026 09:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant