aclopExecWithHandle
函数功能
以Handle方式调用一个算子,不支持动态Shape算子,动态Shape算子请使用aclopExecuteV2。异步接口。
约束说明
- 该接口是异步接口,调用接口成功仅表示任务下发成功,不表示任务执行成功。调用该接口后,需调用同步等待接口(例如,aclrtSynchronizeStream)确保任务已执行完成,否则可能会导致训练或推理等业务异常、Device断链掉卡等未知情况。
- 多线程场景下,不支持调用本接口时指定同一个Stream或使用默认Stream,否则可能任务执行异常。
- 执行有可选输入的算子时,如果可选输入不使用,则需按此种方式创建aclDataBuffer类型的数据:aclCreateDataBuffer(nullptr, 0),同时aclDataBuffer中的数据不需要释放,因为是空指针。
函数原型
aclError aclopExecWithHandle(aclopHandle *handle,
int numInputs,
const aclDataBuffer *const inputs[],
int numOutputs,
aclDataBuffer *const outputs[],
aclrtStream stream);
参数说明
参数名 |
输入/输出 |
说明 |
---|---|---|
handle |
输入 |
算子执行算子handle的指针。 需提前调用aclopCreateHandle接口创建aclopHandle类型的数据。 |
numInputs |
输入 |
算子输入tensor的数量。 |
inputs |
输入 |
算子输入tensor的指针数组。 需提前调用aclCreateDataBuffer接口创建aclDataBuffer类型的数据。 inputs数组中的元素个数必须与numInputs参数值保持一致。 |
numOutputs |
输入 |
算子输出tensor的数量。 |
outputs |
输出 |
算子输出tensor的指针数组。 需提前调用aclCreateDataBuffer接口创建aclDataBuffer类型的数据。 outputs数组中的元素个数必须与numOutputs参数值保持一致 |
stream |
输入 |
该算子需要加载的stream。 |
返回值说明
返回0表示成功,返回其他值表示失败。
父主题: 单算子模型执行