Poplar and PopLibs API Reference
Version: 3.1.0
1. Using the libraries
Setting Options
Environment variables
Option values
Unsupported options
Linking
2. Poplar runtime API reference
FieldTypes
HalfFloat
InOutTypes
StackSizeDefs
VectorListTypes
VectorTypes
Vertex
3. Poplar API reference
Utility classes
ArrayRef
CSRFunctions
CodeletFileType
Interval
OptionFlags
RandomSeed
ReplicatedStreamMode
RuntimeOptions
SerializationFormat
StringRef
SyncType
Type
TypeTraits
Graph creation
DataStream
DataStreamType
Graph
GraphElements
LateInitCallback
StreamCallback
Tensor
TensorCloneMethod
TensorRearranger
VariableMappingMethod
VariableRef
VectorLayout
VertexIntrospector
Control programs
Program
Device management
Device
DeviceManager
IpuLinkConfiguration
IpuLinkTopology
Target
TargetType
Graph execution
Engine
Error
Executable
RuntimeOptions
Exceptions
Profiling and debugging
CycleCount
DebugContext
GlobalExchangeConstraints
IPUModel
PerfEstimateFunc
ProfileValue
4. PopLibs API reference
Adding PopLibs code to a graph program
Utility functions (poputil)
Broadcast
DebugInfo
GraphFunction
OptionParsing
TensorMetaData
TileMapping
Util
VarStructure
VertexTemplates
Tensor operations (popops)
AllTrue
Cast
CircBuf
DynamicSlice
ElementWise
ElementWiseUtil
Encoding
EncodingConstants
Expr
ExprOp
Fill
Gather
GatherStatistics
HostSliceTensor
Loop
NaN
NormaliseImage
Operation
Pad
Rearrange
Reduce
ScaledAdd
Scatter
SelectScalarFromRows
SequenceSlice
Sort
SortOrder
TopK
UpdateScalarInRows
Zero
Linear algebra functions (poplin)
Cholesky
ConvParams
ConvPreplan
ConvUtil
Convolution
FullyConnected
MatMul
MeshGrid
MultiConvolution
Norms
TriangularSolve
QRFactorization
Random number operations (poprand)
RandomGen
Sparse tensor operations (popsparse)
Embedding
FullyConnected
FullyConnectedParams
MatMul
MatMulParams
PlanningCache
SparsePartitioner
SparseStorageFormats
SparseTensor
SparsityParams
BlockSparse
BlockSparseMatMul
Neural network functions (popnn)
BatchNorm
CTCInference
CTCLoss
CTCPlan
GroupNorm
Gru
GruDef
InstanceNorm
LayerNorm
LogSoftmax
Loss
Lstm
LstmDef
NonLinearity
NonLinearityDef
NonLinearityDefUtil
Norms
Pooling
PoolingDef
Recurrent
Rnn
SpatialSoftMax
5. Graphcore Communication Library (GCL) API reference
6. Poplar compiler intrinsics
IPU C/C++ builtins
IPU functionality and memory
Get COUNT_L from CSR
Get COUNT_U from CSR
Get VERTEX_BASE from CSR
Get TILE_ID from CSR
Check for worker mode
Example
Triple-pack three addresses
Write to a CSR
Example
Write to an upper CSR
Example
Read from a CSR
Example
Read from an upper CSR
Example
Read from an upper CSR
Load and write 64-bit value to the common configuration space
Load and write 128-bit value to the common configuration space
Bit operations
And operation
Andc operation
Or operation
Not operation
Reverse bytes
Reverse bytes
SIMD roll permutation on 4x32-bit values
SIMD roll-left permutation on 8x8-bit values
SIMD roll-right permutation on 8x8-bit values
Upper half of SIMD shuffle permutation on 8x8-bit values
Lower half of SIMD shuffle permutation on 8x8-bit values
Upper half of SIMD sort permutation on 4x32-bit values
Lower half of SIMD sort permutation on 4x32-bit values
SIMD sort8 permutation on 4x8-bit values
SIMD swap8 permutation on 4x8-bit values
Float operations
Absolute addition of two values
Absolute maximum of two values
Maximum of two values
Lateral maximum of two values
Minimum of two values
Min-of-maximum of two values
CMAC operation
Natural exponential
2-to-the-power-of
Natural logarithm
Base-2 logarithm
Probabilistic mask function
Sigmoid function
Lateral sum
Tanh
Vector product
Vector sum with scalar multiplicand
Get and initialise accumulators
Float comparisons
Equality test
Greater-than-or-equal-to test
Greater-than test
Less-than-or-equal-to test
Less-than test
Inequality test
Float classification
Classify float
Check whether floating-point value is finite
Check whether floating-point value is infinite
Check whether floating-point value is NaN
Random number generation
Generate half2 vector using Gaussian distribution
Generate float2 vector using Gaussian distribution
Generate random 32-bit integer
Generate random 64-bit integer
Generate random 16-bit float
Generate random 32-bit float
IPU C++ intrinsics
IPU C++ memory intrinsics
7. Deprecated
8. Index
9. Trademarks & copyright
Doxygen
Poplar and PopLibs API Reference
StringRef
#include
<poplar/StringRef.hpp>
namespace
poplar
Poplar classes and functions.
Functions
inline
bool
operator
==
(
StringRef
l
,
StringRef
r
)
inline
bool
operator
!=
(
StringRef
l
,
StringRef
r
)
inline
bool
operator
<
(
StringRef
l
,
StringRef
r
)
inline
std
::
string
operator
+
(
StringRef
l
,
StringRef
r
)
inline
std
::
string
&
operator
+=
(
std
::
string
&
s
,
StringRef
r
)
inline
std
::
ostream
&
operator
<<
(
std
::
ostream
&
os
,
const
StringRef
&
s
)
struct
StringRef
:
public
poplar
::
ArrayRef
<
char
>
Public Functions
inline
constexpr
StringRef
(
)
constexpr
StringRef
(
const
StringRef
&
)
=
default
StringRef
(
std
::
nullptr_t
)
=
delete
inline
StringRef
(
const
std
::
string
&
s
)
inline
constexpr
StringRef
(
const
char
*
p
,
std
::
size_t
len
)
inline
StringRef
(
const
char
*
p
)
template
<
std
::
size_t
N
>
inline
constexpr
StringRef
(
const
char
(
&
p
)
[
N
]
)
inline
std
::
string
cloneAsString
(
)
const
inline
operator
std
::
string
(
)
const