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 function

broadcast

def broadcast[dtype: DType, width: SIMDLength, //, *, block_size: Int](val: SIMD[dtype, width], src_thread: Int = Int(0)) -> SIMD[dtype, width]

Broadcasts a value from a source thread to all threads in a block.

This function takes a SIMD value from the specified source thread and copies it to all other threads in the block, effectively broadcasting the value across the entire block.

Parameters:

  • ​dtype (DType): The data type of the SIMD elements.
  • ​width (SIMDLength): The number of elements in each SIMD vector.
  • ​block_size (Int): The total number of threads in the block.

Args:

  • ​val (SIMD[dtype, width]): The SIMD value to broadcast from the source thread.
  • ​src_thread (Int): The thread ID of the source thread (default: 0).

Returns:

SIMD[dtype, width]: A SIMD value where all threads contain a copy of the input value from the source thread.

def broadcast[dtype: DType, width: SIMDLength, //, *, block_dim_x: Int, block_dim_y: Int, block_dim_z: Int = Int(1)](val: SIMD[dtype, width], src_thread: Int = Int(0)) -> SIMD[dtype, width]

Broadcasts a value from a source thread to all threads in a multi-dimensional block.

This function takes a SIMD value from the specified source thread (identified by its linearized thread ID) and copies it to all other threads in the block. Thread IDs are linearized in row-major order: x + y * dim_x + z * dim_x * dim_y.

Parameters:

  • ​dtype (DType): The data type of the SIMD elements.
  • ​width (SIMDLength): The number of elements in each SIMD vector.
  • ​block_dim_x (Int): The number of threads along the X dimension.
  • ​block_dim_y (Int): The number of threads along the Y dimension.
  • ​block_dim_z (Int): The number of threads along the Z dimension (default: 1).

Args:

  • ​val (SIMD[dtype, width]): The SIMD value to broadcast from the source thread.
  • ​src_thread (Int): The linearized thread ID of the source thread (default: 0).

Returns:

SIMD[dtype, width]: A SIMD value where all threads contain a copy of the input value from the source thread.