Restored faster version of the calculations
This commit is contained in:
1 parent
5d8450192d
commit
53554ffd3d
2 files changed
+8
-12
No files matched your search
@@ -23,12 +23,10 @@ public class MersenneNumberIncrementalGpuTester(GpuKernelType kernelType, bool u
|
|||||||
|
|
||||||
var pow2Kernel = gpuLease.Pow2ModKernel;
|
var pow2Kernel = gpuLease.Pow2ModKernel;
|
||||||
var incKernel = gpuLease.IncrementalKernel;
|
var incKernel = gpuLease.IncrementalKernel;
|
||||||
UInt128 exponent128 = exponent;
|
ulong step10 = ((exponent % 10UL) << 1) % 10UL;
|
||||||
exponent128.Mod10_8_5_3(out ulong exponentMod10, out ulong exponentMod8, out ulong exponentMod5, out ulong exponentMod3);
|
ulong step8 = ((exponent & 7UL) << 1) & 7UL;
|
||||||
ulong step10 = (exponentMod10 << 1) % 10UL;
|
ulong step3 = ((exponent % 3UL) << 1) % 3UL;
|
||||||
ulong step8 = (exponentMod8 << 1) & 7UL;
|
ulong step5 = ((exponent % 5UL) << 1) % 5UL;
|
||||||
ulong step3 = (exponentMod3 << 1) % 3UL;
|
|
||||||
ulong step5 = (exponentMod5 << 1) % 5UL;
|
|
||||||
GpuUInt128 twoPGpu = (GpuUInt128)twoP;
|
GpuUInt128 twoPGpu = (GpuUInt128)twoP;
|
||||||
var smallCyclesView = GpuKernelPool.EnsureSmallCyclesOnDevice(accelerator);
|
var smallCyclesView = GpuKernelPool.EnsureSmallCyclesOnDevice(accelerator);
|
||||||
ResiduePrimeViews primeViews = default;
|
ResiduePrimeViews primeViews = default;
|
||||||
|
|||||||
@@ -24,12 +24,10 @@ public class MersenneNumberResidueGpuTester(bool useGpuOrder)
|
|||||||
UInt128 kStart = 1UL;
|
UInt128 kStart = 1UL;
|
||||||
byte last = lastIsSeven ? (byte)1 : (byte)0;
|
byte last = lastIsSeven ? (byte)1 : (byte)0;
|
||||||
var kernel = gpuLease.Pow2ModKernel;
|
var kernel = gpuLease.Pow2ModKernel;
|
||||||
UInt128 exponent128 = exponent;
|
ulong step10 = ((exponent % 10UL) << 1) % 10UL;
|
||||||
exponent128.Mod10_8_5_3(out ulong exponentMod10, out ulong exponentMod8, out ulong exponentMod5, out ulong exponentMod3);
|
ulong step8 = ((exponent & 7UL) << 1) & 7UL;
|
||||||
ulong step10 = (exponentMod10 << 1) % 10UL;
|
ulong step3 = ((exponent % 3UL) << 1) % 3UL;
|
||||||
ulong step8 = (exponentMod8 << 1) & 7UL;
|
ulong step5 = ((exponent % 5UL) << 1) % 5UL;
|
||||||
ulong step3 = (exponentMod3 << 1) % 3UL;
|
|
||||||
ulong step5 = (exponentMod5 << 1) % 5UL;
|
|
||||||
GpuUInt128 twoPGpu = (GpuUInt128)twoP;
|
GpuUInt128 twoPGpu = (GpuUInt128)twoP;
|
||||||
|
|
||||||
var orderBuffer = accelerator.Allocate1D<ulong>(batchSize);
|
var orderBuffer = accelerator.Allocate1D<ulong>(batchSize);
|
||||||
|
|||||||
Reference in new issue
Block a user