GlobalExchangeConstraints

#include <poplar/GlobalExchangeConstraints.hpp>
template<>
struct std::hash<poplar::GlobalExchangeFlow>

Public Functions

size_t operator()(const poplar::GlobalExchangeFlow &value) const
template<>
struct std::hash<poplar::GlobalExchangeConstraint>

Public Functions

size_t operator()(const poplar::GlobalExchangeConstraint &value) const
namespace poplar

Poplar classes and functions.

A VectorList is a list of vectors with a specific layout and with the usage semantics of a 2D vector.

A 1D vector must be laid out in a contiguous memory region. A 2D vector is a vector of 1D vectors. Each of these 1D vectors that make up a 2D vector is called a “sub-vector” for the remainder of this document. The elements of a 2D vector can be accessed by indexing the 2D vector along the outer and inner dimensions as A[outer][inner].

The following two categories of layouts are supported:

  1. VectorListLayout::DELTANELEMENTS is a memory efficient 2D vector layout. For legacy systems VectorListLayout::DELTAN served a similar purpose. Each sub-vector must be laid out as a contiguous memory region but the sub-vectors may may not be laid out contiguous with respect to each other in memory. Each sub-vector may have a different length.

  2. VectorListLayout::ONE_PTR and other VectorListLayout layouts that are prefixed by SCALED_PTR are for Poplar runtime use only.

struct GlobalExchangeConstraint

Public Functions

inline GlobalExchangeConstraint(double bandwidth, ArrayRef<GlobalExchangeFlow> flows)
bool operator==(const GlobalExchangeConstraint &other) const
bool operator<(const GlobalExchangeConstraint &other) const

Public Members

double bandwidth

Bandwidth in bits per second.

std::vector<GlobalExchangeFlow> flows

The flows that the constraint applies to.

struct GlobalExchangeFlow

Public Functions

inline GlobalExchangeFlow(unsigned src, unsigned dst)
bool operator==(const GlobalExchangeFlow &other) const
bool operator<(const GlobalExchangeFlow &other) const

Public Members

unsigned src
unsigned dst
namespace std
template<> GlobalExchangeConstraint >

Public Functions

size_t operator()(const poplar::GlobalExchangeConstraint &value) const
template<> GlobalExchangeFlow >

Public Functions

size_t operator()(const poplar::GlobalExchangeFlow &value) const