Commit Graph
100 Commits
Author SHA1 Message Date
Marek Lemańczyk 716ffcb243 Route prime-order pow2 kernel through plain modular helper 2025-10-13 05:08:34 +02:00
Marek Lemańczyk 7ef0906a9b Merge pull request #163 from mlemanczyk/codex/analyze-caching-strategy-for-mersenne-path
Clarify per-divisor Montgomery recomputation
2025-10-13 03:43:36 +02:00
Marek Lemańczyk f9d51efe94 Clarify per-divisor Montgomery recomputation 2025-10-13 03:43:23 +02:00
Marek Lemańczyk b2b71f705a Merge pull request #162 from mlemanczyk/codex/analyze-execution-path-for-gpu-optimization
Batch CPU divisor scanning in reusable batches
2025-10-13 01:42:26 +02:00
Marek Lemańczyk 9e06a21718 Streamline GPU remainder batching tables 2025-10-13 01:35:50 +02:00
Marek Lemańczyk 483584b5d4 Add GPU options for by-divisor Montgomery data 2025-10-13 01:35:46 +02:00
Marek Lemańczyk ea29035c55 Use GpuUInt128 in by-divisor GPU scan 2025-10-13 01:35:40 +02:00
Marek Lemańczyk cd47b122a5 Batch GPU remainder filtering for by-divisor scan 2025-10-13 01:35:36 +02:00
Marek Lemańczyk cfedfd12c8 Restore CPU by-divisor flow when GPU deltas disabled 2025-10-13 01:35:32 +02:00
Marek Lemańczyk 41e6703926 Add dedicated GPU residue evaluator for by-divisor deltas 2025-10-13 01:35:26 +02:00
Marek Lemańczyk 0902b18721 Add GPU delta routing option for by-divisor mode 2025-10-13 01:35:21 +02:00
mlemanczyk 67dcf3ac7b Local variables optimized for reuse and lowered registry pressure. 2025-10-12 23:57:58 +02:00
Marek Lemańczyk 681e9a4a5e Batch CPU divisor scanning across reusable buffers 2025-10-12 22:46:58 +02:00
mlemanczyk 77ef93eb91 Standardized on neutral naming for easier reuse 2025-10-12 21:19:54 +02:00
mlemanczyk fcfb6f6434 New benchmarks added. Tiny optimization 2025-10-12 21:17:21 +02:00
mlemanczyk 8c0320d837 Add optimized 2025-10-12 20:25:43 +02:00
mlemanczyk 0ff93e1d09 MulAdd optimized 2025-10-12 20:18:35 +02:00
mlemanczyk 6c4fa7fcf6 Benchmark selection restored 2025-10-12 20:15:38 +02:00
mlemanczyk 9e5ee36e6e Tiny optimization 2025-10-12 19:00:56 +02:00
Marek Lemańczyk e5486af49d Merge pull request #161 from mlemanczyk/codex/add-benchmarks-for-mutableuint128.multiplyadd
Restore original MultiplyAddInline implementation
2025-10-12 18:54:22 +02:00
Marek Lemańczyk 67d9f4be55 Restore original MultiplyAddInline logic 2025-10-12 18:54:05 +02:00
mlemanczyk d555e157f6 Calculation switched to typical O(N) 2025-10-12 18:23:06 +02:00
Marek Lemańczyk 7562f14b1c Merge pull request #160 from mlemanczyk/codex/remove-uint128-from-mutableuint128
Restore MutableUInt128 UInt128-based initialization
2025-10-12 16:03:26 +02:00
Marek Lemańczyk cc50e7376f Restore UInt128 initialization helpers 2025-10-12 16:03:10 +02:00
Marek Lemańczyk 808bf64fab Merge pull request #159 from mlemanczyk/codex/update-pow2mod-to-use-montgomery
Switch Pow2Mod kernel to non-windowed Montgomery exponentiation
2025-10-12 05:44:53 +02:00
Marek Lemańczyk 86989d0502 Replace Pow2Mod kernel with Montgomery binary ladder 2025-10-12 05:44:39 +02:00
mlemanczyk e5dc688865 Locking temporarily disabled for testing 2025-10-12 05:38:33 +02:00
mlemanczyk c64e672552 Heuristic parameters adjusted to test match thread counts in runs 2025-10-12 05:38:05 +02:00
mlemanczyk a1848e4f0b Compilation errors fixed. 2025-10-12 00:39:12 +02:00
mlemanczyk be4ed3db34 Merge branch 'odd-powers-on-gpu' of https://github.com/mlemanczyk/even-perfect-numbers-scanner into odd-powers-on-gpu 2025-10-12 00:38:00 +02:00
mlemanczyk dde01cf8b9 Compilation errors fixed. 2025-10-12 00:37:57 +02:00
Marek Lemańczyk 4838abc6c0 Merge pull request #158 from mlemanczyk/codex/revert-to-parallel.foreach-for-candidate-processing
Restore Parallel.ForEach scheduling for by-divisor CPU path
2025-10-12 00:36:31 +02:00
Marek Lemańczyk 9c378db18f Use Parallel.ForEach for grouped by-divisor work items 2025-10-12 00:36:20 +02:00
Marek Lemańczyk 4f73d89716 Merge pull request #157 from mlemanczyk/codex/ensure-proper-threading-for-candidate-groups
Group by-divisor CPU workloads per worker
2025-10-12 00:16:31 +02:00
Marek Lemańczyk 421cb8ae7d Group by-divisor CPU workloads per worker 2025-10-12 00:00:47 +02:00
Marek Lemańczyk 17f1ea73a7 Merge pull request #156 from mlemanczyk/codex/analyze-gc-pressure-in-evenperfectbitscanner
Reduce GC churn in CPU Montgomery pow2 ladder
2025-10-11 23:13:31 +02:00
Marek Lemańczyk 60c8dbf6d6 Make MutableUInt128 a struct and reuse it in Pollard Rho 2025-10-11 23:13:17 +02:00
Marek Lemańczyk 9d62278bb3 Use stack buffers for CPU exponent lowering and add MutableUInt128 2025-10-11 23:13:12 +02:00
Marek Lemańczyk 2da549fe8c Reduce GC in CPU odd power ladder 2025-10-11 22:45:46 +02:00
Marek Lemańczyk b33158390f Merge pull request #155 from mlemanczyk/codex/add-time-limit-for-prime-testing
Refine by-divisor prime testing time limits
2025-10-11 22:29:24 +02:00
Marek Lemańczyk 6a1925dd47 Refine by-divisor prime test time limits 2025-10-11 22:28:52 +02:00
Marek Lemańczyk b47e758235 Merge pull request #154 from mlemanczyk/codex/analyze-evenperfectbitscanner-for-early-termination
Short-circuit order reduction in by-divisor CPU path
2025-10-11 21:47:56 +02:00
Marek Lemańczyk 2801832af9 Short-circuit divisor order reduction once the exponent is reached 2025-10-11 21:47:39 +02:00
Marek Lemańczyk ec265bde8b Merge pull request #153 from mlemanczyk/codex/analyze-caching-efficiency-in-evenperfectbitscanner
Remove Montgomery divisor cache
2025-10-11 21:17:45 +02:00
Marek Lemańczyk ad22329814 Avoid pooling small buffers in CPU divisor pipeline 2025-10-11 21:17:18 +02:00
Marek Lemańczyk 8e9390bc5e Isolate CPU divisor pools per thread 2025-10-11 21:17:12 +02:00
Marek Lemańczyk cd69c08fb4 Remove Montgomery divisor cache 2025-10-11 20:50:13 +02:00
Marek Lemańczyk fca650b285 Merge pull request #152 from mlemanczyk/codex/optimize-accelerator-allocation-for-mersennedivisorcycles
Remove GPU fallback from context pool
2025-10-11 18:37:48 +02:00
Marek Lemańczyk c4858d2829 Dispose GPU execution scope with the kernel lease 2025-10-11 18:37:38 +02:00
Marek Lemańczyk d476748216 Remove CPU fallback from GPU context pool 2025-10-11 18:31:46 +02:00
Marek Lemańczyk 3e2d2b05b1 Merge pull request #151 from mlemanczyk/codex/modify-primeordercalculator-for-divisor-cycle
Reuse cached divisor cycle suppression scopes
2025-10-11 17:35:13 +02:00
Marek Lemańczyk 3c926e4909 Cache divisor cycle suppression scopes 2025-10-11 17:35:00 +02:00
Marek Lemańczyk e1be80048f Merge pull request #150 from mlemanczyk/codex/analyze-garbage-collector-cost-issue
Pool prime factor partial results for divisor factoring
2025-10-11 16:39:24 +02:00
Marek Lemańczyk 99c98cd017 Pool prime factor partial results for divisor factoring 2025-10-11 16:39:07 +02:00
Marek Lemańczyk 8e7df60dbf Merge pull request #149 from mlemanczyk/codex/modify-primeordercalculator-for-gpu-execution
Enable GPU fallbacks for CPU order calculations
2025-10-11 15:58:54 +02:00
Marek Lemańczyk 3c1519874c Enable GPU fallbacks for CPU order calculations 2025-10-11 15:58:34 +02:00
Marek Lemańczyk 8fb7f937c0 Merge pull request #148 from mlemanczyk/codex/analyze-and-comment-mersennedivisorcycles-method-calls
Restore GPU heuristics and reuse cached order factorization
2025-10-11 15:30:31 +02:00
Marek Lemańczyk fa74667f89 Respect GPU configuration and reuse order factorization 2025-10-11 15:30:04 +02:00
Marek Lemańczyk 45183acd9b Merge pull request #147 from mlemanczyk/codex/update-.csproj-to-exclude-.temp.cs-files
Exclude VS Code temp files from project builds
2025-10-11 14:24:55 +02:00
Marek Lemańczyk 4f5ae7b674 Exclude VS Code temp files from compilation 2025-10-11 14:22:59 +02:00
mlemanczyk 12140bca0a Rented pools made thread static 2025-10-11 14:14:28 +02:00
mlemanczyk 1cbf49c8b5 Small optimizations 2025-10-11 13:37:23 +02:00
Marek Lemańczyk 74fb7f1535 Merge pull request #146 from mlemanczyk/codex/optimize-ulongextensions-for-gpu-calculations
Accelerate Montgomery odd power initialization with GPU batches
2025-10-10 23:16:29 +02:00
Marek Lemańczyk 9181959390 Accelerate Montgomery odd power initialization with GPU batches 2025-10-10 23:12:49 +02:00
mlemanczyk 5a4a5e4d98 Heuristic defaults restored. 2025-10-10 22:48:46 +02:00
mlemanczyk ee2df92a15 Performance improvement to decrease startup time. 2025-10-10 22:48:28 +02:00
Marek Lemańczyk 38120fba13 Merge pull request #145 from mlemanczyk/codex/merge-selective-improvements-from-pollardrhoplus2
Remove default prime order overloads
2025-10-10 21:52:09 +02:00
Marek Lemańczyk c9ae56a5ec Remove default prime order overloads 2025-10-10 21:51:41 +02:00
mlemanczyk 64c08f9b49 We'll resolve the check when divisor cycle equals p. Tiny cleanup 2025-10-09 00:18:48 +02:00
Marek Lemańczyk 79d821c475 Merge pull request #127 from mlemanczyk/codex/review-caching-in-evenperfectbitscanner
Compact by-divisor candidate filtering
2025-10-08 23:34:56 +02:00
Marek Lemańczyk adac9ff5f9 Compact by-divisor candidate filtering 2025-10-08 23:34:35 +02:00
Marek Lemańczyk 4ab70ec4a8 Merge pull request #126 from mlemanczyk/codex/analyze-thread-processing-in-evenperfectbitscanner
Enable parallel by-divisor Mersenne scanning
2025-10-08 22:46:16 +02:00
Marek Lemańczyk 9a81f5f685 Enable parallel by-divisor scanning threads 2025-10-08 22:45:53 +02:00
Marek Lemańczyk 686d482417 Merge pull request #125 from mlemanczyk/codex/analyze-evenperfectbitscanner-gpu-execution
Reduce GPU remainder transfers for divisor filtering
2025-10-08 22:28:49 +02:00
Marek Lemańczyk 85a98eb009 Reduce GPU remainder transfers for divisor filtering 2025-10-08 22:28:36 +02:00
Marek Lemańczyk 5a66abe672 Merge pull request #124 from mlemanczyk/codex/enhance-tests-for-mersenne-class-path
Add GPU by-divisor tests for small factors
2025-10-08 21:39:25 +02:00
Marek Lemańczyk fbe9a98b42 Add GPU by-divisor coverage for small factors 2025-10-08 21:39:10 +02:00
Marek Lemańczyk 4afe0e356e Merge pull request #123 from mlemanczyk/codex/adjust-bydivisor-path-for-divisor-cycles
Align CPU by-divisor scan with divisor cycle cache filters
2025-10-08 20:16:05 +02:00
Marek Lemańczyk c45b3951c3 Align CPU by-divisor scan with cached divisor filters 2025-10-08 20:15:26 +02:00
mlemanczyk 632957e4f4 Spell-check settings adjusted 2025-10-08 19:57:10 +02:00
mlemanczyk 6dc26336c6 Remainder check adjusted to PrimesGenerator. 2025-10-08 19:56:53 +02:00
Marek Lemańczyk 6a4ee0e2c5 Merge pull request #122 from mlemanczyk/codex/modify-evenperfectbitscanner-for-divisor-cycles
Filter CPU divisor-by-divisor scan by residue heuristics
2025-10-08 19:23:47 +02:00
Marek Lemańczyk 85634da6eb Filter CPU divisor checks by admissible residues 2025-10-08 19:23:09 +02:00
Marek Lemańczyk 26abc2dfa8 Merge pull request #121 from mlemanczyk/codex/restore-cache-functionality-for-gpu-path
Use ReadOnlyGpuUInt128 in by-divisor GPU kernels
2025-10-08 18:47:54 +02:00
Marek Lemańczyk 6918bd28ff Make by-divisor GPU kernels reuse read-only operands 2025-10-08 18:47:16 +02:00
Marek Lemańczyk cd1debe9d6 Various micro- and medium- optimizations 2025-10-07 22:14:34 +02:00
Marek Lemańczyk 2eb622030e Temporary test results added for bydivisor processing 2025-10-07 22:06:16 +02:00
Marek Lemańczyk 762b9bd9f3 Benchmark results added 2025-10-07 22:02:15 +02:00
Marek Lemańczyk b27c8bffa7 Launch settings updated for bydivisor method 2025-10-07 22:02:00 +02:00
Marek Lemańczyk c87f88fd88 Generic TODO list added 2025-10-07 22:01:40 +02:00
Marek Lemańczyk 2dd5a679e2 Spell-check settings updated 2025-10-07 22:00:01 +02:00
Marek Lemańczyk e0a5eea62d Profiling results added 2025-10-07 21:59:38 +02:00
Marek Lemańczyk 48127845b5 GPU errors won't go silently, so that we can analyze and fix them. 2025-10-07 21:57:27 +02:00
Marek Lemańczyk 31e95e5a8b Merge pull request #120 from mlemanczyk/codex/refactor-cycle-calculation-methods-for-mersenne
Streamline by-divisor cycle equality checks
2025-10-05 21:33:10 +02:00
Marek Lemańczyk 16181903a1 Streamline by-divisor cycle equality checks 2025-10-05 21:32:40 +02:00
Marek Lemańczyk bd8686b86b Unused parameter removed 2025-10-05 19:14:42 +02:00
Marek Lemańczyk 894a3d8af2 Small console info status updates added 2025-10-05 19:11:13 +02:00
Marek Lemańczyk ac846df7d9 Merge pull request #119 from mlemanczyk/codex/restore-original-method-content-after-exception
Restore incremental GPU scan body after temporary disable
2025-10-05 17:39:50 +02:00
Marek Lemańczyk 581da24b2f Restore GPU incremental scan logic behind exception 2025-10-05 17:39:31 +02:00
Marek Lemańczyk 0543306f31 Merge pull request #118 from mlemanczyk/codex/identify-and-fix-failing-fast-tests
Fix odd power table updates in GPU heuristics
2025-10-05 16:57:35 +02:00