Revert "Stream handling simplified to avoid dictionary lookups in favor of array lookups with known indexes."

This reverts commit a84445ef2a.
This commit is contained in:
mlemanczyk committed 2025-11-16 17:14:48 +01:00
1 parent a84445ef2a
commit c413ee1162
15 files changed
+73 -67

No files matched your search

+9 -13
View File
@@ -3,7 +3,6 @@ using System.Runtime.CompilerServices;
using ILGPU.Runtime;
using PerfectNumbers.Core.Gpu;
using PerfectNumbers.Core.Gpu.Accelerators;
using ILGPU;
namespace PerfectNumbers.Core;
@@ -240,36 +239,33 @@ public sealed class HeuristicPrimeTester
}
private static bool HeuristicTrialDivisionGpuDetectsDivisor(ulong n, ulong maxDivisorSquare, byte nMod10)
private bool HeuristicTrialDivisionGpuDetectsDivisor(ulong n, ulong maxDivisorSquare, byte nMod10)
{
// GpuPrimeWorkLimiter.Acquire();
var gpu = HeuristicPrimeTesterAccelerator.Rent(1);
var stream = gpu.Stream!;
var stream = gpu.Stream;
var kernel = gpu.HeuristicTrialDivisionKernel;
var flagView1D = gpu.HeuristicFlag.View;
var flagView = flagView1D.AsContiguous();
bool compositeDetected;
bool compositeDetected = false;
int compositeFlag = 0;
int groupALength = HeuristicPrimeSieves.GroupADivisors.Length;
flagView1D.CopyFromCPU(stream, ref compositeFlag, 1);
var tables = gpu.HeuristicGpuTables;
ArrayView1D<ulong, Stride1D.Dense> divisors = tables.GroupADivisors;
ArrayView1D<ulong, Stride1D.Dense> divisorSquares = tables.GroupADivisorSquares;
kernel.Launch(
stream!,
1,
groupALength,
flagView1D,
flagView,
n,
maxDivisorSquare,
divisors,
divisorSquares);
HeuristicGpuDivisorTableKind.GroupA,
gpu.HeuristicGpuTables);
flagView1D.CopyToCPU(stream, ref compositeFlag, 1);
stream.Synchronize();
stream!.Synchronize();
compositeDetected = compositeFlag != 0;
@@ -300,7 +296,7 @@ public sealed class HeuristicPrimeTester
stream,
1,
divisorLength,
flagView1D,
flagView,
n,
maxDivisorSquare,
tableKind,