Skip to content

[Perf] Windows/x64: 1 Regression on 1/7/2023 12:45:06 AM #11446

Closed
@performanceautofiler

Description

@performanceautofiler

Run Information

Architecture x64
OS Windows 10.0.18362
Baseline c2469455eab98fdcea71997d3cc5004a992fc88f
Compare 58614a0f6da787c9d6d914b99564f066d13f69ed
Diff Diff

Regressions in System.Numerics.Tests.Perf_Matrix4x4

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
CreateFromScalars - Duration of single invocation 10.82 ns 12.33 ns 1.14 0.00 False 27.440999791344073 68.8827920904091 2.51021437317081 Trace Trace

graph
Test Report

Repro

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

Payloads

Baseline
Compare

Histogram

System.Numerics.Tests.Perf_Matrix4x4.CreateFromScalars


Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 12.33486758440217 > 10.988762412467347.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -65.15302982635818 (T) = (0 -12.330547581320218) / Math.Sqrt((0.023020926501355954 / (34)) + (0.00030894222978022576 / (13))) is less than -2.0141033888794695 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (34) + (13) - 2, .025) and -0.16263257818109503 = (10.605713114121576 - 12.330547581320218) / 10.605713114121576 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```### Baseline Jit Disasm

```assembly
; System.Numerics.Tests.Perf_Matrix4x4.CreateFromScalars()
       sub       rsp,48
       vzeroupper
       vxorps    ymm0,ymm0,ymm0
       vmovdqu   ymmword ptr [rsp+8],ymm0
       vmovdqu   ymmword ptr [rsp+28],ymm0
       mov       dword ptr [rsp+8],3F8CCCCD
       mov       dword ptr [rsp+0C],3F99999A
       mov       dword ptr [rsp+10],3FA66666
       mov       dword ptr [rsp+14],3FB33333
       mov       dword ptr [rsp+18],40066666
       mov       dword ptr [rsp+1C],400CCCCD
       mov       dword ptr [rsp+20],40133333
       mov       dword ptr [rsp+24],4019999A
       mov       dword ptr [rsp+28],40466666
       mov       dword ptr [rsp+2C],404CCCCD
       mov       dword ptr [rsp+30],40533333
       mov       dword ptr [rsp+34],4059999A
       mov       dword ptr [rsp+38],40833333
       mov       dword ptr [rsp+3C],40866666
       mov       dword ptr [rsp+40],4089999A
       mov       dword ptr [rsp+44],408CCCCD
       vmovdqu   ymm0,ymmword ptr [rsp+8]
       vmovdqu   ymmword ptr [rdx],ymm0
       vmovdqu   ymm0,ymmword ptr [rsp+28]
       vmovdqu   ymmword ptr [rdx+20],ymm0
       mov       rax,rdx
       add       rsp,48
       ret
; Total bytes of code 180

Compare Jit Disasm

; System.Numerics.Tests.Perf_Matrix4x4.CreateFromScalars()
       push      rbp
       push      rsi
       sub       rsp,0C8
       vzeroupper
       lea       rbp,[rsp+0D0]
       mov       rsi,rdx
       vxorps    ymm1,ymm1,ymm1
       vmovdqu   ymmword ptr [rbp-48],ymm1
       vmovdqu   ymmword ptr [rbp-28],ymm1
       vmovss    xmm1,dword ptr [7FFABE1B57C0]
       vmovss    dword ptr [rsp+20],xmm1
       vmovss    xmm1,dword ptr [7FFABE1B57C4]
       vmovss    dword ptr [rsp+28],xmm1
       vmovss    xmm1,dword ptr [7FFABE1B57C8]
       vmovss    dword ptr [rsp+30],xmm1
       vmovss    xmm1,dword ptr [7FFABE1B57CC]
       vmovss    dword ptr [rsp+38],xmm1
       vmovss    xmm1,dword ptr [7FFABE1B57D0]
       vmovss    dword ptr [rsp+40],xmm1
       vmovss    xmm1,dword ptr [7FFABE1B57D4]
       vmovss    dword ptr [rsp+48],xmm1
       vmovss    xmm1,dword ptr [7FFABE1B57D8]
       vmovss    dword ptr [rsp+50],xmm1
       vmovss    xmm1,dword ptr [7FFABE1B57DC]
       vmovss    dword ptr [rsp+58],xmm1
       vmovss    xmm1,dword ptr [7FFABE1B57E0]
       vmovss    dword ptr [rsp+60],xmm1
       vmovss    xmm1,dword ptr [7FFABE1B57E4]
       vmovss    dword ptr [rsp+68],xmm1
       vmovss    xmm1,dword ptr [7FFABE1B57E8]
       vmovss    dword ptr [rsp+70],xmm1
       vmovss    xmm1,dword ptr [7FFABE1B57EC]
       vmovss    dword ptr [rsp+78],xmm1
       vmovss    xmm1,dword ptr [7FFABE1B57F0]
       vmovss    dword ptr [rsp+80],xmm1
       lea       rcx,[rbp-48]
       vmovss    xmm1,dword ptr [7FFABE1B57F4]
       vmovss    xmm2,dword ptr [7FFABE1B57F8]
       vmovss    xmm3,dword ptr [7FFABE1B57FC]
       call      qword ptr [7FFABE973000]; System.Numerics.Matrix4x4..ctor(Single, Single, Single, Single, Single, Single, Single, Single, Single, Single, Single, Single, Single, Single, Single, Single)
       vmovdqu   ymm0,ymmword ptr [rbp-48]
       vmovdqu   ymmword ptr [rsi],ymm0
       vmovdqu   ymm0,ymmword ptr [rbp-28]
       vmovdqu   ymmword ptr [rsi+20],ymm0
       mov       rax,rsi
       add       rsp,0C8
       pop       rsi
       pop       rbp
       ret
; Total bytes of code 288
; System.Numerics.Matrix4x4..ctor(Single, Single, Single, Single, Single, Single, Single, Single, Single, Single, Single, Single, Single, Single, Single, Single)
       vzeroupper
       vinsertps xmm0,xmm1,xmm2,10
       vinsertps xmm0,xmm0,xmm3,20
       vinsertps xmm0,xmm0,dword ptr [rsp+28],30
       vmovupd   [rcx],xmm0
       vmovss    xmm0,dword ptr [rsp+30]
       vinsertps xmm0,xmm0,dword ptr [rsp+38],10
       vinsertps xmm0,xmm0,dword ptr [rsp+40],20
       vinsertps xmm0,xmm0,dword ptr [rsp+48],30
       vmovupd   [rcx+10],xmm0
       vmovss    xmm0,dword ptr [rsp+50]
       vinsertps xmm0,xmm0,dword ptr [rsp+58],10
       vinsertps xmm0,xmm0,dword ptr [rsp+60],20
       vinsertps xmm0,xmm0,dword ptr [rsp+68],30
       vmovupd   [rcx+20],xmm0
       vmovss    xmm0,dword ptr [rsp+70]
       vinsertps xmm0,xmm0,dword ptr [rsp+78],10
       vinsertps xmm0,xmm0,dword ptr [rsp+80],20
       vinsertps xmm0,xmm0,dword ptr [rsp+88],30
       vmovupd   [rcx+30],xmm0
       ret
; Total bytes of code 139

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