Commit Graph
940 Commits
Author SHA1 Message Date
mlemanczyk 1e9bd49145 Cleanup. No longer applicable TODO removed. 2025-11-25 01:30:13 +01:00
mlemanczyk 47521e327a Cleanup 2025-11-25 00:50:18 +01:00
mlemanczyk e8b4c1fc83 Missing return of accelerator added 2025-11-25 00:34:17 +01:00
mlemanczyk 3e756b262e Cleanup 2025-11-25 00:33:54 +01:00
mlemanczyk e9787f2991 Cleanup. Completed TODO removed. 2025-11-24 23:53:09 +01:00
mlemanczyk 91894637af Aggressive inlining added to simple switch methods. 2025-11-24 22:54:04 +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 57a50e2a37 Pow2Mod kernel specific methods moved to Pow2MontgomeryKernels. 2025-11-24 18:04:07 +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 07efd5d2a1 Accelerator locks removed 2025-11-23 14:59:29 +01:00
mlemanczyk 79021108f5 Tiny cleanup 2025-11-23 14:53:35 +01:00
mlemanczyk 6d1ff1372e Factoring switched to PrimeTester.IsPrime for the best performance. PrimeOrderCalculator.PartialFactor switched to GPU factorization. Every so often it will send work to GPU instead of CPU. BatchedResources renamed to MersenneNumberDivisorByDivisorAccelerator for consistency and moved to its own file. It now uses array instead of dictionary for lookup free performance. 2025-11-23 00:07:03 +01:00
mlemanczyk 7b09c1fd3b Missing accelerator returns to pool added 2025-11-20 15:57:07 +01:00
mlemanczyk 497b1fcf89 Kernels replaced with pre-compiled actions for better performance 2025-11-20 03:00:11 +01:00
mlemanczyk df04ba601c Various small optimizations and cleanups. Methods made static, where possible. Duplicated & slow PrimeTester.BinaryGcd implementation removed. Optimized version was used instead. 2025-11-20 01:43:29 +01:00
mlemanczyk 9939c5d562 Divisor will now be saved to CSV file 2025-11-19 22:14:28 +01:00
mlemanczyk 54fdff0a4e GPU calculations frequency adjusted 2025-11-19 21:38:07 +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 02d16bf05c Tiny cleanup 2025-11-18 06:02:43 +01:00
mlemanczyk a5696ca17f App crash fix related to unassigned value 2025-11-18 06:02:22 +01:00
mlemanczyk 56be12ab95 Cleanup & compilation fixes. 2025-11-18 04:45:18 +01:00
mlemanczyk bc51962f9d Cleanup 2025-11-18 04:37:11 +01:00
mlemanczyk 801b1be3e3 Cleanup 2025-11-18 04:22:39 +01:00
mlemanczyk 66ca969929 Naming improvements and small cleanup 2025-11-18 03:43:52 +01:00
mlemanczyk bf7c4bab39 Accelerator buffers integrated 2025-11-18 01:13:12 +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 2fc74cf98d Cleanup 2025-11-17 20:12:00 +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 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 cd7636ddbe Manual accelerator stream creations replaced with pool 2025-11-15 13:45:24 +01:00
mlemanczyk 0540411cad Accelerator index added for dictionary-less use-cases 2025-11-15 02:21:45 +01:00
mlemanczyk 6cb63b6e73 Internal accelerator array removed 2025-11-14 12:03:31 +01:00
mlemanczyk 42447c4e43 BinaryGcd switched to the best performing variant according to benchmarks. 2025-11-14 11:43:16 +01:00
mlemanczyk be435b7760 Kernels made part of the accelerators for better performance. 2025-11-13 18:52:46 +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 1552e10ff0 VS Code settings updated. 2025-11-13 15:42:09 +01:00
mlemanczyk c53aa517f7 GpuScratchBuffer / -Pool naively integrated with PriemOrderCalculatorAccelerator (formerly Pow2MontgomeryAccelerator). FactorEntry replaced with 2 arrays - unused field removed. Small cleanup. 2025-11-13 14:41:27 +01:00
mlemanczyk 43863d03fb Performance improvements 2025-11-13 00:51:32 +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
mlemanczyk 735bfa1557 GPU accelerator recycled for better performance. 2025-11-12 07:39:52 +01:00
mlemanczyk fdc2da7dae Accelerator leak fixed. 2025-11-11 16:40:44 +01:00
mlemanczyk cf5f78c2ef PrimeTesterByLastDigitAccelerator integrated into Pow2MontgomeryGpuCalculator for better performance. 2025-11-11 13:36:21 +01:00
mlemanczyk 0de9871529 Functionality and classes separated. Kernel initialization made dependent on a flag. Cleanup. 2025-11-10 18:35:50 +01:00
mlemanczyk 45dfa3b724 Console logging extended with kernel warmup progress 2025-11-10 18:18:12 +01:00
mlemanczyk fa89958736 Stabilization improvements. Stream will be released when releasing GPU lease to prevent application crashes. 2025-11-10 14:30:30 +01:00
Marek Lemańczyk 2726c369f6 Merge pull request #256 from mlemanczyk/codex/optimize-evenperfectbitscanner-for-static-arrays
Adopt upstream GPU scratch isolation fixes
2025-11-09 21:53:50 +01:00
mlemanczyk d0b1639a5d GPU stabilization improvements to prevent calculation crashes 2025-11-09 21:52:16 +01:00
mlemanczyk a338bb0d0b Merge branch 'codex/optimize-evenperfectbitscanner-for-static-arrays' of https://github.com/mlemanczyk/even-perfect-numbers-scanner into codex/optimize-evenperfectbitscanner-for-static-arrays 2025-11-07 15:39:11 +01:00