Commit Graph
100 Commits
Author SHA1 Message Date
mlemanczyk 2f461ee001 Merge branch 'codex/analyze-gc-instances-in-checkdivisors-method' of https://github.com/mlemanczyk/even-perfect-numbers-scanner into codex/analyze-gc-instances-in-checkdivisors-method 2025-10-28 20:12:45 +01:00
mlemanczyk 93aed56f23 Non-heuristic GPU benchmark uncommented, since we improved it. 2025-10-28 20:12:41 +01:00
Marek Lemańczyk ff9774925e Merge pull request #245 from mlemanczyk/codex/move-buildsmallprimes-to-divisorgenerator-g256a9
Enable residue-aware GPU sieve in PrimeTester
2025-10-28 20:00:22 +01:00
Marek Lemańczyk 1f9421430b Reuse GPU divisor tables across PrimeTester batches 2025-10-28 19:53:11 +01:00
Marek Lemańczyk c53966e481 Enable residue-aware GPU sieve in PrimeTester 2025-10-28 18:39:18 +01:00
mlemanczyk 3d43d52f2e Console logging updated 2025-10-28 16:04:42 +01:00
Marek Lemańczyk fa4bb0bcc1 Merge pull request #243 from mlemanczyk/codex/modify-evenperfectbitscanner-to-use-taskthreadpool
Refactor by-divisor scheduling to use task thread pool
2025-10-28 15:47:47 +01:00
Marek Lemańczyk c4c783610b Add start gate to by-divisor task scheduling 2025-10-28 15:32:15 +01:00
Marek Lemańczyk 29f58e3059 Refactor by-divisor scheduling to use task thread pool 2025-10-28 15:11:21 +01:00
Marek Lemańczyk 29af0cb0ce Merge pull request #242 from mlemanczyk/codex/modify-taskthreadpool-to-terminate-threads-after-tasks
Stop tracking double disposal in TaskThreadPool
2025-10-28 14:29:48 +01:00
Marek Lemańczyk 3edf2cd575 Stop tracking double disposal in TaskThreadPool 2025-10-28 14:29:34 +01:00
Marek Lemańczyk a89ed7576e Merge pull request #241 from mlemanczyk/codex/remove-executionscope-structure
Remove GPU context creation lock
2025-10-28 13:39:43 +01:00
Marek Lemańczyk 86990ae0f7 Remove kernel initialization lock from GPU leases 2025-10-28 13:30:47 +01:00
Marek Lemańczyk de7ddd8db3 Remove GPU context creation lock 2025-10-28 13:26:20 +01:00
mlemanczyk 139899fa5e More console logs added. 2025-10-28 02:11:24 +01:00
Marek Lemańczyk c39a99a4fd Merge pull request #240 from mlemanczyk/codex/analyze-mersenne=bydivisor-loops-for-early-breaks-kynlfe
Remove temporary by-divisor review documents
2025-10-28 02:01:52 +01:00
Marek Lemańczyk 6dd5cea79f Remove temporary by-divisor review documents 2025-10-28 02:01:28 +01:00
Marek Lemańczyk bd0727131f Merge pull request #238 from mlemanczyk/codex/optimize-evenperfectbitscanner-loops-kit1so
Hoist prime order thresholds in CPU heuristics
2025-10-27 21:31:23 +01:00
Marek Lemańczyk 968dd89d0d Remove by-divisor path map document 2025-10-27 21:28:41 +01:00
Marek Lemańczyk 94a4ed8328 Hoist prime order thresholds in CPU heuristics 2025-10-27 21:24:43 +01:00
mlemanczyk d381abe0cc We'll now clear the dictionary after renting, to avoid unnecessary clearing if it's not going to be used anymore. 2025-10-27 16:54:49 +01:00
mlemanczyk 50d66a5186 Switched to GPU version in some places. 2025-10-27 15:30:10 +01:00
Marek Lemańczyk 1bd3d5c163 Merge pull request #235 from mlemanczyk/codex/modify-primetester.isprime-for-gpu
Add GPU prime tester overload for preallocated buffers
2025-10-27 00:03:38 +01:00
Marek Lemańczyk 9a0e328995 Reintroduce MulHigh CPU helper and tighten GPU sieve loop 2025-10-26 23:41:14 +01:00
Marek Lemańczyk e2f68cedf2 Short-circuit small prime sieve kernel loops 2025-10-26 22:42:27 +01:00
Marek Lemańczyk 0e1212aa1c Split MulHigh extensions into CPU and GPU variants 2025-10-26 22:42:21 +01:00
Marek Lemańczyk 3d458fc6da Use precomputed small prime squares in GPU sieve 2025-10-26 22:28:04 +01:00
Marek Lemańczyk 794e092e57 Refactor GPU partial factoring context handling 2025-10-26 21:46:11 +01:00
Marek Lemańczyk ba439f0f0f Reuse GPU context for nested partial factoring 2025-10-26 20:58:21 +01:00
Marek Lemańczyk 6458f6740d Add GPU prime tester overload for preallocated buffers 2025-10-26 20:30:44 +01:00
mlemanczyk f2ce40ade9 Additional logging added. 2025-10-26 20:00:32 +01:00
Marek Lemańczyk 5c9fb47a3d Merge pull request #234 from mlemanczyk/codex/restore-original-primetester-path
Restore CPU PrimeTester usage and rename fallback helpers
2025-10-26 19:09:05 +01:00
Marek Lemańczyk 3758524450 Extract divisor validator and rename legacy CPU prime helper 2025-10-26 18:59:07 +01:00
Marek Lemańczyk 1e5eadac34 Refine heuristic prime tester integration 2025-10-26 18:15:27 +01:00
Marek Lemańczyk 21d645fcf0 Comment out legacy PrimeTester guards 2025-10-26 18:15:22 +01:00
Marek Lemańczyk 55554d9565 Inline legacy GPU sieve and update heuristic fallbacks 2025-10-26 17:06:13 +01:00
Marek Lemańczyk a7fc34e37a Inline PrimeTester CPU path and reuse thread pools 2025-10-26 16:45:18 +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 ff1860a7b3 Merge pull request #233 from mlemanczyk/codex/modify-primetester-for-batch-heuristics
Interleave heuristic prime tester batches across groups
2025-10-26 13:12:45 +01:00
mlemanczyk 1ed5afe689 Switched to .IsPrime which performed best in benchmarks. 2025-10-26 04:05:00 +01:00
Marek Lemańczyk a747f29ac2 Interleave heuristic prime tester batches across groups 2025-10-26 04:01:56 +01:00
Marek Lemańczyk 6e632ba03a Merge pull request #232 from mlemanczyk/codex/analyze-evenperfectbitscanner-paths-and-implement-methods
Add static heuristic prime sieves
2025-10-26 03:42:39 +01:00
Marek Lemańczyk 1f7680a465 Use heuristic sieves for prime trial division 2025-10-26 03:41:04 +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 4ee6464130 Merge pull request #230 from mlemanczyk/codex/optimize-gpu-memory-usage-in-kernels
Reduce GPU by-divisor host allocations
2025-10-25 06:04:43 +02:00
mlemanczyk 5276d9d27b Merge branch 'codex/optimize-gpu-memory-usage-in-kernels' of https://github.com/mlemanczyk/even-perfect-numbers-scanner into codex/optimize-gpu-memory-usage-in-kernels 2025-10-25 05:59:55 +02:00
mlemanczyk 74ab4e91e6 Console logging info added to know when a task starts & completes 2025-10-25 05:59:47 +02:00
Marek Lemańczyk 8e5a1cd4c7 Batch by-divisor GPU tasks across prime ranges 2025-10-25 05:58:50 +02:00
Marek Lemańczyk 2d103a9662 Compute initial divisor remainders inside GPU kernel 2025-10-25 05:41:05 +02:00
Marek Lemańczyk 32f9f25e9b Share GPU by-divisor batch resources across accelerators 2025-10-25 05:03:16 +02:00
Marek Lemańczyk 3735a1cf0f Gate GPU by-divisor scans to a single accelerator 2025-10-25 05:00:54 +02:00
Marek Lemańczyk 6b1c2d0665 Reuse GPU by-divisor buffers to curb host allocations 2025-10-25 03:45:46 +02:00
Marek Lemańczyk 2b00a53c78 Merge pull request #229 from mlemanczyk/codex/analyze-and-implement-exponentremainderstepper-for-gpu-lbfhg2
Optimize GPU divisor heuristics pipeline
2025-10-25 02:33:27 +02:00
Marek Lemańczyk 04d4d18f37 Rename GPU mul-mod helper 2025-10-25 02:20:15 +02:00
Marek Lemańczyk 4b13bc6497 Switch GPU powmod host helpers to simplified mul-mod 2025-10-25 02:20:09 +02:00
Marek Lemańczyk 03194650c9 Add GPU simplified mul-mod helper for host callers 2025-10-25 02:20:02 +02:00
Marek Lemańczyk 3e081141e0 Document GPU mul-mod benchmark guidance 2025-10-25 02:19:57 +02:00
Marek Lemańczyk d0ba08dd24 Fix GPU mul mod benchmark kernel initialization 2025-10-24 22:08:32 +02:00
Marek Lemańczyk e566339f09 Add GPU MulMod64 benchmarks 2025-10-24 22:00:46 +02:00
Marek Lemańczyk 2888a1f9b3 Deprecate MulMod64Gpu and migrate host callers 2025-10-24 22:00:41 +02:00
Marek Lemańczyk 8795b460c3 Document GPU by-divisor MulMod usage 2025-10-24 22:00:36 +02:00
Marek Lemańczyk ad19096bab Use constant residue initialization in GPU stepper 2025-10-24 21:59:51 +02:00
Marek Lemańczyk 4e9d57df4b Unify GPU divisor kernels with stepper path 2025-10-24 20:50:52 +02:00
Marek Lemańczyk 868c7a4fd2 Tighten GPU divisor heuristics and stepper usage 2025-10-24 20:50:46 +02: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 46a2178d65 Remove Montgomery data from GPU divisor flow 2025-10-24 18:56:28 +02:00
Marek Lemańczyk 69acd3dad9 Cache GPU divisor partial data on GPU path 2025-10-24 18:56:21 +02:00
Marek Lemańczyk cc281ab423 Refactor GPU powmod helpers into ULongExtensions 2025-10-24 17:26:55 +02:00
Marek Lemańczyk 557bc5d06f Use field-based exponent tracking for steppers 2025-10-24 17:26:49 +02:00
Marek Lemańczyk d20362a2fc Switch GPU by-divisor stepper to standard modular arithmetic 2025-10-24 09:20:17 +02:00
Marek Lemańczyk 1e5a9128cb Split CPU and GPU exponent steppers 2025-10-24 08:49:53 +02:00
Marek Lemańczyk 035956cdb6 Replace GPU by-divisor kernel with standard modular exponentiation 2025-10-24 08:49:48 +02:00
Marek Lemańczyk fbd6235316 Handle zero-cycle GPU divisor sessions with heuristics 2025-10-24 06:40:33 +02:00
Marek Lemańczyk cf9d143ca2 Remove GPU by-divisor snapshot dependency 2025-10-24 05:05:21 +02:00
Marek Lemańczyk 8637ee8875 Restore GPU divisor heuristics to match cycle cache 2025-10-24 05:05:16 +02:00
Marek Lemańczyk 8a258f7536 Collapse GPU by-divisor batching to a single launch 2025-10-24 01:23:38 +02:00
Marek Lemańczyk 1075ab1ea1 Fuse GPU hit detection with divisor evaluation 2025-10-24 01:23:31 +02:00
Marek Lemańczyk 40d3b4b3ac Fuse GPU by-divisor candidate filtering into one kernel 2025-10-24 01:23:25 +02:00
Marek Lemańczyk ab1a069e57 Optimize GPU divisor heuristics pipeline 2025-10-24 00:29:26 +02:00
Marek Lemańczyk 6af0ae900e Merge pull request #227 from mlemanczyk/codex/refactor-exponentremainderstepper-structure
Clarify Pollard-Rho guard and seed CPU stepping upfront
2025-10-23 20:15:59 +02:00
Marek Lemańczyk 7feeb08943 Clarify Pollard-Rho parity guard and seed CPU batches 2025-10-23 19:50:39 +02:00
mlemanczyk 0d7df2e45b Unnecessary memory zeroing commented out. TODOs added for the remainders. 2025-10-23 19:42:03 +02:00
mlemanczyk 8e3e990499 Throwing exception added in case of invalid modulus to validate if the check ever kicks off 2025-10-23 16:43:52 +02:00
Marek Lemańczyk c03aa53689 Merge pull request #226 from mlemanczyk/codex/analyze-and-optimize-memory-cleaning-in-evenperfectbitscanne
Avoid redundant GPU compaction buffer clearing
2025-10-23 16:34:41 +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 f672ff520c Avoid redundant compaction buffer clearing on GPU 2025-10-23 01:16:58 +02:00
Marek Lemańczyk dda53581c0 Merge pull request #225 from mlemanczyk/codex/analyze-evenperfectbitscanner-for-gpu-optimization
Add GPU candidate generation for divisor scanning
2025-10-23 00:52:59 +02:00
Marek Lemańczyk ea01585892 Convert divisor session results to hits on the GPU 2025-10-23 00:34:17 +02:00
Marek Lemańczyk faab60c2cd Reduce host hit detection overhead 2025-10-22 23:51:19 +02:00
Marek Lemańczyk 4d9158e8f3 Make GPU mask compaction branchless with shared staging 2025-10-22 22:01:39 +02:00
Marek Lemańczyk ea0770a84a Clarify stream kernel bounds assumptions 2025-10-22 21:41:51 +02:00
Marek Lemańczyk 586eb8d303 Document hot-path guards in GPU mask compaction helpers 2025-10-22 18:48:03 +02:00
Marek Lemańczyk add62df697 Compact GPU divisor masks on device 2025-10-22 18:47:55 +02:00
Marek Lemańczyk bae39ad95e Capture GPU next start for divisor batches 2025-10-22 06:43:05 +02:00