Logo
Poplar and PopLibs API Reference
Version: 2.2.0
  • 1. Using the libraries
    • Adding PopLibs code to a graph
    • Setting Options
      • Environment variables
      • Option values
      • Unsupported options
    • Linking
  • 2. Poplar runtime API reference
    • Vertex types
    • Input & output types
    • Field types
    • Vector types
    • VectorList types
    • Half-float types
    • Stack size definition
  • 3. Poplar API reference
    • Utility classes
      • poplar/ArrayRef.hpp
      • poplar/Interval.hpp
      • poplar/OptionFlags.hpp
      • poplar/RandomSeed.hpp
      • poplar/ReplicatedStreamMode.hpp
      • poplar/SerializationFormat.hpp
      • poplar/StringRef.hpp
      • poplar/SyncType.hpp
      • poplar/TypeTraits.hpp
      • poplar/CSRFunctions.hpp
    • Exceptions
      • poplar/exceptions.hpp
    • Graph classes
      • poplar/CodeletFileType.hpp
      • poplar/DataStream.hpp
      • poplar/DataStreamType.hpp
      • poplar/Graph.hpp
      • poplar/GraphElements.hpp
      • poplar/LateInitCallback.hpp
      • poplar/PerfEstimateFunc.hpp
      • poplar/Tensor.hpp
      • poplar/TensorCloneMethod.hpp
      • poplar/TensorRearranger.hpp
      • poplar/Type.hpp
      • poplar/VariableMappingMethod.hpp
      • poplar/VariableRef.hpp
      • poplar/VectorLayout.hpp
      • poplar/VertexIntrospector.hpp
    • Control program classes
      • poplar/Program.hpp
    • Device management
      • poplar/TargetType.hpp
      • poplar/Target.hpp
      • poplar/Device.hpp
      • poplar/DeviceManager.hpp
      • poplar/IpuLinkConfiguration.hpp
      • poplar/IpuLinkTopology.hpp
    • Graph execution
      • poplar/Engine.hpp
      • poplar/StreamCallback.hpp
    • Serializing executable state
      • poplar/Executable.hpp
    • Profiling & debugging
      • poplar/DebugContext.hpp
      • poplar/ProfileValue.hpp
      • poplar/IPUModel.hpp
      • poplar/GlobalExchangeConstraints.hpp
      • poplar/CycleCount.hpp
  • 4. PopLibs API reference
    • Utility functions (poputil)
      • poputil/Broadcast.hpp
      • poputil/GraphFunction.hpp
      • poputil/OptionParsing.hpp
      • poputil/TensorMetaData.hpp
      • poputil/TileMapping.hpp
      • poputil/Util.hpp
      • poputil/VarStructure.hpp
      • poputil/VertexTemplates.hpp
    • Tensor operations (popops)
      • popops/AllTrue.hpp
      • popops/Cast.hpp
      • popops/CircBuf.hpp
      • popops/CollectiveTypes.hpp
      • popops/DynamicSlice.hpp
      • popops/ElementWise.hpp
      • popops/ElementWiseUtil.hpp
      • popops/Encoding.hpp
      • popops/EncodingConstants.hpp
      • popops/Expr.hpp
      • popops/ExprOp.hpp
      • popops/Fill.hpp
      • popops/Gather.hpp
      • popops/GatherStatistics.hpp
      • popops/HostSliceTensor.hpp
      • popops/Loop.hpp
      • popops/NaN.hpp
      • popops/NormaliseImage.hpp
      • popops/Operation.hpp
      • popops/Pad.hpp
      • popops/Rearrange.hpp
      • popops/Reduce.hpp
      • popops/ScaledAdd.hpp
      • popops/Scatter.hpp
      • popops/SelectScalarFromRows.hpp
      • popops/SequenceSlice.hpp
      • popops/Sort.hpp
      • popops/SortOrder.hpp
      • popops/TensorCollectives.hpp
      • popops/TopK.hpp
      • popops/UpdateScalarInRows.hpp
      • popops/Zero.hpp
    • Linear algebra functions (poplin)
      • poplin/Cholesky.hpp
      • poplin/ConvParams.hpp
      • poplin/ConvPreplan.hpp
      • poplin/ConvUtil.hpp
      • poplin/Convolution.hpp
      • poplin/FullyConnected.hpp
      • poplin/MatMul.hpp
      • poplin/MeshGrid.hpp
      • poplin/MultiConvolution.hpp
      • poplin/Norms.hpp
      • poplin/TriangularSolve.hpp
    • Random number operations (poprand)
      • poprand/RandomGen.hpp
    • Sparse tensor operations (popsparse)
      • popsparse/experimental/BlockSparse.hpp
      • popsparse/experimental/BlockSparseMatMul.hpp
      • popsparse/MatMul.hpp
      • popsparse/MatMulParams.hpp
      • popsparse/Embedding.hpp
      • popsparse/FullyConnected.hpp
      • popsparse/FullyConnectedParams.hpp
      • popsparse/PlanningCache.hpp
      • popsparse/SparsePartitioner.hpp
      • popsparse/SparseStorageFormats.hpp
      • popsparse/SparseTensor.hpp
      • popsparse/SparsityParams.hpp
    • Neural network functions (popnn)
      • popnn/BatchNorm.hpp
      • popnn/CTCInference.hpp
      • popnn/CTCLoss.hpp
      • popnn/CTCPlan.hpp
      • popnn/GroupNorm.hpp
      • popnn/Gru.hpp
      • popnn/GruDef.hpp
      • popnn/InstanceNorm.hpp
      • popnn/LayerNorm.hpp
      • popnn/LogSoftmax.hpp
      • popnn/Loss.hpp
      • popnn/Lstm.hpp
      • popnn/LstmDef.hpp
      • popnn/NonLinearity.hpp
      • popnn/NonLinearityDef.hpp
      • popnn/NonLinearityDefUtil.hpp
      • popnn/Norms.hpp
      • popnn/Pooling.hpp
      • popnn/PoolingDef.hpp
      • popnn/Recurrent.hpp
      • popnn/Rnn.hpp
      • popnn/SpatialSoftMax.hpp
  • 5. GCL API reference
    • gcl/TileAllocation.hpp
    • gcl/Collectives.hpp
    • gcl/CollectiveBalancedReorder.hpp
  • 6. IPU Builtins
    • Get COUNT_L from CSR
    • Get COUNT_U from CSR
    • Get VERTEX_BASE from CSR
    • Get TILE_ID from CSR
    • Generate random 32-bit integer
    • Generate random 64-bit integer
    • Generate random 16-bit float
    • Generate random 32-bit float
    • Classify float
    • Triple-pack three addresses
    • Write to an upper CSR
      • Example:
    • Write to a CSR
      • Example:
    • Read from an upper CSR
      • Example:
    • Read from a CSR
      • Example:
    • Check for worker mode
      • Example:
    • Roll-left SIMD permutation
    • Roll-right SIMD permutation
    • Check whether floating-point value is finite
    • Check whether floating-point value is infinite
    • Check whether floating-point value is NaN
  • 7. Deprecated
  • 8. Index
  • 9. Trademarks & copyright
Poplar and PopLibs API Reference

9. Trademarks & copyright

Graphcore® and Poplar® are registered trademarks of Graphcore Ltd.

AI-Float™, Colossus™, Exchange Memory™, Graphcloud™, In-Processor-Memory™, IPU-Core™, IPU-Exchange™, IPU-Fabric™, IPU-Link™, IPU-M2000™, IPU-Machine™, IPU-POD™, IPU-Tile™, PopART™, PopLibs™, PopVision™, PopTorch™, Streaming Memory™ and Virtual-IPU™ are trademarks of Graphcore Ltd.

All other trademarks are the property of their respective owners.

© Copyright 2016-2020, Graphcore Ltd.

This software is made available under the terms of the Graphcore End User License Agreement (EULA). Please ensure you have read and accept the terms of the license before using the software.

Previous

Revision 46ad1b01.