Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SuperPMI: Improve superpmi-diffs pipeline parallelism: split asmdiffs and tpdiff #80718

Closed
Tracked by #79018
BruceForstall opened this issue Jan 16, 2023 · 3 comments
Closed
Tracked by #79018
Assignees
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
Milestone

Comments

@BruceForstall
Copy link
Member

Both asmdiffs and tpdiff are done for a single platform consecutively on the same Helix machine. In a recent run, it seems each takes about 30 minutes (MCH download takes 6 to 15 minutes).

If tpdiff ran on its own Helix machine, it could run in parallel, improving overall pipeline throughput. Also, asmdiffs only needs to depend on the Checked JIT builds, and tpdiff on the Release JIT builds.

Doing this would probably require altering how the diffs "summarizing" happens with superpmi_diffs_summarize.py.

category:eng-sys
theme:super-pmi
skill-level:intermediate
cost:medium
impact:medium

@BruceForstall BruceForstall added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Jan 16, 2023
@BruceForstall BruceForstall added this to the Future milestone Jan 16, 2023
@ghost
Copy link

ghost commented Jan 16, 2023

Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch, @kunalspathak
See info in area-owners.md if you want to be subscribed.

Issue Details

Both asmdiffs and tpdiff are done for a single platform consecutively on the same Helix machine. In a recent run, it seems each takes about 30 minutes (MCH download takes 6 to 15 minutes).

If tpdiff ran on its own Helix machine, it could run in parallel, improving overall pipeline throughput. Also, asmdiffs only needs to depend on the Checked JIT builds, and tpdiff on the Release JIT builds.

Doing this would probably require altering how the diffs "summarizing" happens with superpmi_diffs_summarize.py.

category:eng-sys
theme:super-pmi
skill-level:intermediate
cost:medium
impact:medium

Author: BruceForstall
Assignees: -
Labels:

area-CodeGen-coreclr

Milestone: Future

@BruceForstall
Copy link
Member Author

Extending this idea: we could create even more parallelism, such as a single Helix job for each separate <MCH file, tpdiff/asmdiffs type> pair. That is, for each MCH file, create one Helix job for tpdiff, and one for asmdiffs. This creates a separate job for each superpmi.py invocation. We would need to ensure the correlation payload (copied to every Helix machine) is minimized to minimize overall overhead.

@BruceForstall
Copy link
Member Author

This is basically complete -- the ideas above can be revisited if we decided throughput needs to be improved more.

@ghost ghost locked as resolved and limited conversation to collaborators May 11, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
Projects
None yet
Development

No branches or pull requests

1 participant