feat(atom): add native ATOM and AToMesh support - #7
Conversation
|
Validated the writable lm-eval runtime fix on MI355X using the exact serving image The smoke created a job-local Python 3.10 venv with |
c87d7b3 to
aefb15c
Compare
b48f462 to
f1537b3
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
There are 2 total unresolved issues (including 1 from previous review).
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit f1537b3. Configure here.
|
ATOM port parity fix pushed in
Downstream validation: SemiAnalysisAI/InferenceX#2627. This retains the upstream June image, default RDMA transport and original engine/workload settings. Hardware results are pending. |
|
Fixed the native ATOMesh startup failure observed in InferenceX run 33665959215 (all four Slurm allocations failed before worker launch because the orchestrator attempted Dynamo-only NATS/etcd startup). Commit 527525d selects that infrastructure only for the Dynamo frontend. No engine arguments, image, workload, or KV transport settings changed. The new regression test failed before the fix for ATOMesh and passes afterward; it also confirms SGLang still skips the infrastructure and Dynamo still starts it. The relevant suite has 217 passing tests and 2 skipped. Three unrelated sa-bench shell-test failures and 19 existing test lint findings reproduce unchanged in a clean checkout of the pre-fix commit, so they are not claimed as passing. InferenceX PR #2627 now pins this runtime through shared PR #2542. Previously validated InferenceX PRs #2555 and #2630 retain their validated heads; fresh ATOM hardware validation is next. |
|
Fixed a confirmed ATOM model-identity mismatch in fa99473. The pinned ATOM server advertises its literal --model argument, but srt-slurm supplied the path basename to lm-eval. InferenceX run 33720270808 therefore requested DeepSeek-V4-Pro while AToMesh registered deepseek-ai/DeepSeek-V4-Pro, producing HTTP 503 before worker generation. The fix preserves the HF ID or container-visible local/staged model path for ATOM only; SGLang/vLLM naming is unchanged. Three new parameterized cases in the existing ATOM test file failed before the fix and pass afterward. All 420 focused configuration, evaluation, ATOM, frontend, Slurm, dry-run, health, and accelerator tests pass. Hardware revalidation remains pending; this is not a claim of a green full sweep. |
fa99473 to
81d4627
Compare
|
Rebased onto PR #1 at 93b854c; new head 81d4627. All existing ATOM/AToMesh fixes are retained, with the host-repair hook removed and native job waiting inherited from the base. 396 focused runtime/backend/router/config/CLI tests and 76 benchmark tests passed. The three known macOS profiling.sh shell-test failures reproduce before this rebase. No serving flags, model identity, KV transport, or benchmark workload were intentionally changed by this cleanup. Shared InferenceX adapter/entrypoint cleanup: SemiAnalysisAI/InferenceX#2542 Current ATOM hardware run remains untouched on old head 1fb90fea and runtime fa99473: |
|
Validation update for this stack:
The only runtime delta from 81d4627 to 33a3d81 is the scoped MoRI port-allocation fix from PR #1 and its regression coverage. 112 focused ATOM/vLLM/router/accelerator/dry-run tests passed. No engine patches, custom images, or graph-mode/config workarounds were used. The archived vLLM compatibility PR remains draft because of InferenceX's existing active-key changelog policy; no staging/reuse eligibility is claimed for that manual run. |
df0fe39 to
888080a
Compare
888080a to
ed45770
Compare

Summary
Add native ROCm ATOM workers and the official AToMesh router for aggregate and prefill/decode deployments, using srt-slurm's existing endpoint allocation, Slurm launch, and health/lifecycle machinery.
atom.entrypoints.openai_serverwith native CLI spelling, model identity, and role-aware Mooncake transfer configuration.atomeshwith the ATOM backend, static worker topology, and worker readiness gating. Infera is not part of this layer.Stack
GitHub native stack: #1 (shared AMD runtime) → #11 (vLLM MoRI-IO integration) → #7 (ATOM/AToMesh).
This PR is based on #11 so its review diff excludes the newly separated MoRI integration. ATOM uses Mooncake; it has no engine dependency on MoRI. The rebase preserves this PR's complete repository tree exactly relative to pre-split head
df0fe39f1db8d4c6022a6d6c93d27a1be9e90200.Validation
Note
Medium Risk
Touches job orchestration (infra gating, worker env, vLLM Router DP routing) and adds a new backend/frontend pair on the critical serving path; changes are well-tested but affect production cluster launches.
Overview
Adds ROCm ATOM as a first-class backend (
backend.type: atom) paired with the AToMesh static router (frontend.type: atomesh). srtctl launchesatom.entrypoints.openai_serverwith managed model/port/TP flags, role-specificatom_config, and Mooncake--kv-transfer-configfor P/D; AToMesh is wired like other static routers with--backend atomand per-worker/healthgating. Recipes are validated to keep each logical ATOM endpoint on a single Slurm node.vLLM Router behavior is corrected for multi-node hybrid-LB DP:
--intra-node-data-parallel-sizeis applied only when one base URL represents the full logical endpoint; otherwise each node-local pool is advertised unexpanded so global DP ranks are not remapped to 0..N-1. Health expectations and schema validation follow the same rule.Orchestration and eval improvements: NATS/etcd start only for
frontend.type: dynamo(includingatomeshamong static frontends); Tachometer binary checks are optional when collection is disabled; SGLang workers getSGLANG_DISAGGREGATION_FORCE_QUERY_PREFILL_DP_RANKwhen the SGLang router is DP-aware; post-eval lm-eval preservesbenchmark.envandbench.shuses a job-local writable venv/caches (optionalSRTCTL_LM_EVAL_RESULT_DIR).Reviewed by Cursor Bugbot for commit ed45770. Bugbot is set up for automated code reviews on this repo. Configure here.