From 23fa56b3568211aad6d5bccd25e32da8d89d92dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Lema=C5=84czyk?= Date: Wed, 29 Oct 2025 18:13:46 +0100 Subject: [PATCH] Embed kernel state lookup in GPU leases --- PerfectNumbers.Core/PrimeTester.cs | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-) diff --git a/PerfectNumbers.Core/PrimeTester.cs b/PerfectNumbers.Core/PrimeTester.cs index de8b70f..44580d0 100644 --- a/PerfectNumbers.Core/PrimeTester.cs +++ b/PerfectNumbers.Core/PrimeTester.cs @@ -208,35 +208,15 @@ public sealed class PrimeTester public Accelerator Accelerator { get; } - private KernelState? _kernelState; - - public PooledContext() { Context = Context.CreateDefault(); Accelerator = Context.GetPreferredDevice(false).CreateAccelerator(Context); - _kernelState = GpuKernelState.GetOrCreate(Accelerator); - } - - public KernelState KernelState - { - get - { - var state = _kernelState; - if (state is null || state.IsDisposed) - { - state = GpuKernelState.GetOrCreate(Accelerator); - _kernelState = state; - } - - return state; - } } public void Dispose() { ClearGpuCaches(Accelerator); - _kernelState = null; Accelerator.Dispose(); Context.Dispose(); } @@ -292,7 +272,7 @@ public sealed class PrimeTester _ctx = ctx; Accelerator = ctx.Accelerator; - State = ctx.KernelState; + State = GpuKernelState.GetOrCreate(Accelerator); Input = Accelerator.Allocate1D(minBufferCapacity); Output = Accelerator.Allocate1D(minBufferCapacity); BufferCapacity = minBufferCapacity;