Table of Contents

Interface IJobSPMD<TNumber0, TNumber1, TNumber2>

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

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.

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>(TLane0, TLane0, ref readonly JobExecutionContext)

void Execute<TLane0, TLane1, TLane2>(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>

Parameters

indices TLane0
mask TLane0
ctx JobExecutionContext

Type Parameters

TLane0
TLane1
TLane2