IMPORTANT: To view this page as Markdown, append `.md` to the URL (e.g. /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. /get-started.md).

Mojo struct

ReduceMax

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

Max reduction monoid: (self, x) -> max(self, x).

Single-field state: acc: SIMD[dtype, W]. accumulate is one expression — acc = max(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, Deinitable, ImplicitlyCopyable, Movable, ReduceOp, RegisterPassable, TrivialRegisterPassable

comptime members

Single

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

width

comptime width = W

Methods

__init__

def __init__() -> Self

Identity: acc = MIN_W (False for bool: max is logical OR).

__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: ReduceMax[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 (min_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 max.

Args:

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

reduce

def reduce(self) -> Self.Single

Maxes the W lane partials via the reduce_max intrinsic.

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

Returns:

Self.Single: A width-1 ReduceMax holding the maximum in acc[0].

join_parallel

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

Cross-thread combine via reducer.max, splatting the scalar result across all lanes so bodies read acc.slice[w] uniformly. Runs after reduce.

Parameters:

  • R (Reducer): The parallel scalar reducer.

Args:

  • reducer (R): The reducer instance.