【MindStudio训练营第一期】Ascend CL简介
收藏回复举报
【MindStudio训练营第一期】Ascend CL简介
发表于2022-12-30 17:37:40
0 查看

 【MindStudio训练营第一期】详解昇腾AI应用开发流程

Ascend CL介绍

AscendCL(Ascend Computing Language)是一套用于在昇腾平台上开发深度神经网络推理应用的C语言API库,提供Device管理、Context管理、Stream管理、内存管理、模型加载与执行、算子加载与执行、媒体数据处理等API,能够实现在昇腾CANN平台上进行深度学习推理计算、图形图像预处理、单算子加速计算等能力。用户可以通过第三方框架调用AscendCL接口,以便使用昇腾AI处理器的计算能力;用户还可以使用AscendCL封装实现第三方lib库,以便提供昇腾AI处理器的运行管理、资源管理能力。

其特点为支持多种语言开发:包括C语言和Python版本

主要的接口调用流程 

  1. AscendCL初始化:调用aclInit接口实现初始化AscendCL。
  2. 运行管理资源申请:依次申请运行管理资源:DeviceContextStream
  3. 算子调用
    1. 生成算子om文件
    2. 加载算子om文件,运行算子时使用。
    3. 执行算子,输出算子的运行结果。
  4. 模型推理。
    1. 生成模型om文件
    2. 模型加载
    3. 数据预处理:可实现JPEG图片解码、视频解码、抠图/图片缩放/格式转换、JPEG图片编码等功能。
    4. 模型执行:使用模型实现图片分类、目标识别等功能,目前AscendCL提供同步推理接口和异步推理接口,支持动态Batch、动态分辨率、动态AIPP动态AIPP等场景。
    5. 数据后处理:处理模型推理的结果,此处根据用户的实际需求来处理推理结果,例如用户可以将获取到的推理结果写入文件、从推理结果中找到每张图片最大置信度的类别标识等。
    6. 模型卸载:调用aclmdlUnload接口卸载模型。
  5. 运行管理资源释放:所有数据处理都结束后,需要依次释放运行管理资源:  Stream 、ContextDevice
  6. AscendCL去初始化:调用aclFinalizeaclFinalizeaclFinalize接口实现AscendCL去初始化。

 cke_127.gif

我要发帖子