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

[Perf] Investigate BenchI/Ackerman x86 Regression between release/2.0.0 and release/2.1 #9815

Closed
michellemcdaniel opened this issue Feb 26, 2018 · 1 comment
Labels
tenet-performance Performance related issue tenet-performance-benchmarks Issue from performance benchmark
Milestone

Comments

@michellemcdaniel
Copy link
Contributor

We are regressed in x86.

@michellemcdaniel michellemcdaniel changed the title [Perf] Investigate BenchI/Ackerman perf improvement between release/2.0.0 and release/2.1 [Perf] Investigate BenchI/Ackerman x86 Regression improvement between release/2.0.0 and release/2.1 Feb 26, 2018
@michellemcdaniel michellemcdaniel changed the title [Perf] Investigate BenchI/Ackerman x86 Regression improvement between release/2.0.0 and release/2.1 [Perf] Investigate BenchI/Ackerman x86 Regression between release/2.0.0 and release/2.1 Feb 27, 2018
@AndyAyersMS
Copy link
Member

2.0 and 2.1 codegen is identical for both Acker and Bench.

This test is notoriously sensitive to method alignment. Let's look at the longer-term stability in master:
image

So there seem to be 4 stable levels: 695, 720, 770, and 790.

2.0 seems to have settled in on 695:

image

2.1 started there but has jumped up to 720:

image

So I assume this perf difference is an artifact of method entry alignment. On x86 we end up aligning most jitted method entries to 8 byte boundaries, so it would appear that there is some 32-byte sensitivity here.

At some point we might want to rethink alignment, either to stabilize cases like this, or as an enabler for loop top alignment (#11607), or perhaps in general. I have opened dotnet/coreclr#16873 to investigate method alignment impact.

I don't think there is anything actionable here for 2.1 so will close this issue.

@msftgits msftgits transferred this issue from dotnet/coreclr Jan 31, 2020
@msftgits msftgits added this to the 2.1.0 milestone Jan 31, 2020
@ghost ghost locked as resolved and limited conversation to collaborators Dec 18, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
tenet-performance Performance related issue tenet-performance-benchmarks Issue from performance benchmark
Projects
None yet
Development

No branches or pull requests

3 participants