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

JIT: refactor CSE to allow running greedy ML heuristic in release #98729

Merged
merged 2 commits into from
Feb 21, 2024

Conversation

AndyAyersMS
Copy link
Member

Revise things a bit so that we can run the greedy ML heuristic in release mode, with a built-in set of "good" parameters.

These parameters come from a policy gradient run over a 200 method training set, on the asp.net windows x64 collection.

Contributes to #92915.

Revise things a bit so that we can run the greedy ML heuristic in release mode,
with a built-in set of "good" parameters.

These parameters come from a policy gradient run over a 200 method training
set, on the asp.net windows x64 collection.

Contributes to dotnet#92915.
@ghost ghost assigned AndyAyersMS Feb 21, 2024
@dotnet-issue-labeler dotnet-issue-labeler bot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Feb 21, 2024
@ghost
Copy link

ghost commented Feb 21, 2024

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

Issue Details

Revise things a bit so that we can run the greedy ML heuristic in release mode, with a built-in set of "good" parameters.

These parameters come from a policy gradient run over a 200 method training set, on the asp.net windows x64 collection.

Contributes to #92915.

Author: AndyAyersMS
Assignees: AndyAyersMS
Labels:

area-CodeGen-coreclr

Milestone: -

@AndyAyersMS
Copy link
Member Author

@EgorBo PTAL
cc @dotnet/jit-contrib

This will be a bit painful to review as I moved a bunch of methods to a new intermediate class, and in doing so physically moved them in the file. For the most part things did not change (much).

The baked-in parameters may or may not be any good. We'll see. I will push an interim change to enable it by default.

@ryujit-bot
Copy link

Diff results for #98729

Throughput diffs

Throughput diffs for windows/arm64 ran on windows/x64

MinOpts (-0.00% to +0.01%)
Collection PDIFF
libraries.pmi.windows.arm64.checked.mch +0.01%

Details here


Throughput diffs for linux/x64 ran on linux/x64

Overall (+0.00% to +0.01%)
Collection PDIFF
libraries.crossgen2.linux.x64.checked.mch +0.01%
FullOpts (+0.00% to +0.01%)
Collection PDIFF
libraries.crossgen2.linux.x64.checked.mch +0.01%

Details here


@ryujit-bot
Copy link

Diff results for #98729

Throughput diffs

Throughput diffs for linux/x64 ran on linux/x64

Overall (+0.00% to +0.01%)
Collection PDIFF
libraries.crossgen2.linux.x64.checked.mch +0.01%
FullOpts (+0.00% to +0.01%)
Collection PDIFF
libraries.crossgen2.linux.x64.checked.mch +0.01%

Details here


@EgorBo
Copy link
Member

EgorBo commented Feb 21, 2024

Looking 👀

@AndyAyersMS
Copy link
Member Author

I will push an interim change to enable it by default.

Actually I'm going to hold off; let's get this bit merged and then I will put up a draft PR to flip it on by default.

Copy link
Member

@EgorBo EgorBo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As far as I can follow your changes, they look reasonable to me, LGTM!

@EgorBo
Copy link
Member

EgorBo commented Feb 21, 2024

I will put up a draft PR to flip it on by default.

Are the diffs huge? 🙂

@AndyAyersMS
Copy link
Member Author

I will put up a draft PR to flip it on by default.

Are the diffs huge? 🙂

The code size diffs don't look very good right now. One of the things I need to figure out is how to make sure that the secondary objectives don't get too crazy.

[09:50:54] 111,592 contexts with diffs (21,954 improvements, 83,583 regressions, 6,055 same size)
[09:50:54]   -244,440/+2,143,827 bytes

@AndyAyersMS
Copy link
Member Author

This is a no diff change so failures above are unrelated.

@AndyAyersMS AndyAyersMS merged commit 52dbf81 into dotnet:main Feb 21, 2024
124 of 129 checks passed
@AndyAyersMS
Copy link
Member Author

Draft PR to enable: #98776

@github-actions github-actions bot locked and limited conversation to collaborators Mar 23, 2024
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

Successfully merging this pull request may close these issues.

3 participants