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
|
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
|
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
|
fa89958736
|
Stabilization improvements. Stream will be released when releasing GPU lease to prevent application crashes.
|
2025-11-10 14:30:30 +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
|
7c035239b4
|
Cleanup. Classes & structs extracted to their own files.
|
2025-11-07 10:34:31 +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
|
5a17fa64d5
|
Restore per-lease kernel containers
|
2025-11-04 00:46:59 +01:00 |
|
Marek Lemańczyk
|
dbde6337ea
|
Tie GPU scratch buffers to context leases
|
2025-11-04 00:26:38 +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
|
1cbe7bf869
|
Use GpuPrimeWorkLimiter for GPU lease limiting
|
2025-11-02 14:02:15 +01:00 |
|
Marek Lemańczyk
|
00d4e9bde2
|
Add GPU lease warm-up and shared limiter
|
2025-11-02 13:47:57 +01:00 |
|
mlemanczyk
|
0e7bbae132
|
GPU contexts and accelerators made shared to prevent application crashes with high no. of threads.
|
2025-11-02 12:51:31 +01:00 |
|
mlemanczyk
|
b33a3c8e75
|
Compilation error fixed
|
2025-11-02 11:25:41 +01:00 |
|
mlemanczyk
|
07be671726
|
Various small optimizations
|
2025-11-02 11:24:18 +01:00 |
|
Marek Lemańczyk
|
76dfe108a9
|
Address feedback on GPU pooling and heuristic factoring
|
2025-11-02 11:22:49 +01:00 |
|
Marek Lemańczyk
|
ab6a416de2
|
Warm GPU resources before thread startup
|
2025-11-02 11:22:28 +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 |
|
Marek Lemańczyk
|
b7c34f4960
|
Preload divisor generator tables for GPU pool contexts
|
2025-10-31 23:01:28 +01:00 |
|
Marek Lemańczyk
|
469c8057d3
|
Flatten heuristic trial division bounds checks
|
2025-10-31 22:45:59 +01:00 |
|
Marek Lemańczyk
|
8c662c5c85
|
Address feedback on GPU pooling and heuristic factoring
|
2025-10-31 21:47:42 +01:00 |
|
Marek Lemańczyk
|
6864b316d5
|
Warm GPU resources before thread startup
|
2025-10-31 16:56:25 +01:00 |
|
mlemanczyk
|
e14b77e504
|
Batch size made dynamic - dependent on the value
|
2025-10-30 02:43:15 +01:00 |
|
Marek Lemańczyk
|
f9504a6a19
|
Use atomic flag writes in heuristic trial division
|
2025-10-29 20:40:40 +01:00 |
|
Marek Lemańczyk
|
5536dc4865
|
Fix GPU by-divisor hang for small primes
|
2025-10-29 19:21:41 +01:00 |
|
Marek Lemańczyk
|
08499fdda1
|
Refine GPU prime tester leasing
|
2025-10-29 17:39:38 +01:00 |
|
Marek Lemańczyk
|
b0158a844a
|
Use divisor squares to bound heuristic combined trial division
|
2025-10-29 15:13:54 +01:00 |
|
mlemanczyk
|
4c79c4087e
|
Various optimizations
|
2025-10-29 14:00:38 +01:00 |
|
mlemanczyk
|
880b1cd962
|
Revert "Unroll divisor-by-divisor GPU kernel loops"
This reverts commit 5d14efb739.
|
2025-10-29 04:51:28 +01:00 |
|
Marek Lemańczyk
|
5d14efb739
|
Unroll divisor-by-divisor GPU kernel loops
|
2025-10-29 04:31:45 +01:00 |
|
Marek Lemańczyk
|
1792349bad
|
Make GPU sieve results authoritative
|
2025-10-28 20:14:22 +01:00 |
|
Marek Lemańczyk
|
c53966e481
|
Enable residue-aware GPU sieve in PrimeTester
|
2025-10-28 18:39:18 +01:00 |
|
Marek Lemańczyk
|
86990ae0f7
|
Remove kernel initialization lock from GPU leases
|
2025-10-28 13:30:47 +01:00 |
|
Marek Lemańczyk
|
de7ddd8db3
|
Remove GPU context creation lock
|
2025-10-28 13:26:20 +01:00 |
|
Marek Lemańczyk
|
6dd5cea79f
|
Remove temporary by-divisor review documents
|
2025-10-28 02:01:28 +01:00 |
|
Marek Lemańczyk
|
94a4ed8328
|
Hoist prime order thresholds in CPU heuristics
|
2025-10-27 21:24:43 +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
|
e2f68cedf2
|
Short-circuit small prime sieve kernel loops
|
2025-10-26 22:42:27 +01:00 |
|