Closed performanceautofiler[bot] closed 1 week ago
Could be related to https://github.com/dotnet/runtime/pull/106218
@Ruihan-Yin
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch See info in area-owners.md if you want to be subscribed.
@Ruihan-Yin
Ruihan is OOO for the week. So, I took a look at this but unfortunately I'm not able to reproduce this locally
The steps I took are following
Step 1 : Checked out to the base commit mentioned(up to https://github.com/dotnet/runtime/commit/0fbd81404d1f211572387498474063bc6f407f0f) and build repo using
build.cmd -c Release
Step 2 : Checked out to the diff commit mentioned(up to https://github.com/dotnet/runtime/commit/bfffd58eeb204d368989038a19786bff86000b19) and build repo using
build.cmd -c Release
Step3 : Update performance repo and run tests using following command
performance\src\benchmarks\micro>dotnet run -c Release -f net9.0 --filter "System.Linq.Tests.Perf_Enumerable*" --coreRun "<runtime_repo>\artifacts_106706_base\bin\testhost\net9.0-windows-Release-x64\shared\Microsoft.NETCore.App\9.0.0\corerun.exe" "<runtime_repo>\artifacts\bin\testhost\net9.0-windows-Release-x64\shared\Microsoft.NETCore.App\9.0.0\corerun.exe"
I did the same for Loops.StrengthReduction*
and System.Numerics.Tests.Perf_VectorConvert*
as well. But the specified tests do not show any regression.
I do have a few questions though
What machine were these tests run on? I'm running on a cascade lakes machine Do I need to set any env variables before running the tests?
@DrewScoggins, could you share which CPU this is using in particular?
Have you done a binary search and verified it's this commit?
No confirmation was done to isolate the exact commit or check disassembly, triage typically just calls out the most likely commit from the range surrounding the regression.
-- In this particular case, I don't think there's much to do here outside validating which commit did introduce the regression. This was a correctness fix and we're late in the cycle, so at best we could confirm that it was #106218 and see if there's some optimization we could do in .NET 10 to restore the codegen to what it was. Perhaps some cases can still use embedded broadcast/mask or have an alternative sequence we could emit for example.
Viper would be an AMD Zen4, right?
Here is a link to the page where we keep some basic hardware information on all of our queues. https://perfsupport.azurewebsites.net/hw-spec
I am guessing this has something to do with dependencies updates...When it regressed, we had https://github.com/dotnet/runtime/compare/b1968e7aa8d56a088e8be6817d5240fb345f901c...cef3898f4d74eeee3d261e4fc5b77c78ec8cc9bf that contained https://github.com/dotnet/runtime/pull/106261. After a week, with #106421 in https://github.com/dotnet/runtime/compare/f402418aaed508c1d77e41b942e3978675183bfc...df2d2131e214a6cf4fa4774522c95370e3585040, the regression disappeared:
Run Information
Regressions in System.Linq.Tests.Perf_Enumerable
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Run Information
Regressions in System.Numerics.Tests.Perf_VectorConvert
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Run Information
Regressions in System.Text.RegularExpressions.Tests.Perf_Regex_Industry_Leipzig
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Run Information
Regressions in System.Tests.Perf_String
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Run Information
Regressions in Loops.StrengthReduction
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Run Information
Regressions in System.Collections.IterateFor<Int32>
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Run Information
Regressions in System.Globalization.Tests.StringSearch
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md