On current version of BenchmarkDotNet implementation.
--affinity command line argument is parsed as int (signed).
So it can't accept value that over int.MaxValue value and it can't specify over 32-processor affinity.
|
public int? Affinity { get; set; } |
I thought, it need to change affinity parameter to nuint (unsigned) to pass affinity as bit mask.
Note: Currently BenchmarkDotNet seems not support CPU groups. So affinity can set up to 64 logical CPU cores.
|
// Max supported affinity without CPU groups is 64 |
|
long cpuMask = Environment.ProcessorCount >= 64 ? unchecked((long)0xFFFF_FFFF_FFFF_FFFF) : (1L << Environment.ProcessorCount) - 1; |
On current version of BenchmarkDotNet implementation.
--affinitycommand line argument is parsed as int (signed).So it can't accept value that over
int.MaxValuevalue and it can't specify over 32-processor affinity.BenchmarkDotNet/src/BenchmarkDotNet/ConsoleArguments/CommandLineOptions.cs
Line 67 in b515068
I thought, it need to change affinity parameter to
nuint(unsigned) to pass affinity as bit mask.Note: Currently BenchmarkDotNet seems not support CPU groups. So affinity can set up to 64 logical CPU cores.
BenchmarkDotNet/src/BenchmarkDotNet/Extensions/ProcessExtensions.cs
Lines 45 to 46 in b515068