mainReduceNonCommutativeWGSL¶
Overview¶
A specialized raked reduce for when our input is non-commutative AND stored in a blocked (not striped) order. We essentially serialize some of it (reading a workgroup-size chunk at a time, reducing it, then loading the next).
@author Jonathan Olson <jonathan.olson@colorado.edu>
Type mainReduceNonCommutativeWGSLOptions¶
- input: BufferSlot<T[]>
- output: BufferSlot<T[]>
- binaryOp: BinaryOp<T>
TODO: length handling?!? - stripeOutput?: boolean
We can stripe the output (so the next layer of reduce can read it as striped) - reduceOptions?: StrictOmit<reduceWGSLOptions<T>, "value" | "scratch" | "workgroupSize" | "binaryOp" | "localIndex" | "scratchPreloaded" | "valuePreloaded" | "mapScratchIndex" | "convergent">
e.g. something in the future? - & RakedSizable & OptionalLengthExpressionable
Source Code¶
See the source for mainReduceNonCommutativeWGSL.ts in the alpenglow repository.