Repository navigation
Conversation
|
No actionable comments were generated in the recent review. WalkthroughThe replay validator now permits multi-worker AgentX G2 host-offload configurations while preserving role restrictions. The Router validates lower-tier KV residency and uses visible events for placement. Tests cover multi-replica placement, event timing, cache identity, and deterministic reports. The CLI reference documents these behaviors. ChangesAgentX G2 replay
Estimated code review effort: 4 (Complex) | ~45 minutes Merge Risk:
|
✅ Dynamo PR CI passed — run 41561567612 (attempt 1) on
|
…SIM-1893, AISIM-1894] Lift the one-worker/1P1D limit on offline AgentX G2. The KV router already places requests from each worker's native HostPinned events; AgentX now uses that path on any number of aggregated, prefill, or decode workers. vLLM, attention DP=1, static pools, no speculation, and no G3 remain required. The offline router mirrors lower-tier residency per rank and rejects a G2 store for an already-resident block or a removal of a block it never stored, so a duplicated, lost, or reordered event fails replay instead of silently diverging the router view from the engine. Tests cover visibility-gated placement (including the same-timestamp and lag boundary), private and cluster-shared pools, 2P2D prefill routing, router/engine reuse reconciliation at each admission, recycled snapshot play isolation, and deterministic reruns. They also pin the cluster-shared G2 contract: shared hits stay within the play that stored them; concurrent consumers on different replicas restore the same entries with residency counted once and the pool's H2D cap split evenly and deterministically; residency evicted while a request is queued falls back to recompute; and switching to dp_rank_local reproduces the private-G2 result exactly. Docs describe ownership, discovery, visibility, eviction, contention, and fallback semantics. Signed-off-by: Harry Lee <harrli@nvidia.com>
e0d7c38 to
b19a33a
Compare
Summary
Resolves AISIM-1893 and AISIM-1894 (Dynamo side). AISIM-1894's shared-G2 qualification was folded in from #17879, since it only adds tests and docs for the behavior enabled here. AISimulate counterpart: ai-dynamo/aisimulate#688.
validate_agentic_host_offload()limited offline AgentX G2 to one aggregated worker or 1P1D. This PR reuses the existing multi-worker G2 andHostPinnedevent routing, with no AgentX-specific residency path:kv_event_lag_msdelays batches FIFO, so these cases mean a duplicated, lost, or reordered event. Replay now fails instead of letting the router view drift from the engine. All 311 existing mocker tests pass with this check enabled.t + lag.Tests (deterministic,
CanonicalV1)HostPinnedstore moves placement only once it is visible. Arrivals at 5 and 14.999 ms place without it; arrivals at 15 and 50 ms place on its owner.resumefollows load and recomputes.resumemoves to the private G2 owner and restores 8 tokens.cluster_sharedpool is visible to every replica, and load picks among them.host_cache_hit_weight=1.0.Shared-G2 qualification (AISIM-1894)
cache_id, and two lanes occupy exactly 2× the single-lane pool residency.g2_domainsmatches the solo run, and reruns are identical.cluster_sharedconfig withscope=dp_rank_localreproduces the private baseline for 1 and 2 workers.The reference doc also describes the shared-pool contract: ownership, discovery, visibility, eviction, contention, stale-entry fallback, membership, and disable semantics. Worker failure and ownership handoff are outside the boundary because AgentX G2 requires static pools.
Not in this PR
Dynamo's Python replay API goes through AISimulate's sweeper gate, which still enforces the old limit until a nightly with ai-dynamo/aisimulate#688 is published. A follow-up will bump the nightly and add a Python multi-replica AgentX test.
Validation
cargo test -p dynamo-mocker --libpasses (311 before the shared-G2 tests;agentic_multi_replica: 9 passed).cargo clippy -p dynamo-mocker --all-targets -D warningsis clean, and pre-commit passes.