IMPORTANT: To view this page as Markdown, append `.md` to the URL (e.g. /max/get-started.md). For the complete documentation index, see llms.txt.
Skip to main content
For the complete documentation index, see llms.txt. Markdown versions of all pages are available by appending .md to any URL (e.g. /max/get-started.md).

Mojo struct

ReduceMin

struct ReduceMin[dtype: DType, W: Int = simd_width_of[dtype]()]

Min reduction monoid: (self, x) -> min(self, x).

Single-field state: acc: SIMD[dtype, W]. accumulate is one expression β€” acc = min(acc, Self.pad[...](val)). The horizontal collapse to scalar happens once at reduce, in acc[0].

Parameters​

  • ​dtype (DType): The accumulator dtype.
  • ​W (Int): SIMD width of the lane-wise accumulator. Defaults to the target's simd_width_of[dtype].

Fields​

  • ​acc (SIMD[dtype, W]): Lane-wise SIMD accumulator. reduce reduces to scalar (placed in acc[0]); bodies read acc[0].

Implemented traits​

AnyType, Copyable, ImplicitlyCopyable, ImplicitlyDeletable, Movable, ReduceOp, RegisterPassable, TrivialRegisterPassable

comptime members​

Single​

comptime Single = ReduceMin[dtype, Int(1)]

width​

comptime width = W

Methods​

__init__​

def __init__() -> Self

Identity: acc = MAX_W (True for bool: min is logical AND).

__getitem__​

def __getitem__(self, j: Int) -> Self.Single

Returns lane j as a width-1 monoid.

Returns:

Self.Single

__setitem__​

def __setitem__(mut self, j: Int, s: ReduceMin[dtype, Int(1)])

Writes width-1 monoid s into lane j.

accumulate​

def accumulate[val_dtype: DType, w: Int](mut self, val: SIMD[val_dtype, w], idx: SIMD[DType.int64, w] = 0)

Folds a SIMD tile into acc lane-wise. Partial tiles get identity-padded (max_finite) via Self.pad.

Parameters:

  • ​val_dtype (DType): The tile's source dtype.
  • ​w (Int): SIMD width of the tile.

Args:

join​

def join(mut self, other: Self)

Sequential combine: lane-wise min.

Args:

  • ​other (Self): The state to combine into self.

reduce​

def reduce(self) -> Self.Single

Mins the W lane partials via the reduce_min intrinsic.

Overrides the default lane-fold so the vectorized horizontal min is emitted explicitly (a measured CPU win; GPU-neutral). bool reduces through uint8 because the FP reduce_min intrinsic rejects <N x i1> on GPU.

Returns:

Self.Single: A width-1 ReduceMin holding the minimum in acc[0].

join_parallel​

def join_parallel[R: Reducer](mut self, reducer: R)

Cross-thread combine via reducer.min, splatting the scalar result across all lanes. Runs after reduce.

Parameters:

  • ​R (Reducer): The parallel scalar reducer.

Args:

  • ​reducer (R): The reducer instance.