Skip to content

[Perf] Windows/x64: 5 Improvements on 2/23/2023 8:54:44 PM #13489

@performanceautofiler

Description

@performanceautofiler

Run Information

Architecture x64
OS Windows 10.0.18362
Baseline a0d28f4838a3075d3080c9ff5690e26969cbe67f
Compare 5ba867f3b9dc40e5195c3901d3bc901a014332d1
Diff Diff

Improvements in System.Numerics.Tests.Perf_Vector3

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
DivideByScalarBenchmark - Duration of single invocation 53.51 ns 0.08 ns 0.00 0.04 False 3.9713915394918784 4.862500505372243 1.2243820477077358) Trace Trace
DivideByVector3Benchmark - Duration of single invocation 53.53 ns 0.08 ns 0.00 0.15 False Trace Trace
DivideByScalarOperatorBenchmark - Duration of single invocation 53.79 ns 0.08 ns 0.00 0.04 False 4.001087814551685 5.071011860924347 1.267408288936179) Trace Trace
DivideByVector3OperatorBenchmark - Duration of single invocation 53.77 ns 0.08 ns 0.00 0.16 False 4.03326783787949 4.94636925959701 1.2263924585275219) Trace Trace
ReflectBenchmark - Duration of single invocation 47.24 ns 1.18 ns 0.03 0.21 False Trace Trace

graph
graph
graph
graph
graph
Test Report

Repro

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

Payloads

Baseline
Compare

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

Payloads

Baseline
Compare

Histogram

System.Numerics.Tests.Perf_Vector3.DivideByScalarBenchmark


Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 0.077958062529037 < 50.835911824589466.
IsChangePoint: Marked as a change because one of 2/11/2023 5:46:38 PM, 2/21/2023 5:46:41 AM, 2/28/2023 3:04:58 AM falls between 2/19/2023 10:06:54 AM and 2/28/2023 3:04:58 AM.
IsImprovementStdDev: Marked as improvement because 8.255472256977017 (T) = (0 -0.07818490055249809) / Math.Sqrt((415.75911171920194 / (299)) + (6.958793934331625E-07 / (21))) is greater than 1.967451947860886 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (21) - 2, .975) and 0.9920325091903491 = (9.81298911042287 - 0.07818490055249809) / 9.81298911042287 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```### Baseline Jit Disasm

```assembly
; System.Numerics.Tests.Perf_Vector3.DivideByScalarBenchmark()
       vzeroupper
       vmovups   xmm0,[7FFCCEB65690]
       vmovups   xmm1,[7FFCCEB656A0]
       vdivps    xmm0,xmm0,xmm1
       vmovsd    qword ptr [rdx],xmm0
       vextractps dword ptr [rdx+8],xmm0,2
       mov       rax,rdx
       ret
; Total bytes of code 38

Compare Jit Disasm

; System.Numerics.Tests.Perf_Vector3.DivideByScalarBenchmark()
       vzeroupper
       vmovups   xmm0,[7FFDC4840990]
       vmovsd    qword ptr [rdx],xmm0
       vextractps dword ptr [rdx+8],xmm0,2
       mov       rax,rdx
       ret
; Total bytes of code 26

System.Numerics.Tests.Perf_Vector3.DivideByVector3Benchmark


Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 0.07789294182326499 < 51.04123804032205.
IsChangePoint: Marked as a change because one of 2/11/2023 5:46:38 PM, 2/21/2023 5:46:41 AM, 2/28/2023 3:04:58 AM falls between 2/19/2023 10:06:54 AM and 2/28/2023 3:04:58 AM.
IsImprovementStdDev: Marked as improvement because 8.359190691150527 (T) = (0 -0.0780374678697908) / Math.Sqrt((413.80000020909256 / (299)) + (2.671857254125444E-08 / (21))) is greater than 1.967451947860886 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (21) - 2, .975) and 0.9921268866070241 = (9.911894313552365 - 0.0780374678697908) / 9.911894313552365 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```### Baseline Jit Disasm

```assembly
; System.Numerics.Tests.Perf_Vector3.DivideByVector3Benchmark()
       vzeroupper
       vmovups   xmm0,[7FFC0F995690]
       vmovups   xmm1,[7FFC0F9956A0]
       vdivps    xmm0,xmm0,xmm1
       vmovsd    qword ptr [rdx],xmm0
       vextractps dword ptr [rdx+8],xmm0,2
       mov       rax,rdx
       ret
; Total bytes of code 38

Compare Jit Disasm

; System.Numerics.Tests.Perf_Vector3.DivideByVector3Benchmark()
       vzeroupper
       vmovups   xmm0,[7FFA9C310990]
       vmovsd    qword ptr [rdx],xmm0
       vextractps dword ptr [rdx+8],xmm0,2
       mov       rax,rdx
       ret
; Total bytes of code 26

System.Numerics.Tests.Perf_Vector3.DivideByScalarOperatorBenchmark


Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 0.07796367332531394 < 51.097950311603526.
IsChangePoint: Marked as a change because one of 2/11/2023 5:46:38 PM, 2/21/2023 5:46:41 AM, 2/28/2023 3:04:58 AM falls between 2/19/2023 10:06:54 AM and 2/28/2023 3:04:58 AM.
IsImprovementStdDev: Marked as improvement because 8.258165060075484 (T) = (0 -0.07800516557197923) / Math.Sqrt((416.03153408563287 / (299)) + (1.3165523726361413E-08 / (21))) is greater than 1.967451947860886 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (21) - 2, .975) and 0.9920558325889758 = (9.819174437805794 - 0.07800516557197923) / 9.819174437805794 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```### Baseline Jit Disasm

```assembly
; System.Numerics.Tests.Perf_Vector3.DivideByScalarOperatorBenchmark()
       vzeroupper
       vmovups   xmm0,[7FF89ED85690]
       vmovups   xmm1,[7FF89ED856A0]
       vdivps    xmm0,xmm0,xmm1
       vmovsd    qword ptr [rdx],xmm0
       vextractps dword ptr [rdx+8],xmm0,2
       mov       rax,rdx
       ret
; Total bytes of code 38

Compare Jit Disasm

; System.Numerics.Tests.Perf_Vector3.DivideByScalarOperatorBenchmark()
       vzeroupper
       vmovups   xmm0,[7FFAA9BF0990]
       vmovsd    qword ptr [rdx],xmm0
       vextractps dword ptr [rdx+8],xmm0,2
       mov       rax,rdx
       ret
; Total bytes of code 26

System.Numerics.Tests.Perf_Vector3.DivideByVector3OperatorBenchmark


Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 0.07824776275946067 < 50.90790650918967.
IsChangePoint: Marked as a change because one of 2/11/2023 5:46:38 PM, 2/21/2023 5:46:41 AM, 2/28/2023 3:04:58 AM falls between 2/19/2023 10:06:54 AM and 2/28/2023 3:04:58 AM.
IsImprovementStdDev: Marked as improvement because 8.28675857534997 (T) = (0 -0.10583650496233996) / Math.Sqrt((413.6811905153131 / (299)) + (0.016280669481402058 / (21))) is greater than 1.967451947860886 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (21) - 2, .975) and 0.9892615158460292 = (9.855814232701062 - 0.10583650496233996) / 9.855814232701062 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```### Baseline Jit Disasm

```assembly
; System.Numerics.Tests.Perf_Vector3.DivideByVector3OperatorBenchmark()
       vzeroupper
       vmovups   xmm0,[7FFCE8D25690]
       vmovups   xmm1,[7FFCE8D256A0]
       vdivps    xmm0,xmm0,xmm1
       vmovsd    qword ptr [rdx],xmm0
       vextractps dword ptr [rdx+8],xmm0,2
       mov       rax,rdx
       ret
; Total bytes of code 38

Compare Jit Disasm

; System.Numerics.Tests.Perf_Vector3.DivideByVector3OperatorBenchmark()
       vzeroupper
       vmovups   xmm0,[7FFED3A30990]
       vmovsd    qword ptr [rdx],xmm0
       vextractps dword ptr [rdx+8],xmm0,2
       mov       rax,rdx
       ret
; Total bytes of code 26

System.Numerics.Tests.Perf_Vector3.ReflectBenchmark


Description of detection logic

IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsRegressionBase: Marked as not a regression because the compare was not 5% greater than the baseline, or the value was too small.
IsImprovementBase: Marked as improvement because the compare was 5% less than the baseline, and the value was not too small.
IsImprovementCheck: Marked as improvement because the three check build points were 0.05 less than the baseline.
IsImprovementWindowed:Marked as improvement because 1.1825773123788204 < 44.87615574852212.
IsChangePoint: Marked as a change because one of 2/11/2023 5:46:38 PM, 2/24/2023 9:01:57 AM, 2/28/2023 3:04:58 AM falls between 2/19/2023 10:06:54 AM and 2/28/2023 3:04:58 AM.
IsImprovementStdDev: Marked as improvement because 8.514244280818355 (T) = (0 -0.8652575537673668) / Math.Sqrt((339.7423336110521 / (299)) + (0.03517959893535087 / (16))) is greater than 1.9675720194858106 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (299) + (16) - 2, .975) and 0.9130380725546209 = (9.9498433301267 - 0.8652575537673668) / 9.9498433301267 is greater than 0.05.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```### Baseline Jit Disasm

```assembly
; System.Numerics.Tests.Perf_Vector3.ReflectBenchmark()
       vzeroupper
       vmovups   xmm0,[7FF7ED6256A0]
       vmovups   xmm1,[7FF7ED6256B0]
       vdpps     xmm2,xmm0,xmm1,7F
       vmulps    xmm1,xmm2,xmm1
       vmovups   xmm2,[7FF7ED6256C0]
       vmulps    xmm1,xmm1,xmm2
       vsubps    xmm0,xmm0,xmm1
       vmovsd    qword ptr [rdx],xmm0
       vextractps dword ptr [rdx+8],xmm0,2
       mov       rax,rdx
       ret
; Total bytes of code 60

Compare Jit Disasm

; System.Numerics.Tests.Perf_Vector3.ReflectBenchmark()
       vzeroupper
       vmovups   xmm0,[7FFA9C7C09B0]
       vmovups   xmm1,[7FFA9C7C09C0]
       vdpps     xmm2,xmm0,xmm1,7F
       vmulps    xmm1,xmm2,xmm1
       vmovups   xmm2,[7FFA9C7C09D0]
       vmulps    xmm1,xmm1,xmm2
       vsubps    xmm0,xmm0,xmm1
       vmovsd    qword ptr [rdx],xmm0
       vextractps dword ptr [rdx+8],xmm0,2
       mov       rax,rdx
       ret
; Total bytes of code 60

Docs

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

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions