EgorBot / runtime-utils

MIT License
0 stars 1 forks source link

EgorBot for am11 in #109087 #179

Open EgorBot opened 1 day ago

EgorBot commented 1 day ago

Processing https://github.com/dotnet/runtime/pull/109087#issuecomment-2508150868 command:

Command -windows_intel -use32bit ```c# using BenchmarkDotNet.Attributes; public class Bench { int a_int32 = 1000000000; int b_int32 = 1000; uint a_uint32 = 1000000000U; uint b_uint32 = 1000U; long a_int64 = 1000000000L; long b_int64 = 1000L; ulong a_uint64 = 1000000000UL; ulong b_uint64 = 1000UL; [Benchmark] public int Div_Int32() => a_int32 / b_int32; [Benchmark] public uint Div_UInt32() => a_uint32 / b_uint32; [Benchmark] public long Div_Int64() => a_int64 / b_int64; [Benchmark] public ulong Div_UInt64() => a_uint64 / b_uint64; [Benchmark] public int Mod_Int32() => a_int32 % b_int32; [Benchmark] public uint Mod_UInt32() => a_uint32 % b_uint32; [Benchmark] public long Mod_Int64() => a_int64 % b_int64; [Benchmark] public ulong Mod_UInt64() => a_uint64 % b_uint64; } ```

(EgorBot will reply in this issue)

am11 commented 1 day ago

@EgorBo does it report something when it fails or gets stuck?

EgorBo commented 1 day ago

@EgorBo does it report something when it fails or gets stuck?

hm.. it timed out. let me check why

EgorBo commented 1 day ago

@EgorBot -windows_intel -use32bit -pr 109087

using BenchmarkDotNet.Attributes;

public class Bench
{
    int a_int32 = 1000000000;
    int b_int32 = 1000;
    uint a_uint32 = 1000000000U;
    uint b_uint32 = 1000U;
    long a_int64 = 1000000000L;
    long b_int64 = 1000L;
    ulong a_uint64 = 1000000000UL;
    ulong b_uint64 = 1000UL;

    [Benchmark]
    public int Div_Int32() => a_int32 / b_int32;

    [Benchmark]
    public uint Div_UInt32() => a_uint32 / b_uint32;

    [Benchmark]
    public long Div_Int64() => a_int64 / b_int64;

    [Benchmark]
    public ulong Div_UInt64() => a_uint64 / b_uint64;

    [Benchmark]
    public int Mod_Int32() => a_int32 % b_int32;

    [Benchmark]
    public uint Mod_UInt32() => a_uint32 % b_uint32;

    [Benchmark]
    public long Mod_Int64() => a_int64 % b_int64;

    [Benchmark]
    public ulong Mod_UInt64() => a_uint64 % b_uint64;
}
EgorBo commented 1 day ago

@EgorBo does it report something when it fails or gets stuck?

hm.. it stuck in BDN

// ** Remained 13 (81.2%) benchmark(s) to run. Estimated finish 2024-11-29 18:49 (0h 7m from now) **
Setup power plan (GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c FriendlyName: High performance)
// **************************
// Benchmark: Bench.Div_UInt64: Job-OVZFHC(Toolchain=\core_root_base\corerun.exe)
// *** Execute ***
// Launch: 1 / 1
// Execute: C:\Users\egorbo\d1bad8ce-1266-48ed-9870-c665e0d24976\corerun.exe a9b7f89b-dd30-4b09-a4c8-73ca4178cf6c.dll --anonymousPipes 2220 2240 --benchmarkName Bench.Div_UInt64 --job Toolchain=\core_root_base\corerun.exe --benchmarkId 3 in C:\Users\egorbo\benchapp\bin\Release\net9.0\win-x86\a9b7f89b-dd30-4b09-a4c8-73ca4178cf6c\bin\Release\net9.0\publish
// BeforeAnythingElse

// Benchmark Process Environment Information:
// BenchmarkDotNet v0.14.0
// Runtime=.NET 10.0.0 (42.42.42.42424), X86 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
// GC=Concurrent Workstation
// HardwareIntrinsics=AVX-512F+CD+BW+DQ+VL+VBMI,AES,BMI1,BMI2,FMA,LZCNT,PCLMUL,POPCNT VectorSize=256
// Job: DefaultJob

OverheadJitting  1: 1 op, 763800.00 ns, 763.8000 us/op
WorkloadJitting  1: 1 op, 285100.00 ns, 285.1000 us/op

OverheadJitting  2: 16 op, 919900.00 ns, 57.4938 us/op
WorkloadJitting  2: 16 op, 931000.00 ns, 58.1875 us/op

WorkloadPilot    1: 16 op, 900.00 ns, 56.2500 ns/op
WorkloadPilot    2: 32 op, 1000.00 ns, 31.2500 ns/op
WorkloadPilot    3: 64 op, 1200.00 ns, 18.7500 ns/op
WorkloadPilot    4: 128 op, 1800.00 ns, 14.0625 ns/op
WorkloadPilot    5: 256 op, 3400.00 ns, 13.2813 ns/op
WorkloadPilot    6: 512 op, 6700.00 ns, 13.0859 ns/op
WorkloadPilot    7: 1024 op, 13400.00 ns, 13.0859 ns/op
WorkloadPilot    8: 2048 op, 25300.00 ns, 12.3535 ns/op
WorkloadPilot    9: 4096 op, 49900.00 ns, 12.1826 ns/op
WorkloadPilot   10: 8192 op, 109000.00 ns, 13.3057 ns/op
WorkloadPilot   11: 16384 op, 206700.00 ns, 12.6160 ns/op
WorkloadPilot   12: 32768 op, 394800.00 ns, 12.0483 ns/op
WorkloadPilot   13: 65536 op, 843200.00 ns, 12.8662 ns/op
WorkloadPilot   14: 131072 op, 1623500.00 ns, 12.3863 ns/op
WorkloadPilot   15: 262144 op, 3197400.00 ns, 12.1971 ns/op
WorkloadPilot   16: 524288 op, 6340900.00 ns, 12.0943 ns/op
WorkloadPilot   17: 1048576 op, 12770800.00 ns, 12.1792 ns/op
WorkloadPilot   18: 2097152 op, 25586000.00 ns, 12.2004 ns/op
WorkloadPilot   19: 4194304 op, 51535100.00 ns, 12.2869 ns/op
WorkloadPilot   20: 8388608 op, 99044900.00 ns, 11.8071 ns/op
WorkloadPilot   21: 16777216 op, 188770900.00 ns, 11.2516 ns/op
WorkloadPilot   22: 33554432 op, 384237900.00 ns, 11.4512 ns/op
WorkloadPilot   23: 67108864 op, 758716000.00 ns, 11.3057 ns/op

OverheadWarmup   1: 67108864 op, 726253700.00 ns, 10.8220 ns/op
OverheadWarmup   2: 67108864 op, 726367700.00 ns, 10.8237 ns/op
OverheadWarmup   3: 67108864 op, 727405200.00 ns, 10.8392 ns/op
OverheadWarmup   4: 67108864 op, 723764100.00 ns, 10.7849 ns/op
OverheadWarmup   5: 67108864 op, 723498300.00 ns, 10.7810 ns/op
OverheadWarmup   6: 67108864 op, 728677700.00 ns, 10.8581 ns/op
OverheadWarmup   7: 67108864 op, 723402300.00 ns, 10.7795 ns/op

OverheadActual   1: 67108864 op, 724894300.00 ns, 10.8018 ns/op
OverheadActual   2: 67108864 op, 724837200.00 ns, 10.8009 ns/op
OverheadActual   3: 67108864 op, 723025700.00 ns, 10.7739 ns/op
OverheadActual   4: 67108864 op, 723243600.00 ns, 10.7772 ns/op
OverheadActual   5: 67108864 op, 724180100.00 ns, 10.7911 ns/op
OverheadActual   6: 67108864 op, 726719900.00 ns, 10.8290 ns/op
OverheadActual   7: 67108864 op, 726267400.00 ns, 10.8222 ns/op
OverheadActual   8: 67108864 op, 723325900.00 ns, 10.7784 ns/op
OverheadActual   9: 67108864 op, 723345600.00 ns, 10.7787 ns/op
OverheadActual  10: 67108864 op, 726424700.00 ns, 10.8246 ns/op
OverheadActual  11: 67108864 op, 723755000.00 ns, 10.7848 ns/op
OverheadActual  12: 67108864 op, 723990200.00 ns, 10.7883 ns/op
OverheadActual  13: 67108864 op, 725269000.00 ns, 10.8074 ns/op
OverheadActual  14: 67108864 op, 726579600.00 ns, 10.8269 ns/op
OverheadActual  15: 67108864 op, 723426800.00 ns, 10.7799 ns/op

WorkloadWarmup   1: 67108864 op, 744690700.00 ns, 11.0968 ns/op
WorkloadWarmup   2: 67108864 op, 743487600.00 ns, 11.0788 ns/op
WorkloadWarmup   3: 67108864 op, 744426600.00 ns, 11.0928 ns/op
WorkloadWarmup   4: 67108864 op, 738359400.00 ns, 11.0024 ns/op
WorkloadWarmup   5: 67108864 op, 744410100.00 ns, 11.0926 ns/op
WorkloadWarmup   6: 67108864 op, 742403300.00 ns, 11.0627 ns/op

// BeforeActualRun

just hangs here without errors

am11 commented 1 day ago

@EgorBot -windows_intel -use32bit -pr 109087

using BenchmarkDotNet.Attributes;

[SimpleJob(launchCount: 5, warmupCount: 5, iterationCount: 5, invocationCount:100, id: "QuickJob")]
public class Bench
{
    int a_int32 = 1000000000;
    int b_int32 = 1000;
    uint a_uint32 = 1000000000U;
    uint b_uint32 = 1000U;
    long a_int64 = 1000000000L;
    long b_int64 = 1000L;
    ulong a_uint64 = 1000000000UL;
    ulong b_uint64 = 1000UL;

    [Benchmark]
    public int Div_Int32() => a_int32 / b_int32;

    [Benchmark]
    public uint Div_UInt32() => a_uint32 / b_uint32;

    [Benchmark]
    public long Div_Int64() => a_int64 / b_int64;

    [Benchmark]
    public ulong Div_UInt64() => a_uint64 / b_uint64;

    [Benchmark]
    public int Mod_Int32() => a_int32 % b_int32;

    [Benchmark]
    public uint Mod_UInt32() => a_uint32 % b_uint32;

    [Benchmark]
    public long Mod_Int64() => a_int64 % b_int64;

    [Benchmark]
    public ulong Mod_UInt64() => a_uint64 % b_uint64;
}
am11 commented 1 day ago

SimpleJob will hopefully give some quick estimates.

am11 commented 1 day ago

@EgorBot -windows_intel -use32bit -pr 109087

using BenchmarkDotNet.Attributes;

public class Bench
{
    int a_int32 = 1000000000;
    int b_int32 = 1000;

    [Benchmark]
    public int Div_Int32() => a_int32 / b_int32;
}
EgorBot commented 1 day ago

Benchmark results on windows_azure_cascadelake

BenchmarkDotNet v0.14.0, Windows 11 (10.0.26100.2314) (Hyper-V)
azure_cascadelake
  Job-SJQJNM : .NET 10.0.0 (42.42.42.42424), X86 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
  Job-NXZCMG : .NET 10.0.0 (42.42.42.42424), X86 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
Method Job Toolchain Mean Error Ratio
Div_Int32 Job-SJQJNM \core_root_base\corerun.exe 0.0538 ns 0.0003 ns 1.00
Div_Int32 Job-NXZCMG \core_root_diff\corerun.exe 0.0529 ns 0.0001 ns 0.98

BDN_Artifacts.zip

cc @am11 (agent_logs.txt). EgorBot manual: link.

am11 commented 1 day ago

@EgorBot -windows_intel -use32bit -pr 109087

using BenchmarkDotNet.Attributes;

public class Bench
{
    uint a_uint32 = 1000000000U;
    uint b_uint32 = 1000U;

    [Benchmark]
    public uint Div_UInt32() => a_uint32 / b_uint32;
}
EgorBot commented 1 day ago

Benchmark results on windows_azure_cascadelake

BenchmarkDotNet v0.14.0, Windows 11 (10.0.26100.2314) (Hyper-V)
azure_cascadelake
  Job-RLNZRG : .NET 10.0.0 (42.42.42.42424), X86 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
  Job-TUDIOY : .NET 10.0.0 (42.42.42.42424), X86 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
Method Job Toolchain Mean Error Ratio
Div_UInt32 Job-RLNZRG \core_root_base\corerun.exe 0.0532 ns 0.0006 ns 1.00
Div_UInt32 Job-TUDIOY \core_root_diff\corerun.exe 0.0550 ns 0.0012 ns 1.03

BDN_Artifacts.zip

cc @am11 (agent_logs.txt). EgorBot manual: link.

am11 commented 1 day ago

@EgorBot -windows_intel -use32bit -pr 109087

using BenchmarkDotNet.Attributes;

public class Bench
{
    long a_int64 = 1000000000L;
    long b_int64 = 1000L;

    [Benchmark]
    public long Div_Int64() => a_int64 / b_int64;
}