Commit Graph
38 Commits
Author SHA1 Message Date
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 07efd5d2a1 Accelerator locks removed 2025-11-23 14:59:29 +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 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 0d2a88c45f GpuPrimeWorkLimiter.Acquire() / .Release() removed to save time on the hot-path with billions of calls. We'll rely on AcceleratorStreamPool limits and synchronization. 2025-11-13 17:52:13 +01:00
mlemanczyk 43863d03fb Performance improvements 2025-11-13 00:51:32 +01:00
mlemanczyk d0b1639a5d GPU stabilization improvements to prevent calculation crashes 2025-11-09 21:52:16 +01:00
mlemanczyk 8e779c5c9e GpuKernelLease removed 2025-11-07 15:36:45 +01:00
mlemanczyk 0410fd2c91 PooledContext removal - continuation. GpuKernelLease prepared for removal. 2025-11-07 14:13:11 +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 119690086a ConcurrentDictionary removed. Kernel made dependent on the shared GPU context. 2025-11-07 10:16:33 +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 de7ddd8db3 Remove GPU context creation lock 2025-10-28 13:26:20 +01: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 8acccce471 Add cycle cache hit tracking instrumentation 2025-10-20 19:28:06 +02:00
Marek Lemańczyk 6217ea7888 Document GPU kernel audit progress 2025-10-18 17:42:33 +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 cd1debe9d6 Various micro- and medium- optimizations 2025-10-07 22:14:34 +02:00
Marek Lemańczyk 26cc574020 Treat Pollard Rho success as the GPU primality check 2025-10-05 06:26:09 +02:00
Marek Lemańczyk 56e3a7695f Tiny cleanup 2025-10-03 19:36:32 +02:00
Marek Lemańczyk ebe48d5f2f Divisor-Cycle Cache Rework 2025-10-02 19:53:09 +02:00
Marek Lemańczyk b8aa845c5c Clarify cycle stepper reset inlining 2025-10-02 13:30:56 +02:00
Marek Lemańczyk 9b9c6959be Reuse cycle remainder stepper in by-divisor testers 2025-09-25 18:51:47 +02:00
Marek Lemańczyk 8b95a42f27 Divisor cycle cache will now respect --divisor-cycles-batch parameter (renamed from --divisor-cycles-batch-size) 2025-09-25 07:02:44 +02:00
Marek Lemańczyk 49fcd93747 GPU logic updated to use prime % divisor result precomputed on CPU instead of re-calculating it on GPU side. Cycle lease removed. 2025-09-25 05:28:23 +02:00
Marek Lemańczyk b58e2be2b0 GPU steps adjusted to prevent overloading it 2025-09-25 03:32:07 +02:00
Marek Lemańczyk 6717005529 Chunk GPU divisor cycle generation to avoid CPU fallback 2025-09-25 03:16:49 +02:00
Marek Lemańczyk ad3effa5fa Throttle GPU cycle generation batches 2025-09-25 02:48:14 +02:00
Marek Lemańczyk b798970ce9 Restore cycle-aware divisor scans and background generation 2025-09-25 02:12:40 +02:00
Marek Lemańczyk d72cfc9748 TODOs added 2025-09-25 00:02:19 +02:00
Marek Lemańczyk a8588d0ec5 Formatting 2025-09-24 23:33:37 +02:00
Marek Lemańczyk d4dcd0a534 Implement multi-tier divisor cycle caching and per-thread reuse 2025-09-24 19:04:07 +02:00