Operation
Description
ATB Operation class.
This API class defines a series of APIs required for operator preparation and execution. You can execute operators by creating Operation objects.
Definition
1 2 3 4 5 6 7 8 9 10 11 | class Operation { public: Operation() = default; virtual ~Operation() = default; virtual std::string GetName() const = 0; virtual Status InferShape(const SVector<TensorDesc> &inTensorDescs, SVector<TensorDesc> &outTensorDescs) const = 0; virtual uint32_t GetInputNum() const = 0; virtual uint32_t GetOutputNum() const = 0; virtual Status Setup(const VariantPack &variantPack, uint64_t &workspaceSize, Context *context) = 0; virtual Status Execute(const VariantPack &variantPack, uint8_t *workspace, uint64_t workspaceSize, Context *context) = 0; }; |
Parameters
Member |
Description |
|---|---|
GetName |
Obtains the name of the created Operation. |
InferShape |
Infers the description of the output tensor based on the input tensor description.
If the execution is successful, NO_ERROR is returned. Other error codes indicate failures. For details, see ErrorType. |
GetInputNum |
Gets the number of input tensors of Op/GraphOp. |
GetOutputNum |
Gets the number of output tensors of Op/GraphOp. |
Setup |
Prepares for executing an Operation, such as calculating workspaceSize to be allocated during the Operation execution.
If the execution is successful, NO_ERROR is returned. Other error codes indicate failures. For details, see ErrorType. |
Execute |
Executes an Operation. The actual memory is allocated to the Operation based on the workspaceSize obtained in the Setup process, and the Operation is executed.
If the execution is successful, NO_ERROR is returned. Other error codes indicate failures. For details, see ErrorType. |