调用AscendCL接口,可开发包含模型推理、媒体数据处理、单算子调用等功能的应用,这些功能可以独立存在,也可以组合存在。下图给出了使用AscendCL接口开发AI应用的整体接口调用流程。
上图根据应用开发中的典型功能抽象出主要的接口调用流程,例如,如果模型对输入图片的宽高要求与用户提供的源图不一致,则需要媒体数据处理,将源图裁剪成符合模型的要求;如果需要实现模型推理的功能,则需要先加载模型,模型推理结束后,则需要卸载模型;如果模型推理后,需要从推理结果中查找最大置信度的类别标识对图片分类,则需要数据后处理。
调用aclInit接口实现初始化AscendCL。
依次申请运行管理资源:Device、Context、Stream。
具体流程,请参见接口调用流程。
接口调用流程,请参见接口调用流程。
接口调用流程,请参见图像/视频/音频数据处理
接口调用流程,请参见模型执行。
可实现JPEG图片解码、视频解码、抠图/图片缩放/格式转换、JPEG图片编码等功能。接口调用流程,请参见图像/视频/音频数据处理。
所有数据处理都结束后,需要依次释放运行管理资源:Stream、Context、Device。
接口调用流程,请参见接口调用流程。
调用aclFinalize接口实现AscendCL去初始化。
在应用开发过程中,各环节都涉及内存的申请与释放、数据传输(通过内存复制实现)、数据类型的创建与销毁,因此未在图中一一标识,关于内存申请与释放、内存复制的接口请参见内存管理,数据类型的创建与销毁的接口请参见数据类型及其操作接口。