Repository navigation
Performance 1/7: shared engine, conductor and component changes #858
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
105 commits
Select commit
Hold shift + click to select a range
df1af58
Engine, conductor, API server and shared components for the overnight…
dghosef 0193c2c
Merge origin/main into perf/split-1-shared
dghosef 82b83b1
Conductor: count DP replica load per (node group, replica) (R1.4)
dghosef 3d3722a
Piecewise runner: apply one_row_per_step in its own bucket lookup (R1.5)
dghosef c485d3d
TokenStop: read the generated-token count without creating request st…
dghosef 18c5d21
TokenStepNode: declare token_stop in __init__ like every AR node (P3-2)
dghosef 213cbd8
Ragged attention: hold the custom op's managers weakly (P3-1)
dghosef 79aeb63
Docs: one_row_per_step, shard_heads and compile_op; warmup and switch…
dghosef 58b71cc
Sampler: loopback_input_ids moves from ARNodeSubmodule onto SamplerRe…
dghosef 5358123
Nits: router tie docstring, router test docstring, stray EOF blank li…
dghosef 7dc25f6
Video decode: one thread policy from the preprocess pool and CPU affi…
dghosef 5bd18a4
Whisper: declare token_stop in __init__ (P3-2)
dghosef bac7cda
Qwen3.5: decode loop-back goes through SamplerResource.loopback_input…
dghosef 26c62af
Canary, Canary-Qwen, Whisper: TokenStop reads the class loop and samp…
dghosef 6f2540e
Media limits: the video decode thread cap follows CPU affinity, not a…
dghosef e1ff4dc
Tests: the one-row piecewise runner captures batch size 1 only (R2.d)
dghosef 04af3ba
Merge origin/main into the perf stack's shared changes (#858)
dghosef 148a9c9
TokenStop: check_stop reads a row's first element, as check_stop_batc…
dghosef 72ce104
Waypoint harness: serve_rollout's parsers strip the internal id's #<n…
dghosef 377d21a
Warmup: repeat and concurrency share one positive-integer check
dghosef 3ac732b
Warmup: one id form, warmup-<spec>.<level>.<copy>, and the first fail…
dghosef 6d152f3
API server: api_switch_interval_s must be a positive number, checked …
dghosef 49c828e
docs/serving.rst: the warmup copy count is the largest node group's r…
dghosef fe1b879
Ragged attention: the mstar::ragged_attention op body calls the manag…
dghosef 41d22c2
Resources: every builder shards heads by EngineResourceInfo.head_shar…
dghosef c881c83
wav2vec2: the frame lengths go up through to_device_nonblocking
dghosef 37ad4f5
MoE: the blocks take a fused router through router=, not a flag of th…
dghosef 7c34610
Tests: the get_device compile check joins test_submodule_device_cache.py
dghosef d6656dd
Resources: EngineResourceInfo without head_shards shards over its joi…
dghosef a025ebd
Engine: TP ranks always split a resource's heads; nodes sharing it mu…
dghosef 2391eb1
Tests: test_startup_warmup.py says it covers the API server's process…
dghosef b14f452
HostRows.first_values: one row map, no in-order fast path beside it
dghosef bb5fd76
TokenStop: one per-row verdict holds the walk test; no check_walk fla…
dghosef a6a1de8
Qwen3.5: the decode stop is a TokenStop declaration, not a copy of it…
dghosef 0a79e0e
docs/serving.rst: api_switch_interval_s is re-measured once #849 lands
dghosef 36260eb
Tests: the Qwen3.5 loop-cap test checks the real LLM submodule's stop
dghosef 24a729f
Delete check_stop_batched's unread step_walk parameter (858 RB.1)
dghosef 06fd646
Tests: two blank lines before the new ragged-attention tests (858 RB.2)
dghosef 8f3de98
Tests: drop the last step_context the engine's stop check no longer r…
dghosef 7e291e6
Warmup: count data-parallel replicas from the worker graphs (merceod …
dghosef 636e2b8
Merge origin/main 73c6c17c4 into merge/858-main
dghosef d244382
858 I1.1: one WorkerGraph.replica_ranks for a worker graph's DP replicas
dghosef 212cc49
858 I1.2: serving docs count warmup copies from the worker graphs
dghosef 53a60d1
Warmup: a replicated entry runs one request alone first
dghosef 088a61d
merceod #858 row 15: one pinned H2D helper, capability-gated and list…
dghosef c540ded
858 R3.1: warmup runs its solo once per entry, only when replicas are…
dghosef 9a03b82
858 R3.2: the warmup solo logs its own outcome
dghosef 32842c9
858 R3.3: to_device_nonblocking says an already-pinned source is read…
dghosef 5058e89
Merge origin/main 94b038c26 into perf/split-1-shared
dghosef 38c186d
M1: copy an already-pinned host tensor to the device in place
dghosef 1c0569b
M2: size video decode threads from usable_cpus, apart from the torch …
dghosef 8b4a2eb
M3: test GLM-5.2's stop id at prefill
dghosef 591bad1
M4: declare a prefill-sampled first token on TokenStop
dghosef c84d883
M1: model the mocked host tensor in the pin test as pageable
dghosef b8a3075
N1: copy a pinned source in place only when it is contiguous
dghosef f22ef3f
N2: read usable_cpus once per process for video decode threads
dghosef 8fe61cd
N3: say a generated_key counter must count the prefill token itself
dghosef 731bd27
N4: the engine drops the closing token of a reply that ended at prefill
dghosef 58bad2e
N4: say prefill_walks needs the loop to emit the token as buffer
dghosef d7ea416
Merge remote-tracking branch 'origin/main' into maint/858
dghosef 0269eec
LingBot-World: call the ragged resource through resource.run, as the …
dghosef 01d9f69
test_subgroup_creation_order: the stub worker graph carries replica_r…
dghosef 71d722c
test_withheld_outputs: the fake check_stop_batched drops step_walk, a…
dghosef fd7211d
Merge origin/main into perf/split-1-shared
dghosef 97dc8b7
TokenStop: leave the token budget to the loop cap
dghosef 21a8d03
TokenStop: withhold a prefill-ended reply's closing token
dghosef 68cd243
Warmup docs: the solo run happens only when replicas are uneven
dghosef bc84a25
video_decode_threads: the cap of 8 is per decode
dghosef d913754
Ragged attention: name each manager uniquely in the op registry
dghosef 844266e
Warmup: a replica count that fails leaves warmup at one copy
dghosef 92ff0c9
one_row_per_step docs: what declare_step receives
dghosef 1d6f481
Docs: MSTAR_PY_SWITCH_INTERVAL_SEC gets its worker-scheduling row
dghosef 6f74e95
Comments: the decode budget is the loop cap, not check_stop
dghosef f3de748
Docs: a prefill_walks token counts toward the budget, so the loop cap…
dghosef 5286136
Merge origin/main into perf/split-1-shared
dghosef 6e67694
Docs: say which MSTAR_PY_SWITCH_INTERVAL_SEC values the worker ignores
dghosef bcd00f6
Docs: point api_switch_interval_s to the workers' switch-interval var…
dghosef ad5f644
Merge origin/main into perf/split-1-shared
dghosef ed31270
Ragged attention: update a test docstring for unique op keys
dghosef da5ef36
Merge origin/main into perf/split-1-shared
dghosef 509189b
Comments and docs: a shard_over_sp=False ragged resource splits its h…
dghosef 5514453
Head sharding: one per-resource switch, shard_over_sp; NodeSubmodule.…
dghosef d28d18d
Merge origin/main into perf/split-1-shared
dghosef a908f31
Merge origin/main into perf/split-1-shared
dghosef 50401ad
Name the TP x SP head-sharding test for the kinds it covers; reflow a…
dghosef 78c53ac
Merge origin/main into perf/split-1-shared
dghosef 02c4517
Say the api_switch_interval_s numbers predate #849's output-path rewrite
dghosef 82d9fb5
Drop the head-sharding paragraph from the submodule attributes section
dghosef ac2cd28
Drop the TP x SP head-sharding test that main's sizing already passes
dghosef bb15c48
Drop the shard_over_sp sizing test, which main's sizing already passes
dghosef 0cc8902
Merge origin/main into perf/split-1-shared
dghosef bbe03b6
Conductor: build its instance table from WorkerGraph.replica_ranks
dghosef 0e495ae
Merge origin/main (bb0e0a8d7: #962, #941, #944) into perf/split-1-shared
dghosef 7ee5eb4
Merge origin/main (c96e02b7d: #968, #856, #778, #876) into perf/split…
dghosef 15f8249
Merge origin/main (9f84f18cd: #965) into perf/split-1-shared
dghosef 42bb972
Merge main (c829a71cc) into perf/split-1-shared
dghosef bff76e2
Merge main (ad0a21eca) into perf/split-1-shared
dghosef 7de9cc6
Pin video decode threads to the CPUs the plan leaves under pinning
dghosef bffb067
API server: drop the api_switch_interval_s knob
dghosef 641e06c
Tests: the TP2 publish test's KV managers hold one rank's head
dghosef a25694a
API server: drop warmup_requests' concurrency option
dghosef 34fbf94
Merge remote-tracking branch 'origin/main' into land/858
dghosef 03f7758
Merge origin/main (165b403b7: #794, #950) into perf/split-1-shared
dghosef a4b5fca
Tests: Canary's decode cap leaves the prefill's token in the budget
dghosef f991121
Docs: last_prefill_flag for a prompt prefilled over several passes; G…
dghosef File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This fixes
_dit_step_timestamps, butrollout._dit_schedule(called right before it in_concurrent_server_metrics) still matches ids by exact membership, sorows_per_step_histogramcomes out empty whilestep_spacing_msis real. #860 fixes the serve_rollout parsers; that hunk belongs next to this one.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done -
72ce1045e