Table of Contents

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

job T

The SPMD job to run.

totalIteration int

The total number of iterations to execute across all lanes.

ctx JobExecutionContext

The job execution context providing information about the current execution environment.

Type Parameters

T
TNumber0

The 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

job T

The SPMD job to run.

totalIteration int

The total number of iterations to execute across all lanes.

ctx JobExecutionContext

The job execution context providing information about the current execution environment.

Type Parameters

T
TNumber0

The first numeric type used in the SPMD job.

TNumber1

The 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

job T

The SPMD job to run.

totalIteration int

The total number of iterations to execute across all lanes.

ctx JobExecutionContext

The job execution context providing information about the current execution environment.

Type Parameters

T
TNumber0

The first numeric type used in the SPMD job.

TNumber1

The first numeric type used in the SPMD job.

TNumber2

The 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

job T

The SPMD job to run.

totalIteration int

The total number of iterations to execute across all lanes.

ctx JobExecutionContext

The job execution context providing information about the current execution environment.

Type Parameters

T
TNumber0

The first numeric type used in the SPMD job.

TNumber1

The first numeric type used in the SPMD job.

TNumber2

The first numeric type used in the SPMD job.

TNumber3

The 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

job T

The SPMD job to run.

totalIteration int

The total number of iterations to execute across all lanes.

ctx JobExecutionContext

The job execution context providing information about the current execution environment.

Type Parameters

T
TNumber0

The first numeric type used in the SPMD job.

TNumber1

The first numeric type used in the SPMD job.

TNumber2

The first numeric type used in the SPMD job.

TNumber3

The first numeric type used in the SPMD job.

TNumber4

The 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

job T

The SPMD job to run.

totalIteration int

The total number of iterations to execute across all lanes.

ctx JobExecutionContext

The job execution context providing information about the current execution environment.

Type Parameters

T
TNumber0

The first numeric type used in the SPMD job.

TNumber1

The first numeric type used in the SPMD job.

TNumber2

The first numeric type used in the SPMD job.

TNumber3

The first numeric type used in the SPMD job.

TNumber4

The first numeric type used in the SPMD job.

TNumber5

The 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

job T

The SPMD job to run.

totalIteration int

The total number of iterations to execute across all lanes.

ctx JobExecutionContext

The job execution context providing information about the current execution environment.

Type Parameters

T
TNumber0

The first numeric type used in the SPMD job.

TNumber1

The first numeric type used in the SPMD job.

TNumber2

The first numeric type used in the SPMD job.

TNumber3

The first numeric type used in the SPMD job.

TNumber4

The first numeric type used in the SPMD job.

TNumber5

The first numeric type used in the SPMD job.

TNumber6

The 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

job T

The SPMD job to run.

totalIteration int

The total number of iterations to execute across all lanes.

ctx JobExecutionContext

The job execution context providing information about the current execution environment.

Type Parameters

T
TNumber0

The first numeric type used in the SPMD job.

TNumber1

The first numeric type used in the SPMD job.

TNumber2

The first numeric type used in the SPMD job.

TNumber3

The first numeric type used in the SPMD job.

TNumber4

The first numeric type used in the SPMD job.

TNumber5

The first numeric type used in the SPMD job.

TNumber6

The first numeric type used in the SPMD job.

TNumber7

The 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.