mlemanczyk
|
05d3061c47
|
MethodImplOptions.AggressiveOptimization & MethodImplOptions.AggressiveInlining optimized. Small optimizations.
|
2025-12-10 19:59:51 +01:00 |
|
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
|
13498dc460
|
Most device buffers integrated into PrimeOrderCalculatorAccelerator. PrimeOrderCalculator switched to partial factoring on GPU.
|
2025-11-26 03:16:39 +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
|
497b1fcf89
|
Kernels replaced with pre-compiled actions for better performance
|
2025-11-20 03:00:11 +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
|
56be12ab95
|
Cleanup & compilation fixes.
|
2025-11-18 04:45:18 +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
|
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
|
42447c4e43
|
BinaryGcd switched to the best performing variant according to benchmarks.
|
2025-11-14 11:43:16 +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
|
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
|
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 |
|
Marek Lemańczyk
|
de7ddd8db3
|
Remove GPU context creation lock
|
2025-10-28 13:26:20 +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
|
24eaec7a21
|
Refine Montgomery GPU helpers to avoid kernel branching
|
2025-10-22 01:43:10 +02:00 |
|
Marek Lemańczyk
|
79e8706644
|
Restore original guard comments in pow2 helpers
|
2025-10-19 20:21:09 +02:00 |
|
Marek Lemańczyk
|
8adeb59acc
|
Fix kernel integration compile errors
|
2025-10-18 18:01:52 +02:00 |
|
Marek Lemańczyk
|
6217ea7888
|
Document GPU kernel audit progress
|
2025-10-18 17:42:33 +02:00 |
|
Marek Lemańczyk
|
67ad36420a
|
Add GPU kernel for small prime factoring
|
2025-10-17 05:31:07 +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
|
48127845b5
|
GPU errors won't go silently, so that we can analyze and fix them.
|
2025-10-07 21:57:27 +02:00 |
|
Marek Lemańczyk
|
bd8686b86b
|
Unused parameter removed
|
2025-10-05 19:14:42 +02:00 |
|
Marek Lemańczyk
|
20120f5bc0
|
Fix odd power table updates in GPU heuristics
|
2025-10-05 16:55:27 +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
|
0bc97937aa
|
Restore GPU-backed UInt128 pow2 Montgomery helper
|
2025-10-05 02:13:31 +02:00 |
|
Marek Lemańczyk
|
72dd69bd53
|
Align GPU pow2 heuristics with Montgomery helper
|
2025-10-04 22:40:27 +02:00 |
|
Marek Lemańczyk
|
b2a7190c14
|
Inline GPU capability checks for pow2 heuristics
|
2025-10-04 22:40:23 +02:00 |
|
Marek Lemańczyk
|
38df505f4f
|
Implement GPU pow2 heuristics with safe fallbacks
|
2025-10-04 22:40:12 +02:00 |
|
Marek Lemańczyk
|
ea08d3f71f
|
Inline GPU overflow tracking helpers
|
2025-10-04 22:40:07 +02:00 |
|
Marek Lemańczyk
|
85c6eaece7
|
Persist GPU capability snapshot without volatile
|
2025-10-04 22:40:02 +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 |
|