aclmdlCreateAndGetOpDesc
【免费下载链接】geGE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力,并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge
产品支持情况
- Ascend 950PR/Ascend 950DT:支持
- Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
- Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持
- Atlas 200I/500 A2 推理产品:支持
- Atlas 推理系列产品:支持
- Atlas 训练系列产品:支持
- IPV350:不支持
功能说明
获取指定算子的描述信息,包括算子名、输入tensor描述、输出tensor描述,如果查询不到指定算子,则返回报错。该接口不支持动态Shape场景。
使用场景举例:执行整网模型推理时,如果产生AI Core报错,可以调用本接口获取报错算子的描述信息,再做进一步错误排查。
推荐的接口调用顺序如下:
定义并实现异常回调函数fn,回调函数原型请参见aclrtSetExceptionInfoCallback。
实现回调函数的关键步骤如下:
在异常回调函数fn内调用aclrtGetDeviceIdFromExceptionInfo、aclrtGetStreamIdFromExceptionInfo、aclrtGetTaskIdFromExceptionInfo接口分别获取Device ID、Stream ID、Task ID。
在异常回调函数fn内调用aclmdlCreateAndGetOpDesc接口获取算子的描述信息。
在异常回调函数fn内调用aclGetTensorDescByIndex接口获取指定算子输入/输出的tensor描述。
在异常回调函数fn内调用如下接口获取tensor描述中的数据,进行进一步分析。
例如,调用aclGetTensorDescAddress接口获取tensor数据的内存地址(用户可从该内存地址中获取tensor数据)、调用aclGetTensorDescType接口获取tensor描述中的数据类型、调用aclGetTensorDescFormat接口获取tensor描述中的Format、调用aclGetTensorDescNumDims接口获取tensor描述中的Shape维度个数、调用aclGetTensorDescDimV2接口获取Shape中指定维度的大小。
调用aclrtSetExceptionInfoCallback接口设置异常回调函数。
执行模型推理。
如果存在AI Core报错,则触发回调函数fn,获取算子的信息,进行进一步分析。
函数原型
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描述的指针,指向一块连续内存的首地址。类型定义请参见aclTensorDesc。 |
| numInputs | 输出 | 输入个数的指针。 |
| outputDesc | 输出 | 算子所有输出的tensor描述的指针,指向一块连续内存的首地址。类型定义请参见aclTensorDesc。 |
| numOutputs | 输出 | 输出个数的指针。 |
返回值说明
返回0表示成功,返回其他值表示失败,请参见aclError。
【免费下载链接】geGE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力,并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考