EgorBot / runtime-utils

MIT License
0 stars 1 forks source link

EgorBot for AaronRobinsonMSFT in #107218 #61

Open EgorBot opened 1 week ago

EgorBot commented 1 week ago

Processing https://github.com/dotnet/runtime/pull/107218#issuecomment-2327073503 command:

Command -intel -arm64 -perf ``` using System; using System.Runtime.CompilerServices; using BenchmarkDotNet.Attributes; using BenchmarkDotNet.Running; BenchmarkRunner.Run(args: args); public class Bench { [Benchmark] public void Foo() { for (int i = 0; i < 1000; i++) Work(1); } [MethodImpl(MethodImplOptions.NoInlining)] static void Work(int size) => GC.KeepAlive(GC.AllocateUninitializedArray(size)); } ```

(EgorBot will reply in this issue)

EgorBot commented 1 week ago

Benchmark results on Intel

BenchmarkDotNet v0.14.0, Ubuntu 22.04.4 LTS (Jammy Jellyfish)
Intel Xeon Platinum 8370C CPU 2.80GHz, 1 CPU, 8 logical and 4 physical cores
  Job-QZYBNP : .NET 10.0.0 (42.42.42.42424), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
  Job-BSZHLM : .NET 10.0.0 (42.42.42.42424), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
Method Toolchain Mean Error Ratio
Foo Main 9.324 μs 0.1835 μs 1.00
Foo PR 8.896 μs 0.1191 μs 0.95

BDN_Artifacts.zip

Flame graphs: Main vs PR 🔥 Hot asm: Main vs PR Hot functions: Main vs PR Counters: Main vs PR

For clean perf results, make sure you have just one [Benchmark] in your app.

EgorBot commented 1 week ago

cc @AaronRobinsonMSFT (logs)

EgorBot commented 1 week ago

Benchmark results on Ampere

BenchmarkDotNet v0.14.0, Ubuntu 22.04.4 LTS (Jammy Jellyfish)
Ampere
  Job-NAIHYY : .NET 10.0.0 (42.42.42.42424), Arm64 RyuJIT AdvSIMD
  Job-XKUARV : .NET 10.0.0 (42.42.42.42424), Arm64 RyuJIT AdvSIMD
RatioSD=0.02
Method Toolchain Mean Error Ratio
Foo Main 9.827 μs 0.1672 μs 1.00
Foo PR 9.251 μs 0.1111 μs 0.94

BDN_Artifacts.zip

Flame graphs: Main vs PR 🔥 Hot asm: Main vs PR Hot functions: Main vs PR Counters: Main vs PR

For clean perf results, make sure you have just one [Benchmark] in your app.

EgorBot commented 1 week ago

cc @AaronRobinsonMSFT (logs)

EgorBo commented 1 week ago

Looks like I broke profiler mode in my recent updates to the bot 😐