going on big buffer, need three diff task scheduler

This commit is contained in:
Youmu Liu
2025-11-17 16:12:50 +08:00
parent a8c522ab23
commit 8fa1a9749e
20 changed files with 88 additions and 23583 deletions
@@ -68,18 +68,22 @@ namespace StgSharp.Mathematics.Numeric
MatrixParallel.ReturnParallelResources(ref pool);
return ans;
}
MatrixParallelHandle taskGroup = /**/ default
/*
MatrixParallel.PublicTask(left.GetColumnEnumeration(),
right.GetColumnEnumeration(),
ans.GetColumnEnumeration(),
(delegate*<MatrixKernel<float>*, MatrixKernel<float>*, MatrixKernel<float>*, void>)NativeIntrinsic.Intrinsic.f32_add)
/**/
;
MatrixParallelTaskPackage<float>* package = MatrixParallelFactory.CreateBaseTask<float>();
package->Left = left.Buffer;
package->Right = right.Buffer;
package->Result = ans.Buffer;
package->ElementSize = sizeof(float);
package->PrimCount = left.KernelColumnLength;
package->SecCount = left.KernelRowLength;
package->ComputeMode = new MatrixOpMode(MatrixOperationStyle.BUFFER_OP, MatrixOperationParam.LEFT_RIGHT_ANS_PARAM);
package->ComputeHandle = (IntPtr)NativeIntrinsic.Intrinsic.f32_add;
MatrixParallelHandle taskGroup = MatrixParallel.ScheduleTask(package);
MatrixParallel.LaunchParallel(taskGroup, SleepMode.DeepSleep);
/*
* run parallel
*/
MatrixParallelFactory.Release(package);
taskGroup.Dispose();
return ans;
}