going on big buffer, need three diff task scheduler
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user