Operation
说明
加速库Operation类。
该接口类定义了算子准备与执行需要的一系列的接口,用户通过创建Operation对象来执行算子。
定义
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; };
成员
成员名称 |
描述 |
---|---|
GetName |
获取创建的Operation的名字。 |
InferShape |
根据输入tensor描述信息推导出输出tensor的描述信息。
如果执行成功,返回NO_ERROR。其他错误码表示失败,具体详见ErrorType。 |
GetInputNum |
获取Op/GraphOp输入tensor个数接口。 |
GetOutputNum |
获取Op/GraphOp输出tensor个数接口。 |
Setup |
Operation执行前的一系列准备工作,主要是计算Operation执行过程需要分配的内存空间workspaceSize。
如果执行成功,返回NO_ERROR。其他错误码表示失败,具体详见ErrorType。 |
Execute |
Operation执行的流程,根据Setup过程中得到的“workspaceSize”为Operation执行分配实际的内存,并执行Operation。
如果执行成功,返回NO_ERROR。其他错误码表示失败,具体详见ErrorType。 |
父主题: atb/operation.h