Poplar classes and functions.
enum class ErrorCode : unsigned
Unique error codes for all the possible errors.
These errors can also be simulated using Engine::insertSimulatedError().
Floating point exceptions will always be generated for simulated errors. For real errors, floating point exceptions must be enabled for these exceptions to be generated.
enumerator NONE = 0
Not an error.
The error does not have an error code yet.
The tile raises a debug exception event.
The tile failed to execute a floating point operation because it is invalid, for example multiplying a number by a NaN.
The tile tried to divide a floating point number by zero.
The tile performed some floating point operation that caused a floating point number to overflow.
Two or more threads on the tile tried to access the same memory bank at the same time.
The tile tried to configure how it communicates with other tiles incorrectly.
The tile tried to access memory that it does not have access to.
The tile tried to execute an instruction with an invalid operand.
The tile’s program counter does not point to a valid region of memory.
The tile tried to execute an invalid instruction.
The tile failed to successfully communicate with other tiles.
The tile has detected one or more memory parity errors indicating that data may be corrupted.
Same as memory error but reported via the SOC rather than tile exception.
A connection between IPUs failed.
The connection between the host and the IPUs failed.
The host didn’t receive any communication from the IPUs for a timeout period.
This error can be caused by a large number of things, such as: IPU deadlock, host miscommunication and some types of hardware error.
GCDA has determined that an excessive number of parity errors have occurred on a particular tile of an IPU, and marked this device as malfunctioning.
When this occurs Poplar will get a MEMORY_ERROR or IPUSOFTERR and the GCDA health check will report a failure.
- enumerator NONE = 0
StringRef errorCodeToString(ErrorCode error)
Convert a poplar::ErrorCode code to a string.
ErrorCode errorCodeFromString(StringRef error)
Convert a string to a poplar::ErrorCode code.
- #include <Error.hpp>
Uniquely identify the location of an error within a Poplar Device.
explicit operator bool() const noexcept
unsigned getTile() const noexcept
The tile on which the error will occur or has occurred.
- explicit operator bool() const noexcept
- enum class ErrorCode : unsigned