tvm.error

Structured error classes in TVM.

Each error class takes an error message as its input. See the example sections for suggested message conventions. To make the code more readable, we recommended developers to copy the examples and raise errors with the same message convention.

Note

Please also refer to Error Handling Guide.

Functions:

register_error([func_name, cls])

Register an error class so it can be recognized by the ffi error handler.

Exceptions:

TVMError

Default error thrown by TVM functions.

InternalError(msg)

Internal error in the system.

RPCError

Error thrown by the remote server handling the RPC call.

OpError

Base class of all operator errors in frontends.

OpNotImplemented

Operator is not implemented.

OpAttributeRequired

Required attribute is not found.

OpAttributeInvalid

Attribute value is invalid when taking in a frontend operator.

OpAttributeUnImplemented

Attribute is not supported in a certain frontend.

DiagnosticError

Error diagnostics were reported during the execution of a pass.

tvm.error.register_error(func_name=None, cls=None)

Register an error class so it can be recognized by the ffi error handler.

Parameters
  • func_name (str or function or class) – The name of the error function.

  • cls (function) – The function to create the class

Returns

fregister – Register function if f is not specified.

Return type

function

Examples

@tvm.error.register_error
class MyError(RuntimeError):
    pass

err_inst = tvm.error.create_ffi_error("MyError: xyz")
assert isinstance(err_inst, MyError)
exception tvm.error.TVMError

Default error thrown by TVM functions.

TVMError will be raised if you do not give any error type specification,

exception tvm.error.InternalError(msg)

Internal error in the system.

Examples

// Example code C++
LOG(FATAL) << "InternalError: internal error detail.";
# Example code in python
raise InternalError("internal error detail")
exception tvm.error.RPCError

Error thrown by the remote server handling the RPC call.

exception tvm.error.OpError

Base class of all operator errors in frontends.

exception tvm.error.OpNotImplemented

Operator is not implemented.

Example

raise OpNotImplemented(
    "Operator {} is not supported in {} frontend".format(
        missing_op, frontend_name))
exception tvm.error.OpAttributeRequired

Required attribute is not found.

Example

raise OpAttributeRequired(
    "Required attribute {} not found in operator {}".format(
        attr_name, op_name))
exception tvm.error.OpAttributeInvalid

Attribute value is invalid when taking in a frontend operator.

Example

raise OpAttributeInvalid(
    "Value {} in attribute {} of operator {} is not valid".format(
        value, attr_name, op_name))
exception tvm.error.OpAttributeUnImplemented

Attribute is not supported in a certain frontend.

Example

raise OpAttributeUnImplemented(
    "Attribute {} is not supported in operator {}".format(
        attr_name, op_name))
exception tvm.error.DiagnosticError

Error diagnostics were reported during the execution of a pass.

See the configured diagnostic renderer for detailed error information.