【MindStudio训练营第一期】详解昇腾AI应用开发流程
Ascend CL介绍
AscendCL(Ascend Computing Language)是一套用于在昇腾平台上开发深度神经网络推理应用的C语言API库,提供Device管理、Context管理、Stream管理、内存管理、模型加载与执行、算子加载与执行、媒体数据处理等API,能够实现在昇腾CANN平台上进行深度学习推理计算、图形图像预处理、单算子加速计算等能力。用户可以通过第三方框架调用AscendCL接口,以便使用昇腾AI处理器的计算能力;用户还可以使用AscendCL封装实现第三方lib库,以便提供昇腾AI处理器的运行管理、资源管理能力。
其特点为支持多种语言开发:包括C语言和Python版本
主要的接口调用流程
- AscendCL初始化:调用aclInit接口实现初始化AscendCL。
- 运行管理资源申请:依次申请运行管理资源:Device、Context、Stream。
- 算子调用
- 生成算子om文件
- 加载算子om文件,运行算子时使用。
- 执行算子,输出算子的运行结果。
- 模型推理。
- 生成模型om文件
- 模型加载
- 数据预处理:可实现JPEG图片解码、视频解码、抠图/图片缩放/格式转换、JPEG图片编码等功能。
- 模型执行:使用模型实现图片分类、目标识别等功能,目前AscendCL提供同步推理接口和异步推理接口,支持动态Batch、动态分辨率、动态AIPP动态AIPP等场景。
- 数据后处理:处理模型推理的结果,此处根据用户的实际需求来处理推理结果,例如用户可以将获取到的推理结果写入文件、从推理结果中找到每张图片最大置信度的类别标识等。
- 模型卸载:调用aclmdlUnload接口卸载模型。
- 运行管理资源释放:所有数据处理都结束后,需要依次释放运行管理资源: Stream 、Context、Device。
- AscendCL去初始化:调用aclFinalizeaclFinalizeaclFinalize接口实现AscendCL去初始化。
【MindStudio训练营第一期】详解昇腾AI应用开发流程
Ascend CL介绍
AscendCL(Ascend Computing Language)是一套用于在昇腾平台上开发深度神经网络推理应用的C语言API库,提供Device管理、Context管理、Stream管理、内存管理、模型加载与执行、算子加载与执行、媒体数据处理等API,能够实现在昇腾CANN平台上进行深度学习推理计算、图形图像预处理、单算子加速计算等能力。用户可以通过第三方框架调用AscendCL接口,以便使用昇腾AI处理器的计算能力;用户还可以使用AscendCL封装实现第三方lib库,以便提供昇腾AI处理器的运行管理、资源管理能力。
其特点为支持多种语言开发:包括C语言和Python版本
主要的接口调用流程