diff --git a/StgSharp.Mathematics/Numeric/Runtime/MatrixParallel.Publish.cs b/StgSharp.Mathematics/Numeric/Runtime/MatrixParallel.Publish.cs index 228204a1..3d3b2455 100644 --- a/StgSharp.Mathematics/Numeric/Runtime/MatrixParallel.Publish.cs +++ b/StgSharp.Mathematics/Numeric/Runtime/MatrixParallel.Publish.cs @@ -60,7 +60,7 @@ namespace StgSharp.Mathematics.Numeric /**/ // Console.WriteLine($"amount of kernels is {count}"); - ulong payload = 0; + long payload = 0; int payloadIndex = 0; ulong additionalPayload = 0; for (int i = 0; i < _numaMeasurements.Length; i++) @@ -74,13 +74,14 @@ namespace StgSharp.Mathematics.Numeric NumaMeasurement measure = _numaMeasurements[i]; ulong numaPayload = measure.ActiveTasks; uint numaActive = measure.ActiveThreadCount; - ulong curPayload = Math.Min((numaPayload + additionalPayload + 63) / 64, total) - numaActive; + long curPayload = ((long)total) - (((long)(numaPayload + additionalPayload + 63)) / 64); if (curPayload > payload) { payload = curPayload; payloadIndex = i; } } + L4 cache = _numaBuffer[payloadIndex]; MatrixParallelThread[] selectedNuma = _numaThreads[payloadIndex]; throw new NotImplementedException(); } diff --git a/StgSharp.Mathematics/Numeric/Runtime/MatrixParallelTask.cs b/StgSharp.Mathematics/Numeric/Runtime/MatrixParallelTask.cs index ba1dba12..8b613e16 100644 --- a/StgSharp.Mathematics/Numeric/Runtime/MatrixParallelTask.cs +++ b/StgSharp.Mathematics/Numeric/Runtime/MatrixParallelTask.cs @@ -42,6 +42,8 @@ namespace StgSharp.Mathematics.Numeric.Runtime } + internal unsafe struct MatrixExecutionHandle { } + [StructLayout(LayoutKind.Explicit)] internal unsafe struct MatrixParallelTask {