Skip to main content

Mojo function

lane_group_min

lane_group_min[val_type: DType, simd_width: Int, //, num_lanes: Int, stride: Int = 1](val: SIMD[val_type, simd_width]) -> SIMD[val_type, simd_width]

Reduces a SIMD value to its minimum within a lane group and broadcasts to all lanes.

This function performs a parallel reduction across a group of lanes to find the minimum value. The result is broadcast to all participating lanes using optimized hardware-specific paths (AMD DPP, Blackwell redux, or butterfly shuffle pattern).

Parameters:

  • val_type (DType): The data type of the SIMD elements (e.g. float32, int32).
  • simd_width (Int): The number of elements in the SIMD vector.
  • num_lanes (Int): The number of threads participating in the reduction.
  • stride (Int): The stride between lanes participating in the reduction.

Args:

  • val (SIMD): The SIMD value to reduce. Each lane contributes its value to find the minimum.

Returns:

SIMD: A SIMD value where all participating lanes contain the minimum value found across the lane group. Non-participating lanes (lane_id >= num_lanes) retain their original values.

Was this page helpful?