Restore CPU PrimeTester usage and rename fallback helpers

This commit is contained in:
Marek Lemańczyk committed 2025-10-26 15:19:49 +01:00
1 parent ff1860a7b3
commit 43c7bafd5d
11 files changed
+1130 -1003

No files matched your search

@@ -12,8 +12,8 @@ namespace EvenPerfectBitScanner.Benchmarks;
[MemoryDiagnoser]
public class PrimeTesterBenchmarks
{
private PrimeTester _cpuTester = null!;
private PrimeTester _gpuTester = null!;
private HeuristicPrimeTester _cpuTester = null!;
private HeuristicPrimeTester _gpuTester = null!;
private ulong[] _candidates = [];
[ParamsSource(nameof(GetBenchmarkCases))]
@@ -22,9 +22,8 @@ public class PrimeTesterBenchmarks
[GlobalSetup]
public void GlobalSetup()
{
PrimeTester.EnableHeuristicPrimeTesting = true;
_cpuTester = new PrimeTester();
_gpuTester = new PrimeTester();
_cpuTester = new HeuristicPrimeTester();
_gpuTester = new HeuristicPrimeTester();
_candidates = BenchmarkCase.Candidates;
if (_candidates.Length == 0)
@@ -41,7 +40,7 @@ public class PrimeTesterBenchmarks
[Benchmark(Baseline = true)]
public int HeuristicCpu()
{
PrimeTester tester = _cpuTester;
HeuristicPrimeTester tester = _cpuTester;
ulong[] values = _candidates;
CancellationToken cancellationToken = CancellationToken.None;
int primeCount = 0;
@@ -60,14 +59,14 @@ public class PrimeTesterBenchmarks
[Benchmark]
public int HeuristicGpu()
{
PrimeTester tester = _gpuTester;
HeuristicPrimeTester tester = _gpuTester;
ulong[] values = _candidates;
CancellationToken cancellationToken = CancellationToken.None;
int primeCount = 0;
for (int i = 0; i < values.Length; i++)
{
if (tester.HeuristicIsPrimeGpu(values[i]))
if (tester.IsPrimeGpu(values[i]))
{
primeCount++;
}
@@ -87,7 +86,7 @@ public class PrimeTesterBenchmarks
for (int i = 0; i < values.Length; i++)
{
if (PrimeTester.LegacyIsPrimeGpu(values[i], cancellationToken))
if (PrimeTester.IsPrimeGpuFallback(values[i], cancellationToken))
{
primeCount++;
}
@@ -106,7 +105,7 @@ public class PrimeTesterBenchmarks
for (int i = 0; i < values.Length; i++)
{
if (PrimeTester.LegacyIsPrimeInternal(values[i], cancellationToken))
if (PrimeTester.IsPrimeInternal(values[i], cancellationToken))
{
primeCount++;
}