2#ifndef poplar_Error_hpp
3#define poplar_Error_hpp
8#include <unordered_set>
10#include "poplar/StringRef.hpp"
100 explicit operator bool() const noexcept;
121 friend std::ostream &operator<<(std::ostream &os,
127std::ostream &operator<<(std::ostream &os, const
ErrorLocation &location);
131 size_t operator()(
const ErrorLocation &location)
const noexcept;
A graph compute engine.
Definition: Engine.hpp:390
std::istream & operator>>(std::istream &is, CollectiveOperator &op)
Parse token from input stream is to op.
Poplar classes and functions.
Definition: ArrayRef.hpp:14
std::ostream & operator<<(std::ostream &os, const DebugNameAndId &dnai)
Display the path name of the DebugNameAndId.
StringRef errorCodeToString(ErrorCode error)
Convert a poplar::ErrorCode code to a string.
ErrorCode errorCodeFromString(StringRef error)
Convert a string to a poplar::ErrorCode code.
ErrorCode
Unique error codes for all the possible errors.
Definition: Error.hpp:31
@ FLOATING_POINT_INVALID_OPERATION
The tile failed to execute a floating point operation because it is invalid, for example multiplying ...
@ TRAP
The tile raises a debug exception event.
@ INVALID_PROGRAM_COUNTER
The tile's program counter does not point to a valid region of memory.
@ INVALID_INSTRUCTION
The tile tried to execute an invalid instruction.
@ INVALID_EXCHANGE_CONFIGURATION
The tile tried to configure how it communicates with other tiles incorrectly.
@ FLOATING_POINT_DIVIDE_BY_ZERO
The tile tried to divide a floating point number by zero.
@ FLOATING_POINT_OVERFLOW
The tile performed some floating point operation that caused a floating point number to overflow.
@ UNKNOWN
The error does not have an error code yet.
@ IPU_MEMORY_FAILURE
GCDA has determined that an excessive number of parity errors have occurred on a particular tile of a...
@ IPUSOFTERR
Same as memory error but reported via the SOC rather than tile exception.
@ INVALID_OPERAND
The tile tried to execute an instruction with an invalid operand.
@ TILE_MEMORY_BANK_CONFLICT
Two or more threads on the tile tried to access the same memory bank at the same time.
@ LINK_DOWN
A connection between IPUs failed.
@ HOST_LINK_DOWN
The connection between the host and the IPUs failed.
@ INVALID_ADDRESS
The tile tried to access memory that it does not have access to.
@ MEMORY_ERROR
The tile has detected one or more memory parity errors indicating that data may be corrupted.
@ EXCHANGE_ERROR
The tile failed to successfully communicate with other tiles.
@ HOST_SYNC_TIMEOUT
The host didn't receive any communication from the IPUs for a timeout period.
Hash function for ErrorLocation.
Definition: Error.hpp:130
Uniquely identify the location of an error within a Poplar Device.
Definition: Error.hpp:97
unsigned getTile() const noexcept