获取指定算子的描述信息,包括算子名、输入tensor描述、输出tensor描述,如果查询不到指定算子,则返回报错。同步接口。
使用场景举例:执行整网模型推理时,如果产生AI Core报错,可以调用本接口获取报错算子的描述信息,再做进一步错误排查。
实现回调函数的关键步骤如下:
例如,调用aclGetTensorDescAddress接口获取tensor数据的内存地址(用户可从该内存地址中获取tensor数据)、调用aclGetTensorDescType接口获取tensor描述中的数据类型、调用aclGetTensorDescFormat接口获取tensor描述中的Format、调用aclGetTensorDescNumDims接口获取tensor描述中的Shape维度个数、调用aclGetTensorDescDimV2接口获取Shape中指定维度的大小。
aclError aclmdlCreateAndGetOpDesc(uint32_t deviceId, uint32_t streamId, uint32_t taskId, char *opName, size_t opNameLen, aclTensorDesc **inputDesc, size_t *numInputs, aclTensorDesc **outputDesc, size_t *numOutputs)
参数名 |
输入/输出 |
说明 |
---|---|---|
deviceId |
输入 |
Device ID。 调用aclrtGetDeviceIdFromExceptionInfo接口获取异常信息中的Device ID,作为本接口的输入。 |
streamId |
输入 |
Stream ID。 调用aclrtGetStreamIdFromExceptionInfo接口获取异常信息中的Stream ID,作为本接口的输入。 |
taskId |
输入 |
Task ID。 调用aclrtGetTaskIdFromExceptionInfo接口获取异常信息中的Task ID,作为本接口的输入。 |
opName |
输出 |
算子名称字符串的指针。 |
opNameLen |
输入 |
算子名称字符串长度。 若用户指定的长度比实际算子名称的长度短,则返回报错。 |
inputDesc |
输出 |
算子所有输入的tensor描述的指针,指向一块连续内存的首地址。 |
numInputs |
输出 |
输入个数的指针。 |
outputDesc |
输出 |
算子所有输出的tensor描述的指针,指向一块连续内存的首地址。 |
numOutputs |
输出 |
输出个数的指针。 |
返回0表示成功,返回其它值表示失败。
接口调用示例,参见AI Core异常信息获取。