-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Performance changes related to vzeroupper emit changes #98705
Comments
Regressions: Windows AMD x64: dotnet/perf-autofiling-issues#29540, dotnet/perf-autofiling-issues#29544 Improvements: |
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch Issue DetailsRun Information
Regressions in System.Tests.Perf_Char
ReproGeneral Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Tests.Perf_Char*' PayloadsSystem.Tests.Perf_Char.Char_ToUpper(c: 'İ', cultureName: en-US)ETL FilesHistogramJIT DisasmsDocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.Text.Perf_Ascii
ReproGeneral Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Text.Perf_Ascii*' PayloadsSystem.Text.Perf_Ascii.EqualsIgnoreCase_ExactlyTheSame_Chars(Size: 6)ETL FilesHistogramJIT DisasmsSystem.Text.Perf_Ascii.EqualsIgnoreCase_ExactlyTheSame_Bytes(Size: 6)ETL FilesHistogramJIT DisasmsDocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.Collections.TryGetValueFalse<Int32, Int32>
ReproGeneral Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.TryGetValueFalse<Int32, Int32>*' PayloadsSystem.Collections.TryGetValueFalse<Int32, Int32>.ImmutableDictionary(Size: 512)ETL FilesHistogramJIT DisasmsSystem.Collections.TryGetValueFalse<Int32, Int32>.Dictionary(Size: 512)ETL FilesHistogramJIT DisasmsDocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.Collections.Sort<BigStruct>
ReproGeneral Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.Sort<BigStruct>*' PayloadsSystem.Collections.Sort<BigStruct>.List(Size: 512)ETL FilesHistogramJIT DisasmsSystem.Collections.Sort<BigStruct>.Array(Size: 512)ETL FilesHistogramJIT DisasmsDocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.Buffers.Tests.SearchValuesByteTests
ReproGeneral Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Buffers.Tests.SearchValuesByteTests*' PayloadsSystem.Buffers.Tests.SearchValuesByteTests.IndexOfAnyExcept(Values: "abcdefABCDEF0123456789")ETL FilesHistogramJIT DisasmsDocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in PerfLabTests.CastingPerf
ReproGeneral Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'PerfLabTests.CastingPerf*' PayloadsPerfLabTests.CastingPerf.ObjFooIsObj2ETL FilesHistogramJIT DisasmsPerfLabTests.CastingPerf.IFooFooIsIFooETL FilesHistogramJIT DisasmsPerfLabTests.CastingPerf.FooObjCastIfIsaETL FilesHistogramJIT DisasmsDocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.Numerics.Tests.Perf_VectorOf<Int16>
ReproGeneral Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Numerics.Tests.Perf_VectorOf<Int16>*' PayloadsSystem.Numerics.Tests.Perf_VectorOf<Int16>.DivisionOperatorBenchmarkETL FilesHistogramJIT DisasmsSystem.Numerics.Tests.Perf_VectorOf<Int16>.DivideBenchmarkETL FilesHistogramJIT DisasmsDocsProfiling workflow for dotnet/runtime repository
|
This is effectively "by design" and we are now simply following the Architecture Optimization Manual guidance on where to emit Previously we were failing to emit it in some places where it was required, this could lead to a significant performance hit on some hardware (which multiple customers reported hitting). However, if we aren't in a scenario where the native code actually needs Correspondingly, we were emitting it in too many unnecessary places as well. Removing these unnecessary places can result in a perf increase on older hardware. It's ultimately a set of tradeoffs, but since we're now matching the official guidance on where to emit |
Run Information
Regressions in System.Tests.Perf_Char
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Payloads
Baseline
Compare
System.Tests.Perf_Char.Char_ToUpper(c: 'İ', cultureName: en-US)
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in System.Text.Perf_Ascii
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Payloads
Baseline
Compare
System.Text.Perf_Ascii.EqualsIgnoreCase_ExactlyTheSame_Chars(Size: 6)
ETL Files
Histogram
JIT Disasms
System.Text.Perf_Ascii.EqualsIgnoreCase_ExactlyTheSame_Bytes(Size: 6)
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in System.Collections.TryGetValueFalse<Int32, Int32>
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Payloads
Baseline
Compare
System.Collections.TryGetValueFalse<Int32, Int32>.ImmutableDictionary(Size: 512)
ETL Files
Histogram
JIT Disasms
System.Collections.TryGetValueFalse<Int32, Int32>.Dictionary(Size: 512)
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in System.Collections.Sort<BigStruct>
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Payloads
Baseline
Compare
System.Collections.Sort<BigStruct>.List(Size: 512)
ETL Files
Histogram
JIT Disasms
System.Collections.Sort<BigStruct>.Array(Size: 512)
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in System.Buffers.Tests.SearchValuesByteTests
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Payloads
Baseline
Compare
System.Buffers.Tests.SearchValuesByteTests.IndexOfAnyExcept(Values: "abcdefABCDEF0123456789")
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in PerfLabTests.CastingPerf
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Payloads
Baseline
Compare
PerfLabTests.CastingPerf.ObjFooIsObj2
ETL Files
Histogram
JIT Disasms
PerfLabTests.CastingPerf.IFooFooIsIFoo
ETL Files
Histogram
JIT Disasms
PerfLabTests.CastingPerf.FooObjCastIfIsa
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in System.Numerics.Tests.Perf_VectorOf<Int16>
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Payloads
Baseline
Compare
System.Numerics.Tests.Perf_VectorOf<Int16>.DivisionOperatorBenchmark
ETL Files
Histogram
JIT Disasms
System.Numerics.Tests.Perf_VectorOf<Int16>.DivideBenchmark
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
The text was updated successfully, but these errors were encountered: