Factoring switched to PrimeTester.IsPrime for the best performance. PrimeOrderCalculator.PartialFactor switched to GPU factorization. Every so often it will send work to GPU instead of CPU. BatchedResources renamed to MersenneNumberDivisorByDivisorAccelerator for consistency and moved to its own file. It now uses array instead of dictionary for lookup free performance.
This commit is contained in:
1 parent
7b09c1fd3b
commit
6d1ff1372e
7 files changed
+202
-240
No files matched your search
@@ -42,8 +42,9 @@ internal static partial class PrimeOrderCalculator
|
||||
AcceleratorStream stream = AcceleratorStreamPool.Rent(acceleratorIndex);
|
||||
gpu.Pow2ModEntriesToTestOnDevice.View.CopyFromCPU(stream, entries);
|
||||
|
||||
var kernelLauncher = gpu.CheckFactorsKernelLauncher;
|
||||
kernelLauncher(stream, entryCount, phi, gpu.Pow2ModEntriesToTestOnDevice.View, divisorData, gpu.OutputUlong.View);
|
||||
// var kernelLauncher = gpu.CheckFactorsKernelLauncher;
|
||||
var kernel = gpu.CheckFactorsKernel;
|
||||
kernel.Launch(stream, 1, entryCount, phi, gpu.Pow2ModEntriesToTestOnDevice.View, divisorData, gpu.OutputUlong.View);
|
||||
|
||||
gpu.OutputUlong.View.CopyToCPU(stream, ref order, 1);
|
||||
stream.Synchronize();
|
||||
@@ -170,9 +171,9 @@ internal static partial class PrimeOrderCalculator
|
||||
AcceleratorStream stream = AcceleratorStreamPool.Rent(acceleratorIndex);
|
||||
gpu.Input.View.CopyFromCPU(stream, randomStateSpan);
|
||||
|
||||
var kernelLauncher = gpu.PollardRhoKernelLauncher;
|
||||
var kernel = gpu.PollardRhoKernel;
|
||||
|
||||
kernelLauncher(stream, n, 1, gpu.Input.View, gpu.OutputByte.View, gpu.OutputUlong.View);
|
||||
kernel.Launch(stream, 1, n, 1, gpu.Input.View, gpu.OutputByte.View, gpu.OutputUlong.View);
|
||||
|
||||
gpu.OutputByte.View.CopyToCPU(stream, factoredSpan);
|
||||
gpu.OutputUlong.View.CopyToCPU(stream, factorSpan);
|
||||
|
||||
Reference in new issue
Block a user