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

AllReduceAlgorithm

struct AllReduceAlgorithm

Selects which P2P allreduce kernel _allreduce_p2p launches.

Replaces the former pair of use_2stage / use_lamport booleans with a single mutually-exclusive selector (the booleans could encode nonsensical combinations such as "2-stage and Lamport").

Implemented traits

AnyType, Copyable, Deinitable, ImplicitlyCopyable, Movable, RegisterPassable, TrivialRegisterPassable, Writable

comptime members

LAMPORT

comptime LAMPORT = AllReduceAlgorithm(Int(2))

Barrier-free negative-zero sentinel path (small messages only).

ONE_STAGE

comptime ONE_STAGE = AllReduceAlgorithm(Int(0))

Latency-bound: every block reads all peers and reduces directly.

TWO_STAGE

comptime TWO_STAGE = AllReduceAlgorithm(Int(1))

Bandwidth-bound: reduce-scatter into peer payloads, then all-gather.

Methods

__eq__

def __eq__(self, other: Self) -> Bool

Returns:

Bool

__ne__

def __ne__(self, other: Self) -> Bool

Returns:

Bool

write_to

def write_to(self, mut writer: T)

Writes the human-readable algorithm name.

Args:

  • writer (T): The writer to write to.