InOutTypes
#include <poplar/InOutTypes.hpp>
Defines
-
NO_INSTRUMENT
-
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
andinner
dimensions asA[outer][inner]
.The following two categories of layouts are supported:
VectorListLayout::DELTANELEMENTS
is a memory efficient 2D vector layout. For legacy systemsVectorListLayout::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.VectorListLayout::ONE_PTR
and otherVectorListLayout
layouts that are prefixed by SCALED_PTR are for Poplar runtime use only.
-
template<>
class InOut<quarter> : public poplar::InOutBase<quarter> - #include <InOutTypes.hpp>
InOut with metadata.
Public Functions
- inline const NO_INSTRUMENT MetadataType * getMetadata () const
-
template<typename T>
class InOutBase : public poplar::IOBase<T> Subclassed by poplar::InOut< T >, poplar::InOut< quarter >
-
template<>
class Input<quarter> : public poplar::InputBase<quarter> - #include <InOutTypes.hpp>
Input with metadata.
Public Functions
- inline const NO_INSTRUMENT MetadataType * getMetadata () const
-
template<typename T>
class InputBase : public poplar::IOBase<T> Subclassed by poplar::Input< T >, poplar::Input< quarter >
-
template<typename T>
struct IOBase Subclassed by poplar::InOutBase< quarter >, poplar::InputBase< quarter >, poplar::OutputBase< quarter >, poplar::InOutBase< T >, poplar::InputBase< T >, poplar::OutputBase< T >
Public Members
-
void *p
-
void *p
-
template<>
struct IOBase<quarter>
-
template<typename T>
class Output : public poplar::OutputBase<T> - #include <InOutTypes.hpp>
-
template<>
class Output<quarter> : public poplar::OutputBase<quarter> - #include <InOutTypes.hpp>
Output with metadata.
Public Functions
- inline const NO_INSTRUMENT MetadataType * getMetadata () const
-
template<typename T>
class OutputBase : public poplar::IOBase<T> Subclassed by poplar::Output< T >, poplar::Output< quarter >