Commit Graph
45 Commits
Author SHA1 Message Date
mlemanczyk d0b1639a5d GPU stabilization improvements to prevent calculation crashes 2025-11-09 21:52:16 +01:00
mlemanczyk f4e365194d GpuContextPool removed, because we share context and accelerator between threads, using streams to separate. 2025-11-07 12:52:20 +01:00
mlemanczyk 9537addf38 ArrayPool<T> replaced with ThreadStaticPools 2025-11-07 00:46:16 +01:00
mlemanczyk de2a78b27b Streams added to all kernels and GPU operations to separate threads from each other. 2025-11-06 18:53:55 +01:00
mlemanczyk 64d615c402 Various optimizations to separate non-static data between threads and resolve read/write access issue. 2025-11-04 20:45:56 +01:00
Marek Lemańczyk 4c4d4243fb Merge remote-tracking branch 'github/codex/optimize-evenperfectbitscanner-for-static-arrays-khd9w8' into work
# Conflicts:
#	PerfectNumbers.Core/Gpu/GpuContextPool.cs
#	PerfectNumbers.Core/Gpu/GpuKernelLease.cs
#	PerfectNumbers.Core/Gpu/GpuKernelPool.cs
#	PerfectNumbers.Core/Gpu/GpuStaticTableInitializer.cs
#	PerfectNumbers.Core/Gpu/Kernels/PrimeOrderSpecialMaxKernels.cs
#	PerfectNumbers.Core/PrimeOrderCalculator.Cpu.cs
#	PerfectNumbers.Core/PrimeOrderCalculator.Gpu.cs
#	PerfectNumbers.Core/PrimeTester.cs
2025-11-03 23:59:12 +01:00
mlemanczyk 07be671726 Various small optimizations 2025-11-02 11:24:18 +01:00
mlemanczyk 2281d9535e Revert "Merge pull request #251 from mlemanczyk/codex/refactor-prime-checking-on-gpu-n5t2pm"
This reverts commit 936ce239db, reversing
changes made to e14b77e504.
2025-11-02 11:22:14 +01:00
mlemanczyk 22f20bfe98 Various small optimizations 2025-11-01 03:42:36 +01:00
mlemanczyk 4c79c4087e Various optimizations 2025-10-29 14:00:38 +01:00
Marek Lemańczyk 6dd5cea79f Remove temporary by-divisor review documents 2025-10-28 02:01:28 +01:00
Marek Lemańczyk a83ae56caf Use LastDigit enum across Mersenne scanners 2025-10-26 16:04:05 +01:00
mlemanczyk 0d7df2e45b Unnecessary memory zeroing commented out. TODOs added for the remainders. 2025-10-23 19:42:03 +02:00
Marek Lemańczyk 3afd9399db Isolate residue GPU leases and drop try/finally 2025-10-21 22:01:50 +02:00
Marek Lemańczyk 819cb7b00b Guard residue GPU scanning with execution lock 2025-10-21 21:26:53 +02:00
Marek Lemańczyk 33f9b51593 Clarify residue stepper usage and update TODO tracker 2025-10-20 18:37:35 +02:00
Marek Lemańczyk 82e44e3f3f Confirm windowed pow2 usage across GPU kernels 2025-10-20 18:37:08 +02:00
mlemanczyk 56e413064a Using cleanup 2025-10-17 02:40:51 +02:00
Marek Lemańczyk b8aa845c5c Clarify cycle stepper reset inlining 2025-10-02 13:30:56 +02:00
Marek Lemańczyk 36d316d19c Add TODOs for divisor metadata caching 2025-10-01 22:52:21 +02:00
Marek Lemańczyk 615ae29fd6 Fix residue tester filters and arithmetic utilities 2025-09-24 03:05:34 +02:00
Marek Lemańczyk 6e99ee39e3 Extension methods benchmarked. Slower alternatives replaced. 2025-09-23 22:01:09 +02:00
Marek Lemańczyk 95a0b030f6 Add optimized modulo helpers for unsigned integers 2025-09-21 10:14:26 +02:00
Marek Lemańczyk 412ce4fd50 % 10 operations replaces with UInt128/ulong.Mod10 methods 2025-09-21 07:42:25 +02:00
Marek Lemańczyk 53554ffd3d Restored faster version of the calculations 2025-09-21 05:40:13 +02:00
Marek Lemańczyk 5ab69f8c01 Restore struct residue args and add residue benchmark project 2025-09-21 05:29:13 +02:00
Marek Lemańczyk 4fe701425e Micro-optimizations 2025-09-21 04:38:01 +02:00
Marek Lemańczyk f53853f6ff Micro optimization to take ref to orders once and re-use it, until it changes for the last block. 2025-09-21 04:27:51 +02:00
Marek Lemańczyk 23e8d306b1 Breaking change partially reverted 2025-09-21 02:48:51 +02:00
Marek Lemańczyk 8a6fc0c6a5 Revert "Merge pull request #24 from mlemanczyk/codex/modify-evenperfectbitscanner-for-residue-mode"
This reverts commit 2d024cc708, reversing
changes made to b1c29ad16e.
2025-09-21 02:25:18 +02:00
Marek Lemańczyk f9b4f912e2 Fix GPU residue tester iteration and add regression tests 2025-09-21 00:14:33 +02:00
Marek Lemańczyk 7449f146d9 Ensure GPU residue copies are synchronized and cover high divisor sets 2025-09-20 22:49:37 +02:00
Marek Lemańczyk 7ccac87df3 Zero GPU residue result buffer before scanning 2025-09-20 19:26:45 +02:00
Marek Lemańczyk abe695788b Serialize GPU leases with per-accelerator locks 2025-09-20 18:19:21 +02:00
Marek Lemańczyk 9f2cf12ce1 Guard GPU residue and divisor scans against overflow 2025-09-20 03:21:49 +02:00
Marek Lemańczyk bc1ec6a3aa Allow residue GPU scanning to cover UInt128 divisors 2025-09-20 02:49:20 +02:00
Marek Lemańczyk 9a7382fd80 Tiny cleanup 2025-09-17 19:08:43 +02:00
Marek Lemańczyk 1b28584168 Add divisor-mode detailed check coverage for factors 2025-09-17 19:02:21 +02:00
Marek Lemańczyk 34cc0b0fdd Refine GPU residue prime tables 2025-09-17 17:35:26 +02:00
Marek Lemańczyk 58eb65ca9e Refine GPU residue utilities and add positive divisor tests 2025-09-13 16:47:38 +02:00
Marek Lemańczyk 0535ad2b7b BuildDivisorCandidates moved to MersenneNumberDivisorGpuTester. Micro-optimizations. 2025-09-11 21:21:42 +02:00
Marek Lemańczyk 4e53874713 Add post-copy synchronization for residue GPU scan 2025-09-11 02:09:40 +02:00
Marek Lemańczyk 77fbbceeec Dispose GPU resources safely 2025-09-10 03:16:23 +02:00
Marek Lemańczyk 117ea94b50 Avoid using declarations for GPU resources 2025-09-10 00:19:48 +02:00
Marek Lemańczyk 9f35f6c558 Initial commit. 2025-09-09 21:15:57 +02:00