CollectiveTypes

#include <popops/CollectiveTypes.hpp>

Supported types for replicated and non-replicated collectives.

namespace popops

Common functions, such as elementwise and reductions.

Enums

enum CollectiveOperator

Supported collective operators.

Values:

enumerator ADD
enumerator MEAN
enumerator MUL
enumerator MIN
enumerator MAX
enumerator LOGICAL_AND

Only supports boolean operands.

enumerator LOGICAL_OR

Only supports boolean operands.

enumerator SQUARE_ADD

Squares each element before applying ADD reduction.

enumerator LOCAL

Do nothing and keep the local value.

Functions

std::istream &operator>>(std::istream &is, CollectiveOperator &op)

Parse token from input stream is to op.

Valid input values are the stringified enumerations, for example “ADD” or “MUL”.

Returns

The original input stream.

std::ostream &operator<<(std::ostream &os, const CollectiveOperator &op)

Write op to output stream os.

The value written is the stringified enumeration, for example “ADD” or “MUL”.

Returns

The original output stream.

CollectiveOperator operationToCollectiveOperator(const Operation &col)

Convert from popops::Operation to popops::CollectiveOperator.

struct Chunk
#include <CollectiveTypes.hpp>

Represents a section of a tensor mapped to an IPU.

Public Functions

Chunk() = default
inline Chunk(poplar::Tensor tensor, unsigned index, unsigned offset)

Public Members

poplar::Tensor tensor
unsigned index

Ring index (data parallel index).

unsigned offset

Offset within rank (model parallel index).

struct Chunks
#include <CollectiveTypes.hpp>

A vector of Chunk data.

Public Functions

Chunks() = default
inline Chunks(unsigned size)

Public Members

poplar::Tensor originalInput

Used to undo shuffles introduced by scatter.

std::vector<Chunk> chunks

Chunks produced by the scatter step.