Commit Graph
86 Commits
Author SHA1 Message Date
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 131b3265bc PrimeOrderCalculator.Cpu cleaned up - hybrid & GPU related methods moved to their corresponding files. 2025-12-11 00:00:12 +01:00
mlemanczyk 5df2cc7f9b using cleaned up. 2025-12-10 23:59:04 +01:00
mlemanczyk 05d3061c47 MethodImplOptions.AggressiveOptimization & MethodImplOptions.AggressiveInlining optimized. Small optimizations. 2025-12-10 19:59:51 +01:00
mlemanczyk f7dbc017a9 Modulo operators replaced with steppers, where possible. 2025-12-08 20:57:47 +01:00
mlemanczyk 6887111128 BigInteger-friendly steppers added. MersenneResidueStepper converted to struct. Manual residue tracking replaced with steppers. Modulo operations replaced with steppers. 2025-12-07 19:16:45 +01:00
mlemanczyk 86f20ed083 Support for q > 2^64 added in --mersenne=bydivisor mode 2025-12-05 23:33:21 +01:00
mlemanczyk 86192a71b0 Divisor checking optimized to only flag if divisor was found or not without returning complete array of hits. We'll now also track residues for 13, 17 & 19 as the most frequent ones. 2025-12-03 00:57:25 +01:00
mlemanczyk f43c67c86f Tasks will now save calculations progress and resume calculation upon restart. 2025-12-02 00:42:38 +01:00
mlemanczyk 941733905b Hybrid device mode implemented as the current --mersenne=bydivisor CPU execution path. CPU path is now limited to CPU calculations, only. 2025-12-01 03:45:39 +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 5b48a89448 Cleanup. Hint removed. 2025-11-25 01:34:31 +01:00
mlemanczyk 1e9bd49145 Cleanup. No longer applicable TODO removed. 2025-11-25 01:30:13 +01:00
mlemanczyk b9ca95bf8c PrimeOrderCalculatorAccelerator.Rent is now created outside of the loops and re-used for all calculations. 2025-11-24 22:51:53 +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 79021108f5 Tiny cleanup 2025-11-23 14:53:35 +01:00
mlemanczyk 7b09c1fd3b Missing accelerator returns to pool added 2025-11-20 15:57:07 +01:00
mlemanczyk 9939c5d562 Divisor will now be saved to CSV file 2025-11-19 22:14:28 +01:00
mlemanczyk 801b1be3e3 Cleanup 2025-11-18 04:22:39 +01:00
mlemanczyk 342eff2726 GpuKernelPool.GetOrAddKernels removed in --mersenne=bydivisor mode. PartialFactorResult.WithAdditionalPrime will now modify the current instance instead of creating new copy for better performance. SmallPrimeFactorViews renamed to SmallPrimeFactorGpuTables for consistency with other static tables. 2025-11-17 23:33:59 +01:00
mlemanczyk f630bfb598 HeuristicCombinedPrimeTesterAccelerator integrated with PrimeOrderCalculatorAccelerator. 2025-11-17 17:38:23 +01:00
mlemanczyk 183b147135 Heuristic tables split into 2 groups 2025-11-17 16:04: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
Marek Lemańczyk 6dd5cea79f Remove temporary by-divisor review documents 2025-10-28 02:01:28 +01:00
Marek Lemańczyk 94a4ed8328 Hoist prime order thresholds in CPU heuristics 2025-10-27 21:24:43 +01:00
Marek Lemańczyk 9bc8fd5043 Remove heuristic hooks from PrimeTester 2025-10-26 16:18:46 +01:00
Marek Lemańczyk c01abbd03a Restore legacy by-divisor scans for Mersenne testers 2025-10-26 16:04:09 +01:00
Marek Lemańczyk a83ae56caf Use LastDigit enum across Mersenne scanners 2025-10-26 16:04:05 +01:00
Marek Lemańczyk 43c7bafd5d Restore CPU PrimeTester usage and rename fallback helpers 2025-10-26 15:19:49 +01:00
Marek Lemańczyk 15c229665d Add heuristic prime sieves for cached divisor sequences 2025-10-26 03:21:29 +01:00
Marek Lemańczyk fab9ba0413 Restore reviewed divisor heuristics 2025-10-24 19:50:32 +02:00
Marek Lemańczyk bbe0c02069 Use bit masks for divisor heuristics 2025-10-24 19:50:27 +02:00
Marek Lemańczyk 1e5a9128cb Split CPU and GPU exponent steppers 2025-10-24 08:49:53 +02:00
Marek Lemańczyk 7feeb08943 Clarify Pollard-Rho parity guard and seed CPU batches 2025-10-23 19:50:39 +02:00
Marek Lemańczyk c697a7e127 Throw when divisor cycle resolution fails 2025-10-23 01:48:11 +02:00
Marek Lemańczyk ff9b0122c0 Restore hit clearing when divisor cycle is missing 2025-10-23 01:48:06 +02:00
Marek Lemańczyk f0b4cdf6e2 Avoid redundant clearing in CPU divisor sessions 2025-10-23 01:48:02 +02:00
Marek Lemańczyk 8acccce471 Add cycle cache hit tracking instrumentation 2025-10-20 19:28:06 +02:00
Marek Lemańczyk 1a4818c794 Add diagnostics for removed factorization cache 2025-10-20 19:22:02 +02:00
Marek Lemańczyk 28ff9292b8 Remove per-thread factorization cache 2025-10-20 19:08:44 +02:00
Marek Lemańczyk 481d1010e8 Retire outdated windowed pow2 TODOs 2025-10-20 18:37:21 +02:00
Marek Lemańczyk 4831fc84d1 Clean up resolved windowed pow2 TODOs on CPU paths 2025-10-20 18:36:51 +02:00
Marek Lemańczyk 653da2ccc3 Remove dead by-divisor cache fallback 2025-10-19 21:24:07 +02:00
Marek Lemańczyk 7adea979fb Move by-divisor comments ahead of disabled guards 2025-10-17 18:14:01 +02:00
Marek Lemańczyk 8428e6c5bd Clarify skip heuristic guard and tighten order factor init 2025-10-17 15:05:11 +02:00
mlemanczyk 56e413064a Using cleanup 2025-10-17 02:40:51 +02:00
Marek Lemańczyk 571b5a9938 Replace divisor scan UInt128 usage with thread-static GpuUInt128 2025-10-15 22:48:36 +02:00
Marek Lemańczyk 9ab87a8b9b Streamline factor cache lease usage in CPU tester 2025-10-15 21:55:30 +02:00
Marek Lemańczyk 64c3721db4 Streamline divisor factor pooling for CPU hot path 2025-10-15 21:50:11 +02:00
Marek Lemańczyk c99aebdf68 Restore divisor cycle fallback and enforce session disposal guard 2025-10-15 21:29:24 +02:00