Table of Contents

Interface IJobSPMD<TNumber0, TNumber1, TNumber2, TNumber3, TNumber4, TNumber5, TNumber6>

Namespace
Misaki.HighPerformance.Mathematics.SPMD
Assembly
Misaki.HighPerformance.Mathematics.SPMD.dll

A job interface for Single Program Multiple Data (SPMD) execution, allowing for efficient parallel processing of data across multiple lanes.

public interface 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>

Type Parameters

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.

Methods

Execute<TLane0, TLane1, TLane2, TLane3, TLane4, TLane5, TLane6>(TLane0, TLane0, ref readonly JobExecutionContext)

void Execute<TLane0, TLane1, TLane2, TLane3, TLane4, TLane5, TLane6>(TLane0 indices, TLane0 mask, ref readonly JobExecutionContext ctx) where TLane0 : unmanaged, ISPMDLane<TLane0, TNumber0> where TLane1 : unmanaged, ISPMDLane<TLane1, TNumber1> where TLane2 : unmanaged, ISPMDLane<TLane2, TNumber2> where TLane3 : unmanaged, ISPMDLane<TLane3, TNumber3> where TLane4 : unmanaged, ISPMDLane<TLane4, TNumber4> where TLane5 : unmanaged, ISPMDLane<TLane5, TNumber5> where TLane6 : unmanaged, ISPMDLane<TLane6, TNumber6>

Parameters

indices TLane0
mask TLane0
ctx JobExecutionContext

Type Parameters

TLane0
TLane1
TLane2
TLane3
TLane4
TLane5
TLane6