海思SD3403开发板学习系列:五 模型初始化与反初始化
前言
本文使用yolox模型进行目标检测任务。
一、初始化
初始化流程如下:
- ACL初始化:
ACL就是华为的AscendCL(Ascend Computing Language),是一套用于在昇腾平台上开发深度神经网络推理应用的C语言API库,提供Device管理、 Context管理、 Stream管理、内存管理、模型加载与执行、算子加载与执行、媒体数据处理等API,能够实现在昇腾CANN平台上进行深度学习推理计算、图形图像预处理、单算子加速计算等能力。首先对ACL初始化基本可以理解为初始化一个整体的框架。 - 设备号初始化:
每个NNN内核都具有唯一的一个设备号。3403只有一个NNN硬件,设备号设0即可。 - context初始化:
context作为一个容器,管理了所有对象(包括Stream、 Event、设备内存等)的生命周期。不同context的对象是完全隔离的,不能建立联系。 - stream初始化:
stream用于维护一些异步操作的执行顺序,确保按照应用程序中的代码调用顺序在Device上执行。本文使用同步方案,所以stream的使用很少。同步方案会在输入传入NNN并进行推演时进行等待,直到NNN处理完数据并返回结果时才停止等待,执行后续流程。
二、反初始化
反初始化流程: