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] Linux/x64: 24 Regressions on 1/20/2024 12:29:16 AM #97400

Closed
performanceautofiler bot opened this issue Jan 23, 2024 · 4 comments
Closed

[Perf] Linux/x64: 24 Regressions on 1/20/2024 12:29:16 AM #97400

performanceautofiler bot opened this issue Jan 23, 2024 · 4 comments
Assignees
Labels
arch-x64 area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI os-linux Linux OS (any supported distro) PGO Priority:2 Work that is important, but not critical for the release runtime-coreclr specific to the CoreCLR runtime
Milestone

Comments

@performanceautofiler
Copy link

performanceautofiler bot commented Jan 23, 2024

Run Information

Name Value
Architecture x64
OS ubuntu 22.04
Queue TigerUbuntu
Baseline 8c73f0f7129aae439e7da095c7b3f25e7209bb76
Compare ff93f2dc3619d28b87404d1f86439f4b1d6e8d02
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Regressions in System.Linq.Tests.Perf_Enumerable

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio
9.74 ns 21.00 ns 2.16 0.07 True
320.06 ns 357.76 ns 1.12 0.09 False
2.49 μs 2.91 μs 1.17 0.06 False
216.87 ns 308.33 ns 1.42 0.06 False
174.91 ns 192.78 ns 1.10 0.01 True
362.09 ns 439.05 ns 1.21 0.09 False
215.45 ns 355.09 ns 1.65 0.26 False
155.86 ns 175.49 ns 1.13 0.01 False
165.90 ns 182.21 ns 1.10 0.05 False
146.87 ns 159.55 ns 1.09 0.06 False
60.19 ns 67.53 ns 1.12 0.02 False
94.97 ns 121.86 ns 1.28 0.01 True
213.86 ns 257.43 ns 1.20 0.30 False
299.30 ns 355.04 ns 1.19 0.31 False
2.34 μs 2.61 μs 1.11 0.09 False
298.54 ns 338.43 ns 1.13 0.14 False
213.94 ns 286.19 ns 1.34 0.06 False
2.49 μs 2.73 μs 1.10 0.06 False
279.76 ns 327.88 ns 1.17 0.16 False
188.85 ns 204.77 ns 1.08 0.14 False
196.74 ns 247.96 ns 1.26 0.18 False
35.24 ns 37.58 ns 1.07 0.02 False
2.33 μs 2.62 μs 1.12 0.06 False

graph
graph
graph
graph
graph
graph
graph
graph
graph
graph
graph
graph
graph
graph
graph
graph
graph
graph
graph
graph
graph
graph
graph
Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Linq.Tests.Perf_Enumerable*'

Payloads

Baseline
Compare

System.Linq.Tests.Perf_Enumerable.EmptyTakeSelectToArray

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.WhereSelect(input: List)

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.AppendPrepend(input: IEnumerable)

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.WhereSelect(input: Array)

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.SingleWithPredicate_LastElementMatches(input: Array)

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.WhereSelect(input: IEnumerable)

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.WhereSingleOrDefault_LastElementMatches(input: IEnumerable)

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.FirstWithPredicate_LastElementMatches(input: Array)

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.WhereFirst_LastElementMatches(input: Array)

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.Select(input: Array)

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.ElementAt(input: IEnumerable)

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.SelectToList(input: Range)

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.WhereLast_LastElementMatches(input: IEnumerable)

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.WhereSingle_LastElementMatches(input: IEnumerable)

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.OrderByDescending(input: IEnumerable)

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.Skip_One(input: IEnumerable)

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.WhereFirst_LastElementMatches(input: IEnumerable)

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.Append(input: IEnumerable)

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.SkipHalfTakeHalf(input: IEnumerable)

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.WhereAny_LastElementMatches(input: List)

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.SingleWithPredicate_LastElementMatches(input: List)

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.ToArray(input: ICollection)

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.Prepend(input: IEnumerable)

ETL Files

Histogram

JIT Disasms

Docs

Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository


Run Information

Name Value
Architecture x64
OS ubuntu 22.04
Queue TigerUbuntu
Baseline 8c73f0f7129aae439e7da095c7b3f25e7209bb76
Compare ff93f2dc3619d28b87404d1f86439f4b1d6e8d02
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Regressions in System.Collections.CtorFromCollectionNonGeneric<Int32>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio
48.89 μs 66.39 μs 1.36 0.02 False

graph
Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.CtorFromCollectionNonGeneric&lt;Int32&gt;*'

Payloads

Baseline
Compare

System.Collections.CtorFromCollectionNonGeneric<Int32>.SortedList(Size: 512)

ETL Files

Histogram

JIT Disasms

Docs

Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository

@performanceautofiler performanceautofiler bot added arch-x64 os-linux Linux OS (any supported distro) PGO runtime-coreclr specific to the CoreCLR runtime untriaged New issue has not been triaged by the area owner labels Jan 23, 2024
@EgorBo EgorBo transferred this issue from dotnet/perf-autofiling-issues Jan 23, 2024
@EgorBo EgorBo self-assigned this Jan 23, 2024
@ghost
Copy link

ghost commented Jan 23, 2024

Tagging subscribers to this area: @dotnet/area-system-linq
See info in area-owners.md if you want to be subscribed.

Issue Details

Run Information

Name Value
Architecture x64
OS ubuntu 22.04
Queue TigerUbuntu
Baseline 8c73f0f7129aae439e7da095c7b3f25e7209bb76
Compare ff93f2dc3619d28b87404d1f86439f4b1d6e8d02
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Regressions in System.Linq.Tests.Perf_Enumerable

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio
9.74 ns 21.00 ns 2.16 0.07 True
320.06 ns 357.76 ns 1.12 0.09 False
2.49 μs 2.91 μs 1.17 0.06 False
216.87 ns 308.33 ns 1.42 0.06 False
174.91 ns 192.78 ns 1.10 0.01 True
362.09 ns 439.05 ns 1.21 0.09 False
215.45 ns 355.09 ns 1.65 0.26 False
155.86 ns 175.49 ns 1.13 0.01 False
165.90 ns 182.21 ns 1.10 0.05 False
146.87 ns 159.55 ns 1.09 0.06 False
60.19 ns 67.53 ns 1.12 0.02 False
94.97 ns 121.86 ns 1.28 0.01 True
213.86 ns 257.43 ns 1.20 0.30 False
299.30 ns 355.04 ns 1.19 0.31 False
2.34 μs 2.61 μs 1.11 0.09 False
298.54 ns 338.43 ns 1.13 0.14 False
213.94 ns 286.19 ns 1.34 0.06 False
2.49 μs 2.73 μs 1.10 0.06 False
279.76 ns 327.88 ns 1.17 0.16 False
188.85 ns 204.77 ns 1.08 0.14 False
196.74 ns 247.96 ns 1.26 0.18 False
35.24 ns 37.58 ns 1.07 0.02 False
2.33 μs 2.62 μs 1.12 0.06 False

graph
graph
graph
graph
graph
graph
graph
graph
graph
graph
graph
graph
graph
graph
graph
graph
graph
graph
graph
graph
graph
graph
graph
Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Linq.Tests.Perf_Enumerable*'

Payloads

Baseline
Compare

System.Linq.Tests.Perf_Enumerable.EmptyTakeSelectToArray

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.WhereSelect(input: List)

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.AppendPrepend(input: IEnumerable)

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.WhereSelect(input: Array)

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.SingleWithPredicate_LastElementMatches(input: Array)

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.WhereSelect(input: IEnumerable)

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.WhereSingleOrDefault_LastElementMatches(input: IEnumerable)

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.FirstWithPredicate_LastElementMatches(input: Array)

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.WhereFirst_LastElementMatches(input: Array)

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.Select(input: Array)

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.ElementAt(input: IEnumerable)

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.SelectToList(input: Range)

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.WhereLast_LastElementMatches(input: IEnumerable)

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.WhereSingle_LastElementMatches(input: IEnumerable)

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.OrderByDescending(input: IEnumerable)

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.Skip_One(input: IEnumerable)

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.WhereFirst_LastElementMatches(input: IEnumerable)

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.Append(input: IEnumerable)

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.SkipHalfTakeHalf(input: IEnumerable)

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.WhereAny_LastElementMatches(input: List)

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.SingleWithPredicate_LastElementMatches(input: List)

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.ToArray(input: ICollection)

ETL Files

Histogram

JIT Disasms

System.Linq.Tests.Perf_Enumerable.Prepend(input: IEnumerable)

ETL Files

Histogram

JIT Disasms

Docs

Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository


Run Information

Name Value
Architecture x64
OS ubuntu 22.04
Queue TigerUbuntu
Baseline 8c73f0f7129aae439e7da095c7b3f25e7209bb76
Compare ff93f2dc3619d28b87404d1f86439f4b1d6e8d02
Diff Diff
Configs CompilationMode:tiered, RunKind:micro

Regressions in System.Collections.CtorFromCollectionNonGeneric<Int32>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio
48.89 μs 66.39 μs 1.36 0.02 False

graph
Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.CtorFromCollectionNonGeneric&lt;Int32&gt;*'

Payloads

Baseline
Compare

System.Collections.CtorFromCollectionNonGeneric<Int32>.SortedList(Size: 512)

ETL Files

Histogram

JIT Disasms

Docs

Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository

Author: performanceautofiler[bot]
Assignees: -
Labels:

area-System.Linq, os-linux, arch-x64, untriaged, runtime-coreclr, PGO

Milestone: -

@EgorBo EgorBo added area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI and removed area-System.Linq untriaged New issue has not been triaged by the area owner labels Jan 23, 2024
@EgorBo
Copy link
Member

EgorBo commented Jan 23, 2024

#97075

@EgorBo EgorBo added this to the 9.0.0 milestone Jan 23, 2024
@stephentoub
Copy link
Member

Almost all of these have either recovered or significantly improved with the recent suite of LINQ changes. The only LINQ one I'm still interested in is the SelectToList(input: Range) one, which is still showing a consistent 20% hit.

@EgorBo EgorBo added the Priority:2 Work that is important, but not critical for the release label May 22, 2024
@EgorBo
Copy link
Member

EgorBo commented Jul 18, 2024

According to ADX data, SelectToList regressed only on just one machine Linux-x64-Intel, no regressions on >10 other queues. I think we can close this unless someone wants to investigate this machine specifically

@EgorBo EgorBo closed this as completed Jul 18, 2024
@github-actions github-actions bot locked and limited conversation to collaborators Aug 18, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
arch-x64 area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI os-linux Linux OS (any supported distro) PGO Priority:2 Work that is important, but not critical for the release runtime-coreclr specific to the CoreCLR runtime
Projects
None yet
Development

No branches or pull requests

2 participants