-
Notifications
You must be signed in to change notification settings - Fork 5.2k
Closed
Labels
area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMICLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMItenet-performancePerformance related issuePerformance related issue
Milestone
Description
Run Information
| Architecture | x64 |
|---|---|
| OS | Windows 10.0.18362 |
| Baseline | af8694704e807d0147a3033c3e250be2966951fe |
| Compare | 56e22a4337b0256d200b6b698aa70349c9c7f2c5 |
| Diff | Diff |
Regressions in System.MathBenchmarks.Double
| Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio | Baseline ETL | Compare ETL |
|---|---|---|---|---|---|---|---|---|---|---|
| FusedMultiplyAdd - Duration of single invocation | 7.07 μs | 7.46 μs | 1.06 | 0.00 | False | 55296.12756264237 | 50618.473895582334 | 0.9154072107172253 | Trace | Trace |
Repro
git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.MathBenchmarks.Double*'Payloads
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()
push rsi
sub rsp,80
vzeroupper
vmovaps [rsp+70],xmm6
vmovaps [rsp+60],xmm7
vmovaps [rsp+50],xmm8
xor eax,eax
mov [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]
xor ecx,ecx
vmovsd xmm3,qword ptr [7FFADFF34258]
vmovsd xmm4,qword ptr [7FFADFF34260]
M01_L00:
vmovaps xmm5,xmm0
vmovaps xmm7,xmm1
vmovaps xmm8,xmm2
vfmadd213sd xmm5,xmm7,xmm8
vaddsd xmm6,xmm5,xmm6
vaddsd xmm0,xmm0,xmm3
vaddsd xmm1,xmm1,xmm4
vaddsd xmm2,xmm2,xmm3
inc ecx
cmp ecx,1388
jl short M01_L00
vmovsd xmm0,qword ptr [7FFADFF34268]
vsubsd xmm0,xmm0,xmm6
vandps xmm0,xmm0,[7FFADFF34270]
vucomisd xmm6,xmm6
jp short M01_L01
vucomisd xmm0,qword ptr [7FFADFF34280]
ja short M01_L01
vmovaps xmm6,[rsp+70]
vmovaps xmm7,[rsp+60]
vmovaps xmm8,[rsp+50]
add rsp,80
pop rsi
ret
M01_L01:
lea rcx,[rsp+28]
mov edx,20
mov r8d,2
call qword ptr [7FFAE0517030]
mov ecx,5E71
mov rdx,7FFAE066B498
call CORINFO_HELP_STRCNS
mov rdx,rax
lea rcx,[rsp+28]
call qword ptr [7FFAE0517120]
mov ecx,5E93
mov rdx,7FFAE066B498
call CORINFO_HELP_STRCNS
mov r9,rax
vmovsd xmm1,qword ptr [7FFADFF34268]
lea rcx,[rsp+28]
mov r8d,14
call qword ptr [7FFAE08479F0]
mov ecx,5E9B
mov rdx,7FFAE066B498
call CORINFO_HELP_STRCNS
mov rdx,rax
lea rcx,[rsp+28]
call qword ptr [7FFAE0517120]
mov ecx,5E93
mov rdx,7FFAE066B498
call CORINFO_HELP_STRCNS
mov r9,rax
lea rcx,[rsp+28]
vmovaps xmm1,xmm6
mov r8d,14
call qword ptr [7FFAE08479F0]
mov rcx,offset MT_System.Exception
call CORINFO_HELP_NEWSFAST
mov rsi,rax
lea rcx,[rsp+28]
call qword ptr [7FFAE05170C0]
mov rdx,rax
mov rcx,rsi
call qword ptr [7FFADFEF7C18]
mov rcx,rsi
call CORINFO_HELP_THROW
int 3
; Total bytes of code 436Compare Jit Disasm
; System.MathBenchmarks.Double.FusedMultiplyAdd()
jmp qword ptr [7FFE01E2F918]
; Total bytes of code 6Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Metadata
Metadata
Assignees
Labels
area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMICLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMItenet-performancePerformance related issuePerformance related issue
