【2023 · CANN训练营第一季】应用开发深入讲解-笔记总结

186 阅读2分钟

应用开发深入讲解 - 笔记总结

模型转换时用来指定框架和芯片类型的参数分别是framework和soc_version。

 

ATC模型转换过程中实现的功能:图准备 图拆分 图优化

 

AIPP中的色域转换完成的功能:将输入的图片格式,转换为模型需要的图片格式

在调用AscendCL接口进行模型推理时,模型推理有输入、输出数据,输入、输出数据需要按照AscendCL规定的数据类型存放。关于这些数据类型 ****

使用aclmdlDesc类型的数据描述模型基本信息(例如输入/输出的个数、名称、数据类型、Format、维度信息等)。

使用aclDataBuffer类型的数据来描述每个输入/输出的内存地址、内存大小。

使用aclmdlDataset类型的数据描述模型的输入/输出数据。

 

通过export ASCEND_GLOBAL_LOG_LEVEL=1命令修改应用类日志级别。

DEBUG级别日志内容更详细

在AscendCL中,Stream用于维护一些异步操作的执行顺序,确保按照应用程序中的代码调用顺序在Device上执行

关于AscendCL应用开发流程****

使用AscendCL接口开发应用时,必须先调用aclInit接口进行AscendCL初始化,否则可能会导致后续系统内部资源初始化出错,进而导致其它业务异常

模型推理场景下,必须要有适配昇腾AI处理器的om离线模型,可提前使用ATC工具将第三方框架的模型转换为om模型

模型推理场景下,加载模型,执行模型推理,推理结束后,需及时卸载模型

有初始化就有去初始化,在确定完成了AscendCL的所有调用之后,或者进程退出之前,需调用aclFinalize接口实现AscendCL去初始化

 

AscendCL(Ascend Computing Language)是一套用于在昇腾平台上开发深度神经网络推理应用的C语言API库,提供运行资源管理、内存管理、模型加载与执行、算子加载与执行、媒体数据处理等API,能够实现利用昇腾硬件计算资源、在昇腾CANN平台上进行深度学习推理计算、图形图像预处理、单算子加速计算等能力。

 

由于DVPP(Digital Video Pre-Processor)图像处理单元硬件上的限制,调用AscendCL提供的媒体数据处理接口时,输入或输出图片的格式、宽高以及内存地址需满足一定的要求,可查阅对应版本的文档。

 

开发应用时,如果模型对输入图片的宽高要求与用户提供的源图不一致,则需先经过数据预处理,将源图裁剪成符合模型的要求的图片。