►Ngcl | Graphcore Communications Library |
CChunk | Represents a section of a tensor mapped to an IPU |
CChunks | A vector of Chunk data |
CCollectiveBalancedHostRearrangement | This class contains functions and data necessary to rearrange tensors on the host side at runtime |
CCollectiveBalancedReorder | Helper class to reorder a tensor in a per-tile-balanced fashion such that each replica obtains (for inputs to AllGather or outputs of ReduceScatter) an equally sized 1D tensor with equally sized regions |
CCommGroup | Struct to specify sub-groups of replicas |
►Npoplar | Poplar classes and functions |
►Ndetail | |
CV2DLayoutEnumToType | VectorList |
CVLayoutEnumToType< T, VectorLayout::SPAN, MinAlign, Interleaved > | Vector |
►Nprogram | |
CAssumeEqualAcrossReplicas | A program to mark a tensor as equal across replicas |
CBlock | A program to scope another program |
CCall | A program to perform a function call to a previously stored program |
CCopy | A program that copies data |
CCrossReplicaCopy | A program that copies tensors between replicated sub-graphs |
CExecute | Program that executes a compute set in the graph |
CIf | A program that runs one of two programs depending on the value of a scalar tensor |
CLoop | A program that executes for an indefinite number of iterations |
CProgram | This class represents a control program that executes operations on the graph |
CRepeat | A program that repeatedly executes for a fixed number of iterations |
CRepeatWhileFalse | A program that executes a program repeatedly while a condition is false |
CRepeatWhileTrue | A program that executes a program repeatedly while a condition is true |
CSequence | Program that executes a sequence of programs |
CSwitch | A program that runs one of many programs depending on the value of a tensor |
CSync | A program to synchronise at a certain granularity dictated by the SyncType |
CWriteUndef | A program to mark a tensor as containing an undefined value |
Capplication_runtime_error | This exception is thrown when running a program fails due to an error in the program or a misuse of an API |
CComputeSet | A reference to a compute set within a graph |
Ccontrol_program_error | This exception is thrown when the construction of a graph program is invalid |
CDataStream | An object representing a stream for communicating between the host and the device |
CDebugContext | DebugContext gathers the common external parameters of the context of an operation |
CDebugInfo | DebugInfo stores and persists a set of data that describes the context of an operation |
CDebugNameAndId | DebugNameAndId bundles a name and a DebugId to facilitate their propagation through function calls |
CDevice | A device refers to a physical entity that can execute code |
CDeviceManager | A DeviceManager is able to enumerate and return groups of physical IPUs connected to an entity/host |
►CEngine | A graph compute engine |
CTimerTimePoint | PImpl interface to core timing information |
CEngineOptions | A group of properties for a poplar::Executable object |
Cequivalent_device_type | Template structure to relate a host type to a device type |
CErrorLocation | Uniquely identify the location of an error within a Poplar Device |
CErrorLocationHash | Hash function for ErrorLocation |
CExecutable | An instance of poplar::Executable contains all of the information needed to run a program on an IPU device |
CExternalExchangeVertex | ExternalExchangeVertex base class; Any sub-type of this class needs to define a compute() method returning a bool |
CFieldData | Information about a vertex field, including its size and its initial value, if set |
CFieldRef | A reference to a field within a vertex instance |
CFloatingPointBehaviour | Structure to specify floating point behaviour |
CFunction | A reference to a function stored within a graph |
CFunctionBuffer | A reference to a function buffer stored within a graph |
CGenericInterval | This class represents an interval that is closed at its lower bound and open at its upper bound |
CGraph | This class represents a graph program to be executed on the IPU |
Cgraph_connection_error | This exception is thrown during construction of an Engine object if there is an error in the structure of graph, for example, if there are no edges to a vertex input or if there are multiple edges to a vertex input |
Cgraph_cycle_error | This exception is thrown during the construction of an Engine object if there are any cycles in the graph that are not broken by recurrent edges |
Cgraph_memory_allocation_error | This exception is thrown when an memory allocation fails |
Cgraph_object_creation_error | This exception is thrown in the construction of a GraphProgEnv object if there was an error in the creation of the graph program object file |
Cgraph_object_load_error | This exception is thrown in the construction of a GraphProgEnv object if there was an error in loading the graph program object file |
Cgraph_program_compilation_error | This exception is thrown in the construction of a GraphProgEnv object if there are any compilation errors in the graph program |
Cgraph_recursion_error | This exception is thrown during the construction of an Engine object if there are recursive calls |
Cgraph_replication_error | This exception is thrown when an invalid operation is carried out on a replicated graph |
CHostCallback | Interface used during host function calls to produce/consume the data being exchanged between the host and the device |
CHostCallbackHandle | Wrapper for HostCallback instances |
CHostFunction | A reference to a function in the host |
CIeeeHalf | A IeeeHalf |
Cindex_error | This exception is thrown if the index of a subscript is out of the bounds of the field it is accessing or if a index of a tensor is invalid |
CInOut | Input |
CInOut< quarter > | InOut with metadata |
CInOut< Vector< T, L, MinAlign, Interleaved > > | InOut<Vector> |
CInOut< VectorList< T, L, MinAlign, Interleaved > > | InOut<VectorList> |
CInput | Input |
CInput< quarter > | Input with metadata |
CInput< Vector< T, L, MinAlign, Interleaved > > | Input<Vector> |
CInput< VectorList< T, L, MinAlign, Interleaved > > | Input<VectorList> |
Cinvalid_machine_model | This exception is thrown when an invalid model of the IPU (for performance model profiling) has been specified |
Cinvalid_option | This exception is thrown when an unrecognised or invalid option is passed to a Poplar API |
Cinvalid_tile_mapping | This exception is thrown when the tile mapping passed to the UserTilePartitioner is invalid |
CIPUModel | A model of an IPU to create an IPUModel Device The IPU Model will simulate the behaviour of the IPU hardware |
CLegacyStreamCallback | Convenience StreamCallback specialization for implementations that do not support prefetch/complete operations when the data type used does not require metadata |
Clink_error | This exception is thrown when the linking stage for codelets fails |
Cmemory_elem_constraints_error | This exception is thrown when an invalid memory element constraint has been provided in a codelet |
Cmissing_graph_profile | This exception is thrown if the graph and/or execution profile is required but the graph profile that should had been generated during compilation is not found |
Cmissing_perf_estimate | This exception is thrown when an Engine is constructed with profiling enabled but a vertex does not have a getPerfEstimate method specified |
CModule | An instance of poplar::Moudle contains all of the information needed to run a program on an IPU device |
CMultiVertex | MultiVertex base class; Any sub-type of this class needs to define a compute() method taking a single unsigned value and returning a bool |
Cno_environment | This exception is thrown, in the construction of a GraphProgEnv object, in mixed-mode compilation, if there is no graph-programming environment available, in particular if the program has not been compiled with the 'popc' command-line tool |
Cno_size_specified | This exception is thrown if the size of a field is not specified in a Graph object when an EngineBuilder object is constructed |
COptionFlags | A set of option/value string flags to be used in various APIs |
COutput | Output |
COutput< quarter > | Output with metadata |
COutput< Vector< T, L, MinAlign, Interleaved > > | Output<Vector> |
COutput< VectorList< T, L, MinAlign, Interleaved > > | Output<VectorList> |
Coverflow_error | This exception is thrown when an arithmetic overflow occurs within Poplar |
Cparse_error | This exception is thrown when an input file or string cannot be parsed |
Cpoplar_error | Base class for Poplar exceptions |
CPreallocations | This class describes where external variables and other pre-existing allocations are in memory |
CProfileValue | ProfileValue represents a read-only JSON-like tree of values that are used to store the output of the profiler |
Cprofiling_disabled | This exception is thrown if profiling information is requested from an Engine but that Engine has not been constructed with profiling enabled |
CQuarterMetadata | Quarter metadata type |
Crecoverable_runtime_error | This exception is thrown when when running a program fails due to a system error that is likely to be transient |
CRemoteBuffer | A remote buffer is a region of remote (meaning not on the IPU) memory that is used as a cache |
CResumableStreamCallback | Expands StreamCallback API with functions that prevent further progress |
Cruntime_error | This exception is thrown when running a program on a system fails |
CRuntimeOptions | A group of properties that are reconfigurable in each engine execution |
CSourceLocation | This class mimics std::source_location that is unavailable as we don't yet support C++20 |
Cstream_connection_error | This exception is thrown when an invalid attempt is made to connect a data stream |
Cstream_memory_allocation_error | This exception is thrown when allocation of stream buffers fails |
CStreamCallback | Interface used during stream copies to produce/consume the data being exchanged between the host and the device |
CStreamCallbackHandle | Wrapper for StreamCallback instances |
CStreamCallbackWithMetadata | Interface used to add support for stream copies to produce/consume data if the data type requires metadata |
CSupervisorVertex | SupervisorVertex base class; Any sub-type of this class needs to define a compute() method returning a bool |
Csystem_runtime_error | This exception is thrown when running a program fails due to an error in the system it is running on |
CTarget | A target representation |
CTensor | A reference to a subset of tensor elements |
Ctensor_creation_error | This exception is thrown in the construction of a tensor if invalid arguments are provided to the tensor creation function or method |
Ctensor_io_state_error | This exception is thrown when an attempt is made to mark a tensor as an input or output, but the argument references a view of a tensor, rather than a whole tensor |
Ctensor_metadata_error | This exception is thrown if a tensor uses a type that requires metadata and the metadata is not accessible |
CTensorRearranger | TensorRearranger can be used to re-order the view on a tensor and to undo that re-ordering |
CType | Class representing device data types |
Ctype_error | This exception is thrown when there is an error related to the field types of vertices, for example, when the source of an edge contains an input, the types of inputs and source field between an edge do not match, or when a field cannot be subscripted |
CTypeTraits | A structure to provide information about arithmetic (integer and floating point) types |
Cunknown_field | This exception is thrown when a field name is specified that does not exist in the graph-programming environment |
Cunknown_runtime_error | This exception is throw when execution fails due to a system error where the cause cannot be automatically determined, for example a timeout without a specific error being raised |
Cunknown_vertex_type | This exception is thrown when a vertex type name is specified that does not exist in the graph programming environment |
Cunrecoverable_runtime_error | This exception is thrown when execution fails due to a system error that is likely to persist |
CVariableInterval | Type representing a segment of a particular variable |
CVariableRef | Type representing a reference to a variable in a graph |
CVector< InOut< T >, L, MinAlign, Interleaved > | Vector<InOut> |
CVector< InOut< Vector< T, L1, MinAlign1, Interleaved > >, L2, MinAlign2, false > | Vector<InOut<Vector<T>> |
CVector< Input< T >, L, MinAlign, Interleaved > | Vector<Input> |
CVector< Input< Vector< T, L1, MinAlign1, Interleaved > >, L2, MinAlign2, false > | Vector<Input<Vector<T>> |
CVector< Output< T >, L, MinAlign, Interleaved > | Vector<Output> |
CVector< Output< Vector< T, L1, MinAlign1, Interleaved > >, L2, MinAlign2, false > | Vector<Output<Vector<T>> |
CVertex | Vertex base class |
CVertexEdgeInfo | Data structure that will be passed to the callback used for 'late initialisation' for vertex fields |
CVertexIntrospector | Available to cycle estimators to inspect the shape and initial values of a vertex's fields |
CVertexRef | A reference to a vertex within a graph |
►Npoplibs | PopLibs classes and functions |
COptionHandler | Represents the various options types |
COptionSpec | Represents a set of options and their values |
►Npoplin | Linear algebra functions |
►Nfc | |
CFullyConnectedParams | Parameters to describe a fully-connected layer |
►Nmatmul | |
CPlanningCache | |
►Nmulticonv | |
CCalculateWeightDeltasArgs | |
CConvolutionArgs | |
CConvWeightUpdateArgs | |
CConvWeightUpdateArgsScalar | |
CCreateTensorArgs | Multi-convolutions allow for a set of convolutions to be executed in parallel |
CMatMulParams | Parameters to define a Matrix multiplication |
CPlanCosts | Structure for estimated costs returned by reportPlanEstimatedCosts() |
►Npopnn | Functions used in neural networks |
►Nctc | |
CPlan | An object representing a plan that describes how to map tensors and implement the CTC Loss or CTC Inference functions |
►Nexperimental | |
CroiAlignParams | Parameters of ROIAlign |
►Ngru | |
CGruParams | Structure representing the parameters of the GRU |
CGruWeights | Structure holding all the parameters of a GRU cell, or the deltas for those parameters (depending on the context) |
►Nlstm | |
CLstmParams | Structure representing the parameters of the LSTM |
CLstmState | Structure holding the state of a LSTM cell, or the gradients for the state (depending on the context) |
CLstmWeights | Structure holding all the parameters of an LSTM cell, or the deltas for those parameters (depending on the context) |
►Nrnn | Functions for Recurrent Neural Networks (RNN) |
CRnnParams | Structure of Recurrent Neural Network (RNN) parameters which allows for any customized implementation of the cellular part of the RNN |
CRnnSlice | Tensors required for processing a single time step |
CStateSequence | Structure that associates a particular state tensor with a user-defined output tensor |
►Npopops | Common functions, such as elementwise and reductions |
►Nexpr | |
CAny | A class that can contain any expression, useful for building up expression trees dynamically where the type of the outermost expression may change |
CBinaryOp | A class to represent expressions with binary operators |
CCast | A class to represent cast expressions |
CConst | A class to represent constant expressions |
CConstHalf | A class to represent constant expressions of type half |
CExpr | Type to represent element expressions |
CSelect | Computes the conditional ternary operation |
CTernaryOp | A class to represent expressions with ternary operators |
CUnaryOp | A class to represent expressions with unary operators |
►Ninternal | |
CCastTargetParameters | Target parameters used in cast estimation |
CMultiSliceTargetParameters | Cycle estimate for MultiSlice vertex |
CMultiUpdateOpTargetParameters | Cycle estimate for MultiUpdateAdd vertex |
CGatherParams | Defines the parameters to a gather operation |
CIndicesAndTensor | The pair of values returned by createHostSliceableTensor() |
CReduceParams | Stores parameters for the reduce operation, as well as the basic operation being performed (for example, add or mul ) |
CSingleReduceOp | The parameterisation of the inputs to a single reduction for the reduceMany() function |
CSlicePlan | An object representing a plan that describes how to implement a slice or update |
CTopKParams | Parameters for topK* APIs |
►Npopsparse | Support for sparse matrices |
►Ndynamic | Support for dynamic sparse matrices |
CPartitioner | Class to translate and encode sparsity information for a fully connected layer |
CPlanningCache | Class used to cache the calculation of plans for dynamically sparse operations |
CSparseTensor | Representation of a sparse tensor |
CSparsityDataImpl | Encoding of sparsity representation |
►Nexperimental | |
CBSMatMulParams | This class supports block-sparse matrix multiplication |
CCOOMatrix | Block Sparse matrix stored as coordinate (COO) or triplets format |
CCSCMatrix | Sparse matrix stored in compressed sparse columns (CSC) format for a matrix of size [M x N] |
CCSRMatrix | Sparse matrix stored in compressed sparse rows (CSR) format for a matrix of size [M x N] |
►Npoputil | General utility functions for building graphs |
Cpoplibs_error | Class for PopLibs exceptions |
CTensorMetaData | Class used to represent some unspecified form of meta-data for a tensor |
CTensorUseTracker | Class that tracks the usage of data on different tiles |
CVertexTemplateToString< popnn::NonLinearityType > | Specialise vertex template stringification for non-linearity type |
CVertexTemplateToString< popops::Operation > | Specialise vertex template stringification for operation type |
COptionFlags | Supported Option flags: |