aclopCompileAndExecute

函数功能

编译并执行指定的算子,当前只支持固定Shape的算子,异步接口。在编译执行算子前,可以调用aclSetCompileopt接口设置编译选项。

约束说明

函数原型

aclError aclopCompileAndExecute(const char *opType,

int numInputs,

const aclTensorDesc *const inputDesc[],

const aclDataBuffer *const inputs[],

int numOutputs,

const aclTensorDesc *const outputDesc[],

aclDataBuffer *const outputs[],

const aclopAttr *attr,

aclopEngineType engineType,

aclopCompileType compileFlag,

const char *opPath,

aclrtStream stream)

参数说明

参数名

输入/输出

说明

opType

输入

算子类型名称的指针。

numInputs

输入

算子输入tensor的数量。

inputDesc

输入

算子输入tensor描述的指针数组。

需提前调用aclCreateTensorDesc接口创建aclTensorDesc类型。

inputDesc数组中的元素个数必须与numInputs参数值保持一致,且inputs数组与inputDesc数组中的元素必须一一对应。

inputs

输入

算子输入tensor的指针数组。

需提前调用aclCreateDataBuffer接口创建aclDataBuffer类型的数据。

inputs数组中的元素个数必须与numInputs参数值保持一致,且inputs数组与inputDesc数组中的元素必须一一对应。

numOutputs

输入

算子输出tensor的数量。

outputDesc

输入

算子输出tensor描述的指针数组。

需提前调用aclCreateTensorDesc接口创建aclTensorDesc类型。

outputDesc数组中的元素个数必须与numOutputs参数值保持一致,且outputs数组与outputDesc数组中的元素必须一一对应。

outputs

输入&输出

算子输出tensor的指针数组。

需提前调用aclCreateDataBuffer接口创建aclDataBuffer类型的数据。

outputs数组中的元素个数必须与numOutputs参数值保持一致,且outputs数组与outputDesc数组中的元素必须一一对应。

attr

输入

算子属性的指针。

需提前调用aclopCreateAttr接口创建aclopAttr类型。

engineType

输入

算子执行引擎。

compileFlag

输入

算子编译标识。

typedef enum aclCompileType {
    ACL_COMPILE_SYS,  //向GE、FE注册过的算子
    ACL_COMPILE_UNREGISTERED  //未向GE、FE注册的算子(需要使用py源文件编译算子,当前不支持)

} aclopCompileType;

opPath

输入

算子实现文件(*.py)路径的指针,不包含文件名。

如果将compileFlag设置为ACL_COMPILE_UNREGISTERED 时,需要设置opPath。

stream

输入

该算子需要加载的stream。

返回值说明

返回0表示成功,返回其它值表示失败。