Add maestro framework - #2702
x41lakazam wants to merge 3 commits into
Conversation
|
Hi @x41lakazam! Thank you for your pull request and welcome to our community. Action RequiredIn order to merge any pull request (code, docs, etc.), we require contributors to sign our Contributor License Agreement, and we don't seem to have one on file for you. ProcessIn order for us to review and merge your suggested changes, please sign at https://code.facebook.com/cla. If you are contributing on behalf of someone else (eg your employer), the individual CLA may not be sufficient and your employer may need to sign the corporate CLA. Once the CLA is signed, our tooling will perform checks and validations. Afterwards, the pull request will be tagged with If you have received this in error or have any questions, please contact us at cla@meta.com. Thanks! |
|
Thank you for signing our Contributor License Agreement. We can now accept your code for this (and any) Meta Open Source project. Thanks! |
|
Hey @jansel @williamwen42 @bobrenjc93, is there any missing step to move this PR to review ? |
…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>
|
Hi @d4l3k @dcci @bobrenjc93 |
|
@d4l3k @dcci @bobrenjc93 could you please review? |
Maestro is a Pytorch-based benchmarking framework for overlapping communication/compute operations in distributed environments.
This presents a more accurate way to measure performance of AI patterns compared to the micro-benchmarking which measures performance of standalone operations.
It allows a user to define a workload pattern, then benchmark performance of every running element.
Example use-case of an overlapping benchmarking suite
As an example, one user would want to see how well AllGather and ReduceScatter overlap given a certain fabric and algorithms, maestro allow him to easily define it as a pattern running the two and measure the performance of each while they are overlapping, he would get such a result:
And therefore be able to see the impact of tuning each part of the system on the collectives, and optimize it.
Quick description of maestro capabilities
Maestro benchmark patterns, which are composed of blocks, i.e reusable unit of works that enqueue a GPU activity, and axes, i.e a collection of GPU teams, the user defines which blocks should run on which axis, maestro run the full pattern and report the performance of each block, separately.
An axis is representing the way of splitting the ranks in a classic parallelized AI workload, for example:

Who benefits from maestro
Use cases
Below is a few use cases that leveraged maestro for optimization: