aclopExecWithHandle
产品支持情况
产品  | 
是否支持  | 
|---|---|
√  | 
|
√  | 
|
√  | 
|
√  | 
|
√  | 
功能说明
以Handle方式调用一个算子,不支持动态Shape算子,动态Shape算子请使用aclopExecuteV2。
本接口是异步接口,调用接口成功仅表示任务下发成功,不表示任务执行成功。调用该接口后,需调用同步等待接口(例如,aclrtSynchronizeStream)确保任务已执行完成,否则可能会导致训练或推理等业务异常、Device断链掉卡等未知情况。
函数原型
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表示成功,返回其他值表示失败,请参见aclError。
约束说明
- 多线程场景下,不支持调用本接口时指定同一个Stream或使用默认Stream,否则可能任务执行异常。
 - 执行有可选输入的算子时,如果可选输入不使用,则需按此种方式创建aclDataBuffer类型的数据:aclCreateDataBuffer(nullptr, 0),同时aclDataBuffer中的数据不需要释放,因为是空指针。
 
父主题: 单算子模型执行