Skip to content

[Perf] Windows/x64: Regressions in System.MathBenchmarks.Double #80359

Description

@performanceautofiler

Run Information

Architecturex64
OSWindows 10.0.18362
Baselineaf8694704e807d0147a3033c3e250be2966951fe
Compare56e22a4337b0256d200b6b698aa70349c9c7f2c5
DiffDiff

Regressions in System.MathBenchmarks.Double

BenchmarkBaselineTestTest/BaseTest QualityEdge DetectorBaseline IRCompare IRIR RatioBaseline ETLCompare ETL
FusedMultiplyAdd - Duration of single invocation7.07 μs7.46 μs1.060.00False55296.1275626423750618.4738955823340.9154072107172253TraceTrace

graph
Test Report

Repro

git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.MathBenchmarks.Double*'
Details

Payloads

Baseline
Compare

Histogram

System.MathBenchmarks.Double.FusedMultiplyAdd

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 7.463699113984675 > 7.32029771608462.
IsChangePoint: Marked as a change because one of 11/1/2022 2:33:16 AM, 12/16/2022 6:44:06 PM, 12/20/2022 4:30:45 AM falls between 12/11/2022 2:11:02 PM and 12/20/2022 4:30:45 AM.
IsRegressionStdDev: Marked as regression because -34.69916961037376 (T) = (0 -7483.441097082762) / Math.Sqrt((7321.549745472779 / (46)) + (584.8922091499769 / (11))) is less than -2.0040447832881556 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (46) + (11) - 2, .025) and -0.07246223200251571 = (6977.81317959289 - 7483.441097082762) / 6977.81317959289 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.MathBenchmarks.Double.FusedMultiplyAdd()
jmp qword ptr [7FFAE065F918]; System.MathBenchmarks.Double.FusedMultiplyAddTest()
; Total bytes of code 6
; System.MathBenchmarks.Double.FusedMultiplyAddTest()pushrsisubrsp,80vzeroupper vmovaps [rsp+70],xmm6 vmovaps [rsp+60],xmm7 vmovaps [rsp+50],xmm8xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4 vmovdqa xmmword ptr [rsp+40],xmm4 vxorps xmm6,xmm6,xmm6 vmovsd xmm0,qword ptr [7FFADFF34240] vmovsd xmm1,qword ptr [7FFADFF34248] vmovsd xmm2,qword ptr [7FFADFF34250]xorecx,ecx vmovsd xmm3,qword ptr [7FFADFF34258] vmovsd xmm4,qword ptr [7FFADFF34260]M01_L00: vmovaps xmm5,xmm0 vmovaps xmm7,xmm1 vmovaps xmm8,xmm2vfmadd213sdxmm5,xmm7,xmm8 vaddsd xmm6,xmm5,xmm6 vaddsd xmm0,xmm0,xmm3 vaddsd xmm1,xmm1,xmm4 vaddsd xmm2,xmm2,xmm3incecxcmpecx,1388jl short M01_L00 vmovsd xmm0,qword ptr [7FFADFF34268] vsubsd xmm0,xmm0,xmm6vandpsxmm0,xmm0,[7FFADFF34270] vucomisd xmm6,xmm6jp short M01_L01 vucomisd xmm0,qword ptr [7FFADFF34280]ja short M01_L01 vmovaps xmm6,[rsp+70] vmovaps xmm7,[rsp+60] vmovaps xmm8,[rsp+50]addrsp,80poprsiretM01_L01:learcx,[rsp+28]movedx,20movr8d,2call qword ptr [7FFAE0517030]movecx,5E71movrdx,7FFAE066B498call CORINFO_HELP_STRCNSmovrdx,raxlearcx,[rsp+28]call qword ptr [7FFAE0517120]movecx,5E93movrdx,7FFAE066B498call CORINFO_HELP_STRCNSmovr9,rax vmovsd xmm1,qword ptr [7FFADFF34268]learcx,[rsp+28]movr8d,14call qword ptr [7FFAE08479F0]movecx,5E9Bmovrdx,7FFAE066B498call CORINFO_HELP_STRCNSmovrdx,raxlearcx,[rsp+28]call qword ptr [7FFAE0517120]movecx,5E93movrdx,7FFAE066B498call CORINFO_HELP_STRCNSmovr9,raxlearcx,[rsp+28] vmovaps xmm1,xmm6movr8d,14call qword ptr [7FFAE08479F0]movrcx,offset MT_System.Exceptioncall CORINFO_HELP_NEWSFASTmovrsi,raxlearcx,[rsp+28]call qword ptr [7FFAE05170C0]movrdx,raxmovrcx,rsicall qword ptr [7FFADFEF7C18]movrcx,rsicall CORINFO_HELP_THROWint3; Total bytes of code 436

Compare Jit Disasm

; System.MathBenchmarks.Double.FusedMultiplyAdd()jmp qword ptr [7FFE01E2F918]; Total bytes of code 6

Docs

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMItenet-performancePerformance related issue

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions