43 Commits
Author SHA1 Message Date
mlemanczyk 38b83a3d55 BitContradiction performance improvements. 2026-01-25 01:25:10 +01:00
mlemanczyk 302bfba40c K state saving frequency increased 2026-01-22 15:10:37 +01:00
mlemanczyk d9816b48e2 State saving interval decreased. 2026-01-20 21:50:17 +01:00
mlemanczyk 6a924f4041 DivisorSet.Percentile, Additive and TopDown modes implemented. State files ported to LMDB => FASTER to avoid millions of files in folders. 2026-01-04 12:17:27 +01:00
mlemanczyk f3ed5b04a1 Improvements to recognize cases when we only find trivial divisors for p. Not fully fixed, yet. 2026-01-02 23:39:32 +01:00
mlemanczyk 2bf9ff233c PrimeOrderCalculator converted to a template. 2025-12-21 18:02:59 +01:00
mlemanczyk 2abc6aae49 --mersenne=bydivisor testers and sessions integrated and converted to structs. 2025-12-18 05:07:31 +01:00
mlemanczyk 45c477de5a DefaultThreadPoolCapacity updated to avoid too big arrays without reason. 2025-12-12 00:57:51 +01:00
mlemanczyk 260aa19e44 Pools renamed to FixedCapacityPools. Other fixed capacity collections added. Queues, concurrent queues and standard stacks replaced with fixed capacity stacks. MethodImplOptions.AggressiveInlining and .AggressiveOptimization added to simple methods and getters / setters. Variables optimized in few places. 2025-12-11 21:10:19 +01:00
mlemanczyk 5c91d79927 State saving frequency increased to prevent too many re-calculations during frequent restarts. 2025-12-08 16:35:24 +01:00
mlemanczyk f1109330df Default no. of accelerators increased back to 298 (max without exceptions). State saving interval decreased to limit unnecessary overhead. 2025-12-08 02:51:04 +01:00
mlemanczyk d69ad9c64a State saving interval decreased. 2025-12-07 19:17:09 +01:00
mlemanczyk 85a90c70bf --gpu-ration command-line argument added. AscendingDivisorRemainderStepper implemented in PrimeTester.IsPrimeCpu. PrimeOrderCalculator.RunOnCpu adjusted for low GPU ratios to prevent infinite increase of the counter. 2025-12-02 23:36:18 +01:00
mlemanczyk f43c67c86f Tasks will now save calculations progress and resume calculation upon restart. 2025-12-02 00:42:38 +01:00
mlemanczyk c3254e3fda Temporary restored delegating all work to CPU in CPU mode in preparation for a branch-less split. 2025-11-30 15:40:03 +01:00
mlemanczyk 6a1198c417 CPU vs GPU work delegation adjusted to better utilize CPU. 2025-11-29 12:09:33 +01:00
mlemanczyk c311b27dcc Prime testing using divisor tables depending on the last digit separated to its own class. PrimeTester switched back to standard endings. 2025-11-27 16:45:02 +01:00
mlemanczyk a296e62d4d --min-k command-line argument added. Partial factoring switched back to CPU. 2025-11-26 22:03:52 +01:00
mlemanczyk 57a50e2a37 Pow2Mod kernel specific methods moved to Pow2MontgomeryKernels. 2025-11-24 18:04:07 +01:00
mlemanczyk 070e2a14fd MontgomeryDivisorData converted to a pooled class to limit GC pressure. MontgomeryDivisorDataGpu added for GPU operations. PrimeOrderCalculator kernels precompiled during warmup. 2025-11-24 15:14:31 +01:00
mlemanczyk 6d1ff1372e 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. 2025-11-23 00:07:03 +01:00
mlemanczyk 54fdff0a4e GPU calculations frequency adjusted 2025-11-19 21:38:07 +01:00
mlemanczyk 5cac51479e GPU memory allocations protected with lock to prevent shared memory access issues. GPU usage limited for the best performance. 2025-11-19 16:49:01 +01:00
mlemanczyk 801b1be3e3 Cleanup 2025-11-18 04:22:39 +01:00
mlemanczyk 183b147135 Heuristic tables split into 2 groups 2025-11-17 16:04:27 +01:00
mlemanczyk c413ee1162 Revert "Stream handling simplified to avoid dictionary lookups in favor of array lookups with known indexes."
This reverts commit a84445ef2a.
2025-11-16 17:14:48 +01:00
mlemanczyk a84445ef2a Stream handling simplified to avoid dictionary lookups in favor of array lookups with known indexes. 2025-11-16 15:01:51 +01:00
mlemanczyk 0540411cad Accelerator index added for dictionary-less use-cases 2025-11-15 02:21:45 +01:00
mlemanczyk c53aa517f7 GpuScratchBuffer / -Pool naively integrated with PriemOrderCalculatorAccelerator (formerly Pow2MontgomeryAccelerator). FactorEntry replaced with 2 arrays - unused field removed. Small cleanup. 2025-11-13 14:41:27 +01:00
mlemanczyk 5bc65464d0 Initial PollardRho implementation for GPU. Added pool for accelerator streams shared across the threads. GPU processing performance and stabilization improvements. GpuUInt128.BinaryGcd switched to the version which outperformed other in benchmarks. 2025-11-12 21:18:30 +01:00
mlemanczyk fa89958736 Stabilization improvements. Stream will be released when releasing GPU lease to prevent application crashes. 2025-11-10 14:30:30 +01:00
mlemanczyk d0b1639a5d GPU stabilization improvements to prevent calculation crashes 2025-11-09 21:52:16 +01:00
Marek Lemańczyk c9ae56a5ec Remove default prime order overloads 2025-10-10 21:51:41 +02:00
Marek Lemańczyk cd1debe9d6 Various micro- and medium- optimizations 2025-10-07 22:14:34 +02:00
Marek Lemańczyk b8aa845c5c Clarify cycle stepper reset inlining 2025-10-02 13:30:56 +02:00
Marek Lemańczyk 458cb77227 We'll output to console not only primes, but also composites. Output to console standardized on ConsoleInterval 2025-09-21 12:56:30 +02:00
Marek Lemańczyk 9a7382fd80 Tiny cleanup 2025-09-17 19:08:43 +02:00
Marek Lemańczyk 13e048c23d Allow exhaustive divisor scans with 128-bit limits 2025-09-15 14:15:35 +02:00
Marek Lemańczyk f17f83e326 No. of divisor cycle iterations made configurable 2025-09-11 01:20:15 +02:00
Marek Lemańczyk d66c70e530 Primes limit restored 2025-09-11 00:57:24 +02:00
Marek Lemańczyk fda058cde0 Tiny cleanup 2025-09-10 21:13:10 +02:00
Marek Lemańczyk 2be49020a9 Small primes array type changed to uint[] to avoid excessive memory use, especially on GPU 2025-09-09 23:58:09 +02:00
Marek Lemańczyk 9f35f6c558 Initial commit. 2025-09-09 21:15:57 +02:00