Commit Graph
48 Commits
Author SHA1 Message Date
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 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 0de9871529 Functionality and classes separated. Kernel initialization made dependent on a flag. Cleanup. 2025-11-10 18:35:50 +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 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
mlemanczyk 07be671726 Various small optimizations 2025-11-02 11:24:18 +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 de7ddd8db3 Remove GPU context creation lock 2025-10-28 13:26:20 +01:00
Marek Lemańczyk fada9ff098 Ignore zero factors in TrySpecialMaxCpu 2025-10-17 08:54:55 +02:00
mlemanczyk fddec17b3f Various try-out changes 2025-10-17 06:53:54 +02:00
Marek Lemańczyk 67ad36420a Add GPU kernel for small prime factoring 2025-10-17 05:31:07 +02:00
Marek Lemańczyk c9ae56a5ec Remove default prime order overloads 2025-10-10 21:51:41 +02:00
Marek Lemańczyk 6918bd28ff Make by-divisor GPU kernels reuse read-only operands 2025-10-08 18:47:16 +02:00
Marek Lemańczyk cd1debe9d6 Various micro- and medium- optimizations 2025-10-07 22:14:34 +02:00
Marek Lemańczyk b8aa845c5c Clarify cycle stepper reset inlining 2025-10-02 13:30:56 +02:00
Marek Lemańczyk 36d316d19c Add TODOs for divisor metadata caching 2025-10-01 22:52:21 +02:00
Marek Lemańczyk f63254f0f0 Refactor GPU-compatible Mul64 handling 2025-09-29 22:35:46 +02:00
Marek Lemańczyk e316c0055f Implement GPU-safe fast division helper 2025-09-24 21:07:43 +02:00
Marek Lemańczyk d4dcd0a534 Implement multi-tier divisor cycle caching and per-thread reuse 2025-09-24 19:04:07 +02:00
Marek Lemańczyk 6e99ee39e3 Extension methods benchmarked. Slower alternatives replaced. 2025-09-23 22:01:09 +02:00
Marek Lemańczyk 3598f88aaf Replace small-modulo uses with optimized helpers 2025-09-22 19:54:50 +02:00
Marek Lemańczyk 412ce4fd50 % 10 operations replaces with UInt128/ulong.Mod10 methods 2025-09-21 07:42:25 +02:00
Marek Lemańczyk 5ab69f8c01 Restore struct residue args and add residue benchmark project 2025-09-21 05:29:13 +02:00
Marek Lemańczyk 0ce17d19ae Guard residue order kernels against stale cycle cache entries 2025-09-20 23:34:47 +02:00
Marek Lemańczyk abe695788b Serialize GPU leases with per-accelerator locks 2025-09-20 18:19:21 +02:00
Marek Lemańczyk 5e6e762556 Reapply "Merge pull request #34 from mlemanczyk/codex/fix-residue-method-iteration-issue"
This reverts commit 9a199dc258.
2025-09-20 10:45:01 +02:00
Marek Lemańczyk b676d89293 Merge branch 'main' of https://github.com/mlemanczyk/even-perfect-numbers-scanner 2025-09-20 09:41:10 +02:00
Marek Lemańczyk 9a199dc258 Revert "Merge pull request #34 from mlemanczyk/codex/fix-residue-method-iteration-issue"
This reverts commit 66ac013abc, reversing
changes made to 52a27dfe61.
2025-09-20 09:35:10 +02:00
Marek Lemańczyk 662cfa8cc7 Reset residue toggle after default-limit residue test 2025-09-20 09:14:29 +02:00
Marek Lemańczyk ee9c151eaa Fix residue kernel modulus reduction and add regression test 2025-09-20 04:24:04 +02:00
Marek Lemańczyk 34cc0b0fdd Refine GPU residue prime tables 2025-09-17 17:35:26 +02:00
Marek Lemańczyk 58eb65ca9e Refine GPU residue utilities and add positive divisor tests 2025-09-13 16:47:38 +02:00
Marek Lemańczyk 52a1e44811 Test batch Mersenne residue computation 2025-09-10 18:06:08 +02:00
Marek Lemańczyk 117ea94b50 Avoid using declarations for GPU resources 2025-09-10 00:19:48 +02:00
Marek Lemańczyk 9f35f6c558 Initial commit. 2025-09-09 21:15:57 +02:00