Commit Graph
85 Commits
Author SHA1 Message Date
mlemanczyk 7a242b3bfa PrimeOrderCalculator.PartialFactorCpu simplified to work only with spans and throw exception if the number of factors is exceeded. PrimeOrderMode removed in favor of bool flag. 2025-12-10 12:47:25 +01:00
mlemanczyk 941733905b Hybrid device mode implemented as the current --mersenne=bydivisor CPU execution path. CPU path is now limited to CPU calculations, only. 2025-12-01 03:45:39 +01:00
mlemanczyk 6a1198c417 CPU vs GPU work delegation adjusted to better utilize CPU. 2025-11-29 12:09:33 +01:00
mlemanczyk c311b27dcc Prime testing using divisor tables depending on the last digit separated to its own class. PrimeTester switched back to standard endings. 2025-11-27 16:45:02 +01:00
mlemanczyk 47521e327a Cleanup 2025-11-25 00:50:18 +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 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 801b1be3e3 Cleanup 2025-11-18 04:22:39 +01:00
mlemanczyk 183b147135 Heuristic tables split into 2 groups 2025-11-17 16:04:27 +01:00
mlemanczyk d0b1639a5d GPU stabilization improvements to prevent calculation crashes 2025-11-09 21:52:16 +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 fc5700f82c IsPrime with cancellation token removed. 2025-10-29 22:31:28 +01:00
mlemanczyk 3147728d5b Benchmarks for heuristic combined methods added 2025-10-29 04:53:13 +01:00
Marek Lemańczyk 3304335072 Rename CPU Montgomery multiply and align GPU helper 2025-10-28 21:06:40 +01:00
mlemanczyk ca8ab2bcf8 Tester made static to better mimic production code. 2025-10-28 20:48:35 +01:00
mlemanczyk 93aed56f23 Non-heuristic GPU benchmark uncommented, since we improved it. 2025-10-28 20:12:41 +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 0e1212aa1c Split MulHigh extensions into CPU and GPU variants 2025-10-26 22:42:21 +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 55554d9565 Inline legacy GPU sieve and update heuristic fallbacks 2025-10-26 17:06:13 +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 15c229665d Add heuristic prime sieves for cached divisor sequences 2025-10-26 03:21:29 +01:00
Marek Lemańczyk 04d4d18f37 Rename GPU mul-mod helper 2025-10-25 02:20:15 +02:00
Marek Lemańczyk 3e081141e0 Document GPU mul-mod benchmark guidance 2025-10-25 02:19:57 +02:00
Marek Lemańczyk e566339f09 Add GPU MulMod64 benchmarks 2025-10-24 22:00:46 +02:00
Marek Lemańczyk ab1a069e57 Optimize GPU divisor heuristics pipeline 2025-10-24 00:29:26 +02:00
Marek Lemańczyk 1809ba95b3 Inline GpuUInt128 Mul64 helper 2025-10-20 13:30:34 +02:00
Marek Lemańczyk 79e8706644 Restore original guard comments in pow2 helpers 2025-10-19 20:21:09 +02:00
Marek Lemańczyk 75f815567d Remove try/finally from GPU Montgomery executor 2025-10-19 06:03:39 +02:00
mlemanczyk 6928d43aee TODO added 2025-10-18 17:48:38 +02:00
mlemanczyk 14b72a6a2a Console logging extended 2025-10-18 17:06:56 +02:00
Marek Lemańczyk d1f3de07d7 Add console logs for benchmark data preparation 2025-10-18 14:44:14 +02:00
mlemanczyk 44f65b1c8f 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-18 14:36:47 +02:00
mlemanczyk 84b759e802 Failing benchmark disabled 2025-10-18 14:21:06 +02:00
Marek Lemańczyk c6ad53fffb Restore Pow2 benchmark data reuse 2025-10-18 12:22:08 +02:00
mlemanczyk 7a22fbbba7 Original benchmark selector restored. 2025-10-18 01:34:53 +02:00
mlemanczyk c4dfbf0fb2 Benchmarks disable / re-enabled, were heuristic is / is not used. 2025-10-18 01:34:26 +02:00
Marek Lemańczyk a1bbd23594 Cache benchmark sample data across iterations 2025-10-18 01:09:59 +02:00
Marek Lemańczyk 3412834f7d Disable GPU heuristic cycle benchmarks 2025-10-18 00:29:06 +02:00
mlemanczyk 56e413064a Using cleanup 2025-10-17 02:40:51 +02:00
Marek Lemańczyk c9ae56a5ec Remove default prime order overloads 2025-10-10 21:51:41 +02:00
Marek Lemańczyk cd1debe9d6 Various micro- and medium- optimizations 2025-10-07 22:14:34 +02:00
Marek Lemańczyk 0bc97937aa Restore GPU-backed UInt128 pow2 Montgomery helper 2025-10-05 02:13:31 +02:00
Marek Lemańczyk 6adac6b7a7 Consolidate multiply helpers and guard GPU fallbacks 2025-10-04 21:20:29 +02:00
Marek Lemańczyk 84ebbed98b Add shift-first multiply helper and document benchmarks 2025-10-04 20:01:10 +02:00
Marek Lemańczyk df71823c8f Console logging added to have an idea what happens. 2025-10-04 03:07:04 +02:00
Marek Lemańczyk 8068a62f55 Add wide heuristic benchmark 2025-10-04 02:12:22 +02:00