Skip to content

chore: sync NVIDIA upstream main through 3554ffa7 - #44

Merged
cquil11 merged 21 commits into
mainfrom
chore/sync-upstream-20261005
Oct 5, 2026
Merged

cquil11 merged 21 commits into
mainfrom
chore/sync-upstream-20261005

Conversation

@cquil11

@cquil11 cquil11 commented Oct 5, 2026 •

Copy link
Copy Markdown

Merges NVIDIA/srt-slurm main through 3554ffa7 into the fork.

Conflicts:

  • core/schema.py: kept the fork's ClusterConfig.record_launch_plan next to upstream's new field comments, and added a field comment for OutputConfig.record_launch_plan.
  • docs/config-reference.md: took upstream's split recipe guide and moved the fork's record_launch_plan docs to its output section and to docs/cluster-config.md.
  • docs/schema-reference.md: regenerated.

Note

Low Risk
Mostly documentation, CI, and agent guidance; conflict resolution preserves existing record_launch_plan behavior with relocated prose only.

Overview
Syncs the fork with NVIDIA/srt-slurm through 3554ffa7, resolving merge conflicts while keeping fork-specific record_launch_plan documentation in the new doc layout (output in the Recipe Guide and Cluster Config).

Upstream brings a documentation restructure: the monolithic config reference splits into topic pages (benchmarks, engines, frontends, observability, cluster-config, etc.), ASCII architecture diagrams become Mermaid, and generated docs/cli-reference.md plus expanded srtctl schema-docs checks are enforced in CI. A new docs CI job runs mkdocs build --strict, and make docs mirrors that locally.

Agent and contributor guides now require <run_dir>/perf-analysis.md for every Slurm run analyzed, point DSight skills to .agents/skills/, and mandate slurm-job-sizing before job submission. Design guidance shifts from Protocol interfaces to Backend / Frontend ABCs with shared defaults—aligned with the codebase and reflected across CLAUDE.md, skills, and docs/architecture.md.

Reviewed by Cursor Bugbot for commit 3c0b8d4. Bugbot is set up for automated code reviews on this repo. Configure here.

ishandhanani and others added 21 commits September 29, 2026 22:39
… in place

`roles.<role>.restart` (never | on-failure | always, with max_restarts and an
exponential backoff) hands the role's workers to a WorkerSupervisor that ticks
inside the process monitor: an exited unit is relaunched on the same node, GPUs
and ports with a `_r<n>` step name, its crash log rotated aside, and the event
recorded in worker_restarts.json and the lockfile. The unit is one engine of a
worker, so a vLLM failover worker relaunches only the engine that died. A
relaunched unit gets the health gate's budget to come up again; exhausted
restarts hand the unit back to the role's `critical` flag.

Rebased onto main (098e15a) as one commit (was 19deaa4, fa4731e, 0128a92,
6144980, 16b71ff) with these adaptations: relaunch_endpoint asks the role's
own engine for its launch strategy (roles may run different engines);
worker_ready_probe goes through the frontend registry (frontend_name_branches
design rule); _start_workers groups only the role's processes; the
worker-restart example has a launch snapshot; test stubs carry
SrunConfig.kill_on_bad_exit.

Signed-off-by: Ishan Dhanani <ishandhanani@gmail.com>
main's check_failures catches an engine that dies behind a launcher whose srun
step stays up by scanning fatal_log_patterns; supervised processes skip that
scan, so under a restart policy such a worker was never relaunched and never
failed the job. The supervisor now runs the same scan on running steps, stops
the step, and takes the normal backoff and relaunch path; a marker counts as a
failure whatever exit code the stopped step returns.

Signed-off-by: Ishan Dhanani <ishandhanani@gmail.com>
…cache service

examples/features/sglang-weight-cache.yaml runs SGLang's weight cache daemon
(https://www.lmsys.org/blog/2026-08-21-sglang-fast-recovery/) as a generic
`placement.per: worker` service: the daemon keeps the model's tensors in HBM
and hands them to the engines over CUDA IPC, the engines start with
`--weight-cache-mode client` and skip the disk load, and `roles.<role>.restart`
relaunches a killed engine in place, where it maps the same tensors again.
Socket and ready paths go through SGLANG_WEIGHT_CACHE_*_TEMPLATE under /dev/shm
because SGLang's default /tmp is a per-container tmpfs under enroot.

docs/sglang-weight-cache.md covers what runs, what srtctl owns versus what the
recipe sets, how to test a relaunch, the sa-b200 numbers, and the limits
(SGLang v0.5.19+, IPC quantization allowlist, no speculative decoding, the
daemon argv written by hand, multi-node placeholders). No srtctl code change.

Signed-off-by: Ishan Dhanani <ishandhanani@gmail.com>
reconcile() runs inside the process-monitor tick under the supervisor lock, and await_stop() on a sibling or on a step that printed a fatal marker held that tick for up to terminate_timeout per step, so check_failures() did not run for any other process meanwhile. The supervisor now sends SIGTERM on one tick and settles the stop on later ones through ManagedProcess.advance_stop (SIGTERM srun, then SIGKILL, each past its own deadline); the relaunch waits until every old step of the endpoint has exited.

A fatal marker that arrives after max_restarts is recorded as the registry's failure (ProcessRegistry.record_failure): the supervisor consumed the log line and the step is still up, so check_failures would never see it otherwise.

Signed-off-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
将已解析的配方传入提交前检查,使启用 CPU 功耗采集的作业在 exporter 缺失、不可执行或架构不匹配时于 sbatch 前失败。

Signed-off-by: Wenyao Gao <wenyao.gao28@gmail.com>
* feat: add worker_srun_options for inference worker steps

Signed-off-by: Cam Quilici <cjquilici@gmail.com>

* refactor: scope worker srun options to each role

* docs: demonstrate role overrides of global srun options

---------

Signed-off-by: Cam Quilici <cjquilici@gmail.com>
Require per-run performance reports with latency, throughput, agentic benchmark
metrics and goal-linked diagnostic evidence. Keep concise agent instructions
and a compact guide in the documentation.

Signed-off-by: Yuewei Na <nv-yna@users.noreply.github.com>
Add compact guidance for short parallel debugging jobs and full-run allocation sizing from comparable history, with a two-hour fallback for a 60-minute measured run when no comparable history exists. Link the skill from the DSight guide and agent instructions.

Signed-off-by: Yuewei Na <nv-yna@users.noreply.github.com>
Signed-off-by: Yuewei Na <nv-yna@users.noreply.github.com>
Co-authored-by: Yuewei Na <nv-yna@users.noreply.github.com>
* refactor: replace protocols with abstract base classes

* refactor: remove legacy protocol name aliases
Keep restart configuration on RoleConfig and preserve current role, engine, migration, and launch behavior. Add schema, dry-run, and mock-orchestrator regression coverage.

Co-Authored-By: ishan <idhanani@nvidia.com>
feat(roles): per-role restart policy that relaunches an exited worker in place
Co-Authored-By: ishan <idhanani@nvidia.com>
Co-Authored-By: ishan <idhanani@nvidia.com>
…Schema, and MCP (NVIDIA#565)

* docs: make schema metadata the single field reference for docs, JSON Schema, and MCP

Co-Authored-By: ishan <idhanani@nvidia.com>

* test: follow the Protocol -> Backend rename from main

Co-Authored-By: ishan <idhanani@nvidia.com>

---------

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…N Schema, Mermaid diagrams, strict build on PRs (NVIDIA#566)

* docs: make schema metadata the single field reference for docs, JSON Schema, and MCP

Co-Authored-By: ishan <idhanani@nvidia.com>

* test: follow the Protocol -> Backend rename from main

Co-Authored-By: ishan <idhanani@nvidia.com>

* docs: split the recipe guide into topic pages, task-based nav, strict site build on PRs

- Split config-reference.md into cluster-config, engines, topology, frontends, benchmarks,
  observability and runtime-env pages; config-reference.md is now the recipe guide index.
- Reorganize mkdocs.yml nav by task; add the four orphaned pages; exclude AGENTS.md and design/.
- Fix broken links (repo files now link to GitHub) and anchors; CI runs mkdocs build --strict.
- srtctl schema-docs also writes docs/schema/{recipe,cluster}.schema.json and docs/cli-reference.md
  (rendered from the new side-effect-free build_parser()); cli.md drops its copied flag tables.
- MkDocs hook writes llms.txt from the nav on every build.
- tests/test_docs_yaml.py checks every docs YAML block against the JSON Schema; fixes the stale
  telemetry.provider example and JSON Schema shorthands for roles.*.restart and services[].metrics.
- MCP get_config_reference searches the topic pages; agent docs point at them.
- README.md is the GitHub landing page; docs/README.md is the site home.

Co-Authored-By: ishan <idhanani@nvidia.com>

* docs: draw every Markdown diagram in Mermaid; render it in MkDocs and test against hand-drawn arrows

Co-Authored-By: ishan <idhanani@nvidia.com>

* chore: add SPDX headers to the new docs generator and MkDocs hook

Co-Authored-By: ishan <idhanani@nvidia.com>

* chore: rerun CI against main

Co-Authored-By: ishan <idhanani@nvidia.com>

* fix(docs): render REMAINDER positionals the same on Python 3.10 and 3.12

Co-Authored-By: ishan <idhanani@nvidia.com>

---------

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-Authored-By: ishan <idhanani@nvidia.com>
Co-Authored-By: ishan <idhanani@nvidia.com>
docs(examples): SGLang fast engine recovery with a per-worker weight-cache service
Keep the fork's record_launch_plan docs on upstream's split config pages and regenerate the schema reference.

Signed-off-by: Cam Quilici <cjquilici@gmail.com>
@cquil11
cquil11 merged commit 6fdfb80 into main Oct 5, 2026
17 checks passed
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.

4 participants