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

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, ImplicitlyCopyable, ImplicitlyDeletable, 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.

Was this page helpful?