RandomSeed
#include <poplar/RandomSeed.hpp>
-
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.
Functions
-
Tensor getHwSeeds(Graph &graph, program::Sequence &prog, const DebugContext &debugContext = {})
Gets a snapshot of the h/w seeds for each worker in device.
- Parameters
graph – The Poplar graph.
prog – The program sequence to be extended.
debugPrefix – The prefix prepended to debugging info.
- Returns
A tensor of shape {number of tiles, number of worker contexts, 4}, containing seed values for each of the 4
PRNG_x_y
registers for each worker context on each tile.
-
void setHwSeeds(Graph &graph, const Tensor &hwSeeds, program::Sequence &prog, const DebugContext &debugContext = {})
Sets the hw seeds for each worker in a device from a snapshot of the seeds.
- Parameters
graph – The Poplar graph.
hwSeeds – A tensor of shape {number of tiles, number of worker contexts, 4} containing seed values for each of the 4
PRNG_x_y
registers for each worker context on each tile.prog – The program sequence to be extended.
debugPrefix – The prefix prepended to debugging info.