Skip to content

test: validate four-model live GPU PD and numerical controls - #243

Closed
gspark-etri wants to merge 1 commit into
feat/241-pd-producer-cachefrom
exp/240-gpu-live-pd
Closed

gspark-etri wants to merge 1 commit into
feat/241-pd-producer-cachefrom
exp/240-gpu-live-pd

Conversation

@gspark-etri

Copy link
Copy Markdown
Collaborator

Background

Standalone GPU and offline KV handoff checks did not establish live GPU PD serving across four models, long inputs and concurrent clients. Producer cache/chunk defaults also differed from native execution.

Changes

Extend the existing HTTP validator with explicit decoder/producer devices, producer cache/chunk policy, actual producer metadata and remote-prefill counter checks. Add a trusted local HTTP-candidate option loaded before consumers. Preserve the failed import-order run and all original numerical divergences alongside successful controls.

Verification

Two A10080GB PCIe; Torch2.13.0+cu130, Transformers5.15.0. Core369c8ff, factory controlsfa753e1 (#242), HTTP9e442cd. Qwen3-0.6B,Qwen3-4B,KONI8B,Gemma3-1B;128/2048/8192input tokens,32outputs ignoringEOS,decode slots4,concurrency4/8; cancellation/disconnect/reuse and invalid-input checks.

  • All8 default BF16 native/PD lifecycle runs pass. Native concurrent equality48/48; PD35/48. Native/PD serial equality11/12. Each PD model executes21remote prefills.
  • FP32 controls for the three divergent models restore36/36concurrent and9/9native/PD serial equality.
  • BF16 producer-cache-off controls restore concurrent36/36, but only7/9native/PD serial comparisons. Matching producer/native chunk256 additionally restores Qwen0.6B and Gemma serial comparisons.
  • Public cache-off/chunk256 flags (feat: expose Torch PD producer cache and chunk settings #242), four-model real GPU PD:48/48concurrent,12/12native/PD serial,84remote prefills,0producer hits; all lifecycle checks pass.
  • The first standalone HTTP-candidate invocation exposed distinct StageError class identities; canonical loading before consumers fixes it. Final direct CLI Qwen0.6B run passes12/12concurrent and21remote prefills.
  • Ruff/diff checks and scoped sensitive scan pass. Detailed commands, JSON and failure evidence are in http_matrix/experiments and evidence240/evidence241.

Compatibility and limits

Stacked on #242. passed means lifecycle/count checks passed; token equality is reported independently. No general model-quality, speedup or compute/transfer-overlap claim. Timing observations are not an apples-to-apples performance comparison: default producer cache/chunk settings differ from native. Cross-host live RNGD-to-GPU and remaining broader-goal acceptance stay open. Four unchanged baseline sensitive-scan findings are outside this change.

Related Issue

Closes #240; uses #241/#242 and relates to #234.

gspark-etri added a commit that referenced this pull request Oct 30, 2026
…248, #263) (#286)

Add opt_prime/examples/pd/http_matrix with the reusable parts of the
HTTP work from #243, #252 and #264:

- validate.py: HTTP lifecycle validation through serve_batched.build
- benchmark.py, benchmark_server.py, atom_server.py: warm native/dp2/pd
  HTTP benchmark with token parity checks and external-server configs
- heldout_quality.py and frozen fixtures for four models (fixtures/)
- tests moved to opt_prime/tests so CI collects them

Adjustments: atom_server.py module overrides are optional (default to
the in-tree modules); heldout_quality.py reads .json.gz fixtures and
accepts --model for the request name; the Qwen3-0.6B fixture records
the Hub name instead of a local cache path (manifest hash updated;
input IDs and per-case hashes unchanged). Run outputs are git-ignored.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
@gspark-etri

Copy link
Copy Markdown
Collaborator Author

Landed on optimus-rm via #286. Closing; the branch is archived locally (experiment records and evidence included).

@gspark-etri gspark-etri closed this Nov 3, 2026
@gspark-etri
gspark-etri deleted the exp/240-gpu-live-pd branch November 3, 2026 17:05
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