Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Vectorized Multiply (on Avx512) #45

Merged
merged 38 commits into from
Feb 10, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
8ea6712
avx512 multiply
benaadams Feb 7, 2025
f69cad2
Optimize
benaadams Feb 7, 2025
e8c03a6
optimize
benaadams Feb 7, 2025
30aea1a
optimize
benaadams Feb 7, 2025
11428ea
Optimize
benaadams Feb 7, 2025
33c7242
Optimize
benaadams Feb 7, 2025
6ccee99
Simplify
benaadams Feb 7, 2025
1be23d3
Optimize
benaadams Feb 7, 2025
726fbcc
Optimize
benaadams Feb 7, 2025
503bdb8
optimize
benaadams Feb 7, 2025
71d893f
Recoment and rename
benaadams Feb 7, 2025
81a49f5
Optimize
benaadams Feb 7, 2025
2c5c7a3
Optimize
benaadams Feb 7, 2025
d0195e9
Fix benchmarks
benaadams Feb 9, 2025
27f98c4
Temp refactor
benaadams Feb 9, 2025
ff55841
Improved comments
benaadams Feb 9, 2025
5c8329c
Optimize
benaadams Feb 9, 2025
cc6cac7
Optimize
benaadams Feb 9, 2025
bfaa88c
Optimize
benaadams Feb 9, 2025
f7152ad
Optimize
benaadams Feb 9, 2025
17f5729
Optimize
benaadams Feb 9, 2025
abb4081
Optimize
benaadams Feb 9, 2025
684ce56
Optimize
benaadams Feb 9, 2025
c9118f2
Optimize
benaadams Feb 9, 2025
8fa3b37
Optimize
benaadams Feb 9, 2025
ae34bf9
Optimize
benaadams Feb 9, 2025
450ec9e
Otpimize
benaadams Feb 9, 2025
18ba5fc
Refactor
benaadams Feb 9, 2025
040b8ad
Clean up comments
benaadams Feb 9, 2025
de893e8
Optimize
benaadams Feb 9, 2025
d163c65
Optimize
benaadams Feb 9, 2025
0bae583
Optimize
benaadams Feb 9, 2025
8a92748
Optimize
benaadams Feb 9, 2025
9b843d5
Optimize
benaadams Feb 9, 2025
bca256d
Optimize
benaadams Feb 9, 2025
f380ecf
Optimize
benaadams Feb 9, 2025
2e4113b
Revert "Optimize"
benaadams Feb 9, 2025
f4045aa
Optimize
benaadams Feb 9, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
92 changes: 46 additions & 46 deletions src/Nethermind.Int256.Benchmark/Benchmarks.cs
Original file line number Diff line number Diff line change
Expand Up @@ -89,8 +89,8 @@ public class SignedIntTwoParamBenchmarkBase : SignedBenchmarkBase
public (int, Int256) D;
}

[SimpleJob(RuntimeMoniker.Net70, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.Net90, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net90)]
[MemoryDiagnoser]
public class AddUnsigned : UnsignedTwoParamBenchmarkBase
{
Expand All @@ -108,8 +108,8 @@ public UInt256 Add_UInt256()
}
}

[SimpleJob(RuntimeMoniker.Net70, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.Net90, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net90)]
[MemoryDiagnoser]
public class AddSigned : SignedTwoParamBenchmarkBase
{
Expand All @@ -127,8 +127,8 @@ public Int256 Add_Int256()
}
}

[SimpleJob(RuntimeMoniker.Net70, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.Net90, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net90)]
[MemoryDiagnoser]
public class SubtractUnsigned : UnsignedTwoParamBenchmarkBase
{
Expand All @@ -146,8 +146,8 @@ public UInt256 Subtract_UInt256()
}
}

[SimpleJob(RuntimeMoniker.Net70, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.Net90, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net90)]
[MemoryDiagnoser]
public class SubtractSigned : SignedTwoParamBenchmarkBase
{
Expand All @@ -165,8 +165,8 @@ public Int256 Subtract_Int256()
}
}

[SimpleJob(RuntimeMoniker.Net70, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.Net90, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net90)]
[MemoryDiagnoser]
public class AddModUnsinged : UnsignedThreeParamBenchmarkBase
{
Expand All @@ -184,8 +184,8 @@ public UInt256 AddMod_UInt256()
}
}

[SimpleJob(RuntimeMoniker.Net70, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.Net90, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net90)]
[MemoryDiagnoser]
public class AddModSinged : SignedThreeParamBenchmarkBase
{
Expand All @@ -203,8 +203,8 @@ public Int256 AddMod_Int256()
}
}

[SimpleJob(RuntimeMoniker.Net70, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.Net90, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net90)]
[MemoryDiagnoser]
public class SubtractModUnsinged : UnsignedThreeParamBenchmarkBase
{
Expand All @@ -222,8 +222,8 @@ public UInt256 SubtractMod_UInt256()
}
}

[SimpleJob(RuntimeMoniker.Net70, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.Net90, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net90)]
[MemoryDiagnoser]
public class SubtractModSigned : SignedThreeParamBenchmarkBase
{
Expand All @@ -241,8 +241,8 @@ public Int256 SubtractMod_Int256()
}
}

[SimpleJob(RuntimeMoniker.Net70, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.Net90, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net90)]
[MemoryDiagnoser]
public class MultiplyUnsigned : UnsignedTwoParamBenchmarkBase
{
Expand All @@ -260,8 +260,8 @@ public UInt256 Multiply_UInt256()
}
}

[SimpleJob(RuntimeMoniker.Net70, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.Net90, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net90)]
[MemoryDiagnoser]
public class MultiplySigned : SignedTwoParamBenchmarkBase
{
Expand All @@ -279,8 +279,8 @@ public Int256 Multiply_Int256()
}
}

[SimpleJob(RuntimeMoniker.Net70, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.Net90, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net90)]
[MemoryDiagnoser]
public class MultiplyModUnsigned : UnsignedThreeParamBenchmarkBase
{
Expand All @@ -298,8 +298,8 @@ public UInt256 MultiplyMod_UInt256()
}
}

[SimpleJob(RuntimeMoniker.Net70, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.Net90, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net90)]
[MemoryDiagnoser]
public class MultiplyModSigned : SignedThreeParamBenchmarkBase
{
Expand All @@ -317,8 +317,8 @@ public Int256 MultiplyMod_Int256()
}
}

[SimpleJob(RuntimeMoniker.Net70, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.Net90, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net90)]
[MemoryDiagnoser]
public class DivideUnsigned : UnsignedTwoParamBenchmarkBase
{
Expand All @@ -336,8 +336,8 @@ public UInt256 Divide_UInt256()
}
}

[SimpleJob(RuntimeMoniker.Net70, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.Net90, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net90)]
[MemoryDiagnoser]
public class DivideSigned : SignedTwoParamBenchmarkBase
{
Expand All @@ -355,8 +355,8 @@ public Int256 Divide_Int256()
}
}

[SimpleJob(RuntimeMoniker.Net70, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.Net90, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net90)]
[MemoryDiagnoser]
public class ExpUnsigned : UnsignedIntTwoParamBenchmarkBase
{
Expand All @@ -374,8 +374,8 @@ public UInt256 Exp_UInt256()
}
}

[SimpleJob(RuntimeMoniker.Net70, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.Net90, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net90)]
[MemoryDiagnoser]
public class ExpSigned : SignedIntTwoParamBenchmarkBase
{
Expand All @@ -393,8 +393,8 @@ public Int256 Exp_Int256()
}
}

[SimpleJob(RuntimeMoniker.Net70, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.Net90, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net90)]
[MemoryDiagnoser]
public class ExpModUnsigned : UnsignedThreeParamBenchmarkBase
{
Expand All @@ -412,8 +412,8 @@ public UInt256 ExpMod_UInt256()
}
}

[SimpleJob(RuntimeMoniker.Net70, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.Net90, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net90)]
[MemoryDiagnoser]
public class ExpModSigned : SignedBenchmarkBase
{
Expand All @@ -440,8 +440,8 @@ public Int256 ExpMod_Int256()
}
}

[SimpleJob(RuntimeMoniker.Net70, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.Net90, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net90)]
[MemoryDiagnoser]
public class LeftShiftUnsigned : UnsignedIntTwoParamBenchmarkBase
{
Expand All @@ -459,8 +459,8 @@ public UInt256 LeftShift_UInt256()
}
}

[SimpleJob(RuntimeMoniker.Net70, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.Net90, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net90)]
[MemoryDiagnoser]
public class LeftShiftSigned : SignedIntTwoParamBenchmarkBase
{
Expand All @@ -478,8 +478,8 @@ public Int256 LeftShift_Int256()
}
}

[SimpleJob(RuntimeMoniker.Net70, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.Net90, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net90)]
[MemoryDiagnoser]
public class RightShiftUnsigned : UnsignedIntTwoParamBenchmarkBase
{
Expand All @@ -497,8 +497,8 @@ public UInt256 RightShift_UInt256()
}
}

[SimpleJob(RuntimeMoniker.Net70, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.Net90, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net90)]
[MemoryDiagnoser]
public class RightShiftSigned : SignedIntTwoParamBenchmarkBase
{
Expand All @@ -516,8 +516,8 @@ public Int256 RightShift_Int256()
}
}

[SimpleJob(RuntimeMoniker.Net70, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.Net90, baseline: true)]
[NoIntrinsicsJob(RuntimeMoniker.Net90)]
[MemoryDiagnoser]
public class IsZeroOne
{
Expand Down
4 changes: 3 additions & 1 deletion src/Nethermind.Int256.Benchmark/NoIntrinsicsJobAttribute.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using System;
using System;

using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Jobs;
Expand Down Expand Up @@ -116,6 +116,8 @@ internal static Runtime GetRuntime(this RuntimeMoniker runtimeMoniker)
return CoreRuntime.Core70;
case RuntimeMoniker.Net80:
return CoreRuntime.Core80;
case RuntimeMoniker.Net90:
return CoreRuntime.Core90;
case RuntimeMoniker.Mono:
return MonoRuntime.Default;
case RuntimeMoniker.NativeAot60:
Expand Down
Loading
Loading