Skip to content

Add Maestro framework as a TorchBench user benchmark - #2715

Closed
x41lakazam wants to merge 8 commits into
pytorch:mainfrom
x41lakazam:maestro-framework
Closed

x41lakazam wants to merge 8 commits into
pytorch:mainfrom
x41lakazam:maestro-framework

Conversation

@x41lakazam

Copy link
Copy Markdown

Summary

  • Adds the Maestro orchestration framework under userbenchmark/maestro.
  • Includes Torch NCCL CUDA blocks, profiling backends, config presets, and workload examples.
  • Integrates Maestro as a TorchBench user benchmark and adds development docs.

Test plan

  • python run_benchmark.py maestro runs with an example config
  • Docker build succeeds

🤖 Generated with Claude Code

x41lakazam and others added 8 commits August 26, 2026 23:38
…indings pin

pip install --no-build-isolation skips installing [build-system].requires,
so hatchling (maestro's build backend) was never present and the build
failed with BackendUnavailable. Also override the base image's
PIP_CONSTRAINT pin on cuda-bindings/cuda-python for the maestro install,
since cupti-python needs newer versions than that pin allows.

Verified by building deploy/Dockerfile end to end against
nvcr.io/nvidia/pytorch:25.06-py3 on swx-ucc-build01; pip install completes
and `pip show maestro` confirms a clean install.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Brings userbenchmark/maestro/maestro up to date with the nccl-multi-test
maestro engine, now made sync-ready on the refractor-for-pytorch branch:

- core/orchestrator.py: generalize NCCL mem-pool registration to multiple
  axis process groups with explicit deregistration on destroy(); drop the
  is_root()-gated result collection so run_all_patterns() returns the full
  DataFrame on every rank.
- core/axis.py, core/config_parser.py: per-axis environment variables via
  a new `envs` config key, threaded through to Axis/TorchAxis.
- core/utils/distributed.py: add dist_breakpoint(); drop the standalone
  is_root() helper (inlined at call sites).
- core/profilers/cupti.py: drop dead commented-out ActivityKind lines.
- main.py, __main__.py: split run() into a thin CLI command plus
  _run_benchmark() returning the results DataFrame; switch to a relative
  package import.

Also drops Megatron support to match the upstream engine, which removed
it on the same branch: deletes blocks/megatron/, the megatron-core
dependency, the Dockerfile's Megatron-LM install step, the
megatron_moe_layer.yaml example, and the related doc mentions.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…overrides

Pulled README.md and docs/doc.md content updates from nccl-multi-test/maestro
(source of truth), and bumped pyproject.toml version/description to match.
Re-applied this repo's layout-specific overrides on top: README.md keeps the
docs/doc.md link and run.py usage snippet, pyproject.toml keeps the
build-system/wheel packaging config needed for this repo's maestro/ layout.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@meta-cla meta-cla Bot added the cla signed label Oct 19, 2026
@x41lakazam x41lakazam closed this Oct 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant