DataStream

#include <poplar/DataStream.hpp>
namespace poplar

Poplar classes and functions.

class DataStream
#include <DataStream.hpp>

An object representing a stream for communicating between the host and the device.

A stream is a unidirectional communication from the host to the device, or from the device to the host.

The maximum buffer size for each stream is 128 MBytes.

Public Functions

DataStream()
DataStream(const DataStream&)
DataStream(DataStream&&) noexcept
~DataStream()
DataStream &operator=(const DataStream&)
DataStream &operator=(DataStream&&) noexcept
std::string handle() const
std::size_t numElements() const
unsigned replicationFactor() const
ReplicatedStreamMode replicatedMode() const
DataStreamType type() const
Type elementType() const
DataStream(std::unique_ptr<core::DataStreamRef>)
inline const core::DataStreamRef &getImpl() const

Private Members

std::unique_ptr<core::DataStreamRef> impl
class RemoteBuffer
#include <DataStream.hpp>

A remote buffer is a region of remote (meaning not on the IPU) memory that is used as a cache.

It is implemented as two DataStreams: one to write to the remote memory, the other to read the data back to the IPU.

Public Functions

RemoteBuffer()
RemoteBuffer(const RemoteBuffer&)
RemoteBuffer(RemoteBuffer&&) noexcept
~RemoteBuffer()
RemoteBuffer &operator=(const RemoteBuffer&)
RemoteBuffer &operator=(RemoteBuffer&&) noexcept
std::string handle() const
DataStream getIpuToHostStream() const
DataStream getHostToIpuStream() const
size_t numElements() const
size_t getRepeats() const
Type elementType() const
bool isRearrangeOnHost() const
bool isOptimisedForMemory() const
RemoteBuffer(std::unique_ptr<core::RemoteBufferRef>)
inline const core::RemoteBufferRef &getImpl() const
bool operator==(const RemoteBuffer &b) const
bool operator!=(const RemoteBuffer &b) const

Private Members

std::unique_ptr<core::RemoteBufferRef> impl
namespace core