Closed
Description
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 |
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
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