Class JobSPMDUtility
- Namespace
- Misaki.HighPerformance.Mathematics.SPMD
- Assembly
- Misaki.HighPerformance.Mathematics.SPMD.dll
public static class JobSPMDUtility
- Inheritance
-
JobSPMDUtility
- Inherited Members
Methods
Run<T, TNumber0>(ref T, int, ref readonly JobExecutionContext)
Run the SPMD job with the specified total count and job execution context directly on the calling thread.
public static void Run<T, TNumber0>(ref T job, int totalIteration, ref readonly JobExecutionContext ctx) where T : IJobSPMD<TNumber0> where TNumber0 : unmanaged, INumber<TNumber0>, IBinaryNumber<TNumber0>, IMinMaxValue<TNumber0>, IBitwiseOperators<TNumber0, TNumber0, TNumber0>
Parameters
jobTThe SPMD job to run.
totalIterationintThe total number of iterations to execute across all lanes.
ctxJobExecutionContextThe job execution context providing information about the current execution environment.
Type Parameters
TTNumber0The first numeric type used in the SPMD job.
Remarks
Always use TNumber0 as the primary type for determining lane width and job scheduling, even if it's not used in the job execution.
Run<T, TNumber0, TNumber1>(ref T, int, ref readonly JobExecutionContext)
Run the SPMD job with the specified total count and job execution context directly on the calling thread.
public static void Run<T, TNumber0, TNumber1>(ref T job, int totalIteration, ref readonly JobExecutionContext ctx) where T : IJobSPMD<TNumber0, TNumber1> where TNumber0 : unmanaged, INumber<TNumber0>, IBinaryNumber<TNumber0>, IMinMaxValue<TNumber0>, IBitwiseOperators<TNumber0, TNumber0, TNumber0> where TNumber1 : unmanaged, INumber<TNumber1>, IBinaryNumber<TNumber1>, IMinMaxValue<TNumber1>, IBitwiseOperators<TNumber1, TNumber1, TNumber1>
Parameters
jobTThe SPMD job to run.
totalIterationintThe total number of iterations to execute across all lanes.
ctxJobExecutionContextThe job execution context providing information about the current execution environment.
Type Parameters
TTNumber0The first numeric type used in the SPMD job.
TNumber1The first numeric type used in the SPMD job.
Remarks
Always use TNumber0 as the primary type for determining lane width and job scheduling, even if it's not used in the job execution.
Run<T, TNumber0, TNumber1, TNumber2>(ref T, int, ref readonly JobExecutionContext)
Run the SPMD job with the specified total count and job execution context directly on the calling thread.
public static void Run<T, TNumber0, TNumber1, TNumber2>(ref T job, int totalIteration, ref readonly JobExecutionContext ctx) where T : IJobSPMD<TNumber0, TNumber1, TNumber2> where TNumber0 : unmanaged, INumber<TNumber0>, IBinaryNumber<TNumber0>, IMinMaxValue<TNumber0>, IBitwiseOperators<TNumber0, TNumber0, TNumber0> where TNumber1 : unmanaged, INumber<TNumber1>, IBinaryNumber<TNumber1>, IMinMaxValue<TNumber1>, IBitwiseOperators<TNumber1, TNumber1, TNumber1> where TNumber2 : unmanaged, INumber<TNumber2>, IBinaryNumber<TNumber2>, IMinMaxValue<TNumber2>, IBitwiseOperators<TNumber2, TNumber2, TNumber2>
Parameters
jobTThe SPMD job to run.
totalIterationintThe total number of iterations to execute across all lanes.
ctxJobExecutionContextThe job execution context providing information about the current execution environment.
Type Parameters
TTNumber0The first numeric type used in the SPMD job.
TNumber1The first numeric type used in the SPMD job.
TNumber2The first numeric type used in the SPMD job.
Remarks
Always use TNumber0 as the primary type for determining lane width and job scheduling, even if it's not used in the job execution.
Run<T, TNumber0, TNumber1, TNumber2, TNumber3>(ref T, int, ref readonly JobExecutionContext)
Run the SPMD job with the specified total count and job execution context directly on the calling thread.
public static void Run<T, TNumber0, TNumber1, TNumber2, TNumber3>(ref T job, int totalIteration, ref readonly JobExecutionContext ctx) where T : IJobSPMD<TNumber0, TNumber1, TNumber2, TNumber3> where TNumber0 : unmanaged, INumber<TNumber0>, IBinaryNumber<TNumber0>, IMinMaxValue<TNumber0>, IBitwiseOperators<TNumber0, TNumber0, TNumber0> where TNumber1 : unmanaged, INumber<TNumber1>, IBinaryNumber<TNumber1>, IMinMaxValue<TNumber1>, IBitwiseOperators<TNumber1, TNumber1, TNumber1> where TNumber2 : unmanaged, INumber<TNumber2>, IBinaryNumber<TNumber2>, IMinMaxValue<TNumber2>, IBitwiseOperators<TNumber2, TNumber2, TNumber2> where TNumber3 : unmanaged, INumber<TNumber3>, IBinaryNumber<TNumber3>, IMinMaxValue<TNumber3>, IBitwiseOperators<TNumber3, TNumber3, TNumber3>
Parameters
jobTThe SPMD job to run.
totalIterationintThe total number of iterations to execute across all lanes.
ctxJobExecutionContextThe job execution context providing information about the current execution environment.
Type Parameters
TTNumber0The first numeric type used in the SPMD job.
TNumber1The first numeric type used in the SPMD job.
TNumber2The first numeric type used in the SPMD job.
TNumber3The first numeric type used in the SPMD job.
Remarks
Always use TNumber0 as the primary type for determining lane width and job scheduling, even if it's not used in the job execution.
Run<T, TNumber0, TNumber1, TNumber2, TNumber3, TNumber4>(ref T, int, ref readonly JobExecutionContext)
Run the SPMD job with the specified total count and job execution context directly on the calling thread.
public static void Run<T, TNumber0, TNumber1, TNumber2, TNumber3, TNumber4>(ref T job, int totalIteration, ref readonly JobExecutionContext ctx) where T : IJobSPMD<TNumber0, TNumber1, TNumber2, TNumber3, TNumber4> where TNumber0 : unmanaged, INumber<TNumber0>, IBinaryNumber<TNumber0>, IMinMaxValue<TNumber0>, IBitwiseOperators<TNumber0, TNumber0, TNumber0> where TNumber1 : unmanaged, INumber<TNumber1>, IBinaryNumber<TNumber1>, IMinMaxValue<TNumber1>, IBitwiseOperators<TNumber1, TNumber1, TNumber1> where TNumber2 : unmanaged, INumber<TNumber2>, IBinaryNumber<TNumber2>, IMinMaxValue<TNumber2>, IBitwiseOperators<TNumber2, TNumber2, TNumber2> where TNumber3 : unmanaged, INumber<TNumber3>, IBinaryNumber<TNumber3>, IMinMaxValue<TNumber3>, IBitwiseOperators<TNumber3, TNumber3, TNumber3> where TNumber4 : unmanaged, INumber<TNumber4>, IBinaryNumber<TNumber4>, IMinMaxValue<TNumber4>, IBitwiseOperators<TNumber4, TNumber4, TNumber4>
Parameters
jobTThe SPMD job to run.
totalIterationintThe total number of iterations to execute across all lanes.
ctxJobExecutionContextThe job execution context providing information about the current execution environment.
Type Parameters
TTNumber0The first numeric type used in the SPMD job.
TNumber1The first numeric type used in the SPMD job.
TNumber2The first numeric type used in the SPMD job.
TNumber3The first numeric type used in the SPMD job.
TNumber4The first numeric type used in the SPMD job.
Remarks
Always use TNumber0 as the primary type for determining lane width and job scheduling, even if it's not used in the job execution.
Run<T, TNumber0, TNumber1, TNumber2, TNumber3, TNumber4, TNumber5>(ref T, int, ref readonly JobExecutionContext)
Run the SPMD job with the specified total count and job execution context directly on the calling thread.
public static void Run<T, TNumber0, TNumber1, TNumber2, TNumber3, TNumber4, TNumber5>(ref T job, int totalIteration, ref readonly JobExecutionContext ctx) where T : IJobSPMD<TNumber0, TNumber1, TNumber2, TNumber3, TNumber4, TNumber5> where TNumber0 : unmanaged, INumber<TNumber0>, IBinaryNumber<TNumber0>, IMinMaxValue<TNumber0>, IBitwiseOperators<TNumber0, TNumber0, TNumber0> where TNumber1 : unmanaged, INumber<TNumber1>, IBinaryNumber<TNumber1>, IMinMaxValue<TNumber1>, IBitwiseOperators<TNumber1, TNumber1, TNumber1> where TNumber2 : unmanaged, INumber<TNumber2>, IBinaryNumber<TNumber2>, IMinMaxValue<TNumber2>, IBitwiseOperators<TNumber2, TNumber2, TNumber2> where TNumber3 : unmanaged, INumber<TNumber3>, IBinaryNumber<TNumber3>, IMinMaxValue<TNumber3>, IBitwiseOperators<TNumber3, TNumber3, TNumber3> where TNumber4 : unmanaged, INumber<TNumber4>, IBinaryNumber<TNumber4>, IMinMaxValue<TNumber4>, IBitwiseOperators<TNumber4, TNumber4, TNumber4> where TNumber5 : unmanaged, INumber<TNumber5>, IBinaryNumber<TNumber5>, IMinMaxValue<TNumber5>, IBitwiseOperators<TNumber5, TNumber5, TNumber5>
Parameters
jobTThe SPMD job to run.
totalIterationintThe total number of iterations to execute across all lanes.
ctxJobExecutionContextThe job execution context providing information about the current execution environment.
Type Parameters
TTNumber0The first numeric type used in the SPMD job.
TNumber1The first numeric type used in the SPMD job.
TNumber2The first numeric type used in the SPMD job.
TNumber3The first numeric type used in the SPMD job.
TNumber4The first numeric type used in the SPMD job.
TNumber5The first numeric type used in the SPMD job.
Remarks
Always use TNumber0 as the primary type for determining lane width and job scheduling, even if it's not used in the job execution.
Run<T, TNumber0, TNumber1, TNumber2, TNumber3, TNumber4, TNumber5, TNumber6>(ref T, int, ref readonly JobExecutionContext)
Run the SPMD job with the specified total count and job execution context directly on the calling thread.
public static void Run<T, TNumber0, TNumber1, TNumber2, TNumber3, TNumber4, TNumber5, TNumber6>(ref T job, int totalIteration, ref readonly JobExecutionContext ctx) where T : IJobSPMD<TNumber0, TNumber1, TNumber2, TNumber3, TNumber4, TNumber5, TNumber6> where TNumber0 : unmanaged, INumber<TNumber0>, IBinaryNumber<TNumber0>, IMinMaxValue<TNumber0>, IBitwiseOperators<TNumber0, TNumber0, TNumber0> where TNumber1 : unmanaged, INumber<TNumber1>, IBinaryNumber<TNumber1>, IMinMaxValue<TNumber1>, IBitwiseOperators<TNumber1, TNumber1, TNumber1> where TNumber2 : unmanaged, INumber<TNumber2>, IBinaryNumber<TNumber2>, IMinMaxValue<TNumber2>, IBitwiseOperators<TNumber2, TNumber2, TNumber2> where TNumber3 : unmanaged, INumber<TNumber3>, IBinaryNumber<TNumber3>, IMinMaxValue<TNumber3>, IBitwiseOperators<TNumber3, TNumber3, TNumber3> where TNumber4 : unmanaged, INumber<TNumber4>, IBinaryNumber<TNumber4>, IMinMaxValue<TNumber4>, IBitwiseOperators<TNumber4, TNumber4, TNumber4> where TNumber5 : unmanaged, INumber<TNumber5>, IBinaryNumber<TNumber5>, IMinMaxValue<TNumber5>, IBitwiseOperators<TNumber5, TNumber5, TNumber5> where TNumber6 : unmanaged, INumber<TNumber6>, IBinaryNumber<TNumber6>, IMinMaxValue<TNumber6>, IBitwiseOperators<TNumber6, TNumber6, TNumber6>
Parameters
jobTThe SPMD job to run.
totalIterationintThe total number of iterations to execute across all lanes.
ctxJobExecutionContextThe job execution context providing information about the current execution environment.
Type Parameters
TTNumber0The first numeric type used in the SPMD job.
TNumber1The first numeric type used in the SPMD job.
TNumber2The first numeric type used in the SPMD job.
TNumber3The first numeric type used in the SPMD job.
TNumber4The first numeric type used in the SPMD job.
TNumber5The first numeric type used in the SPMD job.
TNumber6The first numeric type used in the SPMD job.
Remarks
Always use TNumber0 as the primary type for determining lane width and job scheduling, even if it's not used in the job execution.
Run<T, TNumber0, TNumber1, TNumber2, TNumber3, TNumber4, TNumber5, TNumber6, TNumber7>(ref T, int, ref readonly JobExecutionContext)
Run the SPMD job with the specified total count and job execution context directly on the calling thread.
public static void Run<T, TNumber0, TNumber1, TNumber2, TNumber3, TNumber4, TNumber5, TNumber6, TNumber7>(ref T job, int totalIteration, ref readonly JobExecutionContext ctx) where T : IJobSPMD<TNumber0, TNumber1, TNumber2, TNumber3, TNumber4, TNumber5, TNumber6, TNumber7> where TNumber0 : unmanaged, INumber<TNumber0>, IBinaryNumber<TNumber0>, IMinMaxValue<TNumber0>, IBitwiseOperators<TNumber0, TNumber0, TNumber0> where TNumber1 : unmanaged, INumber<TNumber1>, IBinaryNumber<TNumber1>, IMinMaxValue<TNumber1>, IBitwiseOperators<TNumber1, TNumber1, TNumber1> where TNumber2 : unmanaged, INumber<TNumber2>, IBinaryNumber<TNumber2>, IMinMaxValue<TNumber2>, IBitwiseOperators<TNumber2, TNumber2, TNumber2> where TNumber3 : unmanaged, INumber<TNumber3>, IBinaryNumber<TNumber3>, IMinMaxValue<TNumber3>, IBitwiseOperators<TNumber3, TNumber3, TNumber3> where TNumber4 : unmanaged, INumber<TNumber4>, IBinaryNumber<TNumber4>, IMinMaxValue<TNumber4>, IBitwiseOperators<TNumber4, TNumber4, TNumber4> where TNumber5 : unmanaged, INumber<TNumber5>, IBinaryNumber<TNumber5>, IMinMaxValue<TNumber5>, IBitwiseOperators<TNumber5, TNumber5, TNumber5> where TNumber6 : unmanaged, INumber<TNumber6>, IBinaryNumber<TNumber6>, IMinMaxValue<TNumber6>, IBitwiseOperators<TNumber6, TNumber6, TNumber6> where TNumber7 : unmanaged, INumber<TNumber7>, IBinaryNumber<TNumber7>, IMinMaxValue<TNumber7>, IBitwiseOperators<TNumber7, TNumber7, TNumber7>
Parameters
jobTThe SPMD job to run.
totalIterationintThe total number of iterations to execute across all lanes.
ctxJobExecutionContextThe job execution context providing information about the current execution environment.
Type Parameters
TTNumber0The first numeric type used in the SPMD job.
TNumber1The first numeric type used in the SPMD job.
TNumber2The first numeric type used in the SPMD job.
TNumber3The first numeric type used in the SPMD job.
TNumber4The first numeric type used in the SPMD job.
TNumber5The first numeric type used in the SPMD job.
TNumber6The first numeric type used in the SPMD job.
TNumber7The first numeric type used in the SPMD job.
Remarks
Always use TNumber0 as the primary type for determining lane width and job scheduling, even if it's not used in the job execution.