11bd4fe43Sopenharmony_ci### 4.2.2.NNIE介绍
21bd4fe43Sopenharmony_ci
31bd4fe43Sopenharmony_ci#### 4.2.2.1 NNIE概念
41bd4fe43Sopenharmony_ci
51bd4fe43Sopenharmony_ciNNIE是Neural Network Inference Engine的简称,是上海海思媒体SoC中专门针对神经网络特别是深度学习卷积神经网络进行加速处理的硬件单元,支持现有大部分的公开网络,如Alexnet、VGG16、Googlenet、Resnet18、Resnet50等分类网络,FasterR-CNN、YOLO、SSD、RFCN等检测网络,以及SegNet、FCN等场景分割网络。用户基于NNIE开发智能分析方案,降低CPU占用。
61bd4fe43Sopenharmony_ci
71bd4fe43Sopenharmony_ci目前NNIE配套软件及工具链仅支持Caffe框架,使用其他框架的网络模型需要转化为Caffe框架下的模型。
81bd4fe43Sopenharmony_ci
91bd4fe43Sopenharmony_ci#### 4.2.2.2 NNIE API接口
101bd4fe43Sopenharmony_ci
111bd4fe43Sopenharmony_ciNNIE模块提供了创建任务和查询任务的基本接口。
121bd4fe43Sopenharmony_ci
131bd4fe43Sopenharmony_cil HI_MPI_SVP_NNIE_LoadModel:从用户事先加载到buf中的模型中解析出网络模型。
141bd4fe43Sopenharmony_ci
151bd4fe43Sopenharmony_cil HI_MPI_SVP_NNIE_GetTskBufSize:获取给定网络任务各段辅助内存大小。
161bd4fe43Sopenharmony_ci
171bd4fe43Sopenharmony_cil HI_MPI_SVP_NNIE_Forward:多节点输入输出的CNN类型网络预测。
181bd4fe43Sopenharmony_ci
191bd4fe43Sopenharmony_cil HI_MPI_SVP_NNIE_ForwardWithBbox:多个节点feature map输入。
201bd4fe43Sopenharmony_ci
211bd4fe43Sopenharmony_cil HI_MPI_SVP_NNIE_UnloadModel:卸载模型。
221bd4fe43Sopenharmony_ci
231bd4fe43Sopenharmony_cil HI_MPI_SVP_NNIE_Query:查询任务是否完成。
241bd4fe43Sopenharmony_ci
251bd4fe43Sopenharmony_cil HI_MPI_SVP_NNIE_AddTskBuf:记录TskBuf地址信息。
261bd4fe43Sopenharmony_ci
271bd4fe43Sopenharmony_cil HI_MPI_SVP_NNIE_RemoveTskBuf:移除TskBuf地址信息。
281bd4fe43Sopenharmony_ci
291bd4fe43Sopenharmony_ciNNIE API接口中参数的数据类型类型,请查阅**源码的device/soc/hisilicon/hi3516dv300/sdk_linux/sample/doc中**的《HiSVP API 参考.pdf》中的2.4 数据类型和数据结构内容,如下图所示:
301bd4fe43Sopenharmony_ci
311bd4fe43Sopenharmony_ci![](./figures/hispark_taurus_nnie_sample/001SVP%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B%E5%92%8C%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84.png)
321bd4fe43Sopenharmony_ci
331bd4fe43Sopenharmony_ci**注:本章节提到的错误码,请查阅源码的device/soc/hisilicon/hi3516dv300/sdk_linux/sample/doc中的《HiSVP API 参考.pdf》操作手册中对应的错误码内容。**
341bd4fe43Sopenharmony_ci
351bd4fe43Sopenharmony_ci接下来对NNIE API接口进行详细描述。
361bd4fe43Sopenharmony_ci
371bd4fe43Sopenharmony_ci###### HI_MPI_SVP_NNIE_LoadModel
381bd4fe43Sopenharmony_ci
391bd4fe43Sopenharmony_ci【描述】
401bd4fe43Sopenharmony_ci
411bd4fe43Sopenharmony_ci* 从用户事先加载到buf中的模型中解析出网络模型。
421bd4fe43Sopenharmony_ci
431bd4fe43Sopenharmony_ci【语法】
441bd4fe43Sopenharmony_ci
451bd4fe43Sopenharmony_ci* HI_S32 HI_MPI_SVP_NNIE_LoadModel (const SVP_SRC_MEM_INFO_S *pstModelBuf, SVP_NNIE_MODEL_S *pstModel);
461bd4fe43Sopenharmony_ci
471bd4fe43Sopenharmony_ci【参数】
481bd4fe43Sopenharmony_ci
491bd4fe43Sopenharmony_ci![](./figures/hispark_taurus_nnie_sample/002HI_MPI_SVP_NNIE_LoadModel%E5%8F%82%E6%95%B0.png)
501bd4fe43Sopenharmony_ci
511bd4fe43Sopenharmony_ci【返回值】
521bd4fe43Sopenharmony_ci
531bd4fe43Sopenharmony_ci![](./figures/hispark_taurus_nnie_sample/003HI_MPI_SVP_NNIE_LoadModel%E8%BF%94%E5%9B%9E%E5%80%BC.png)
541bd4fe43Sopenharmony_ci
551bd4fe43Sopenharmony_ci【需求】
561bd4fe43Sopenharmony_ci
571bd4fe43Sopenharmony_ci* 头文件:hi_comm_svp.hhi_nnie.hmpi_nnie.h
581bd4fe43Sopenharmony_ci
591bd4fe43Sopenharmony_ci* 库文件:libnnie.a(PC上模拟用nniefc1.1.lib\nnieit1.1.lib601bd4fe43Sopenharmony_ci
611bd4fe43Sopenharmony_ci【注意】
621bd4fe43Sopenharmony_ci
631bd4fe43Sopenharmony_ci* 用户需要保证pstModelBuf中的地址所指向的内存中存储的模型数据的完整性和正确性。
641bd4fe43Sopenharmony_ci
651bd4fe43Sopenharmony_ci* 用户需要保证pstModelBuf中的地址所指向的内存只有当所存储的模型不再使用后才能被释放,并且在释放之前内存中的数据不能被修改。
661bd4fe43Sopenharmony_ci
671bd4fe43Sopenharmony_ci* 用户需要保证解析获得的pstModel里的内容不能被修改。
681bd4fe43Sopenharmony_ci
691bd4fe43Sopenharmony_ci###### HI_MPI_SVP_NNIE_GetTskBufSize
701bd4fe43Sopenharmony_ci
711bd4fe43Sopenharmony_ci【描述】
721bd4fe43Sopenharmony_ci
731bd4fe43Sopenharmony_ci* 获取给定网络任务各段辅助内存大小。
741bd4fe43Sopenharmony_ci
751bd4fe43Sopenharmony_ci【语法】
761bd4fe43Sopenharmony_ci
771bd4fe43Sopenharmony_ci* HI_S32 HI_MPI_SVP_NNIE_GetTskBufSize(HI_U32 u32MaxBatchNum, HI_U32 u32MaxBboxNum, const SVP_NNIE_MODEL_S *pstModel, HI_U32 au32TskBufSize[], HI_U32 u32NetSegNum);
781bd4fe43Sopenharmony_ci
791bd4fe43Sopenharmony_ci【参数】
801bd4fe43Sopenharmony_ci
811bd4fe43Sopenharmony_ci![](./figures/hispark_taurus_nnie_sample/004HI_MPI_SVP_NNIE_GetTskBufSize%E5%8F%82%E6%95%B0.png)
821bd4fe43Sopenharmony_ci
831bd4fe43Sopenharmony_ci【返回值】
841bd4fe43Sopenharmony_ci
851bd4fe43Sopenharmony_ci![](./figures/hispark_taurus_nnie_sample/005HI_MPI_SVP_NNIE_GetTskBufSize%E8%BF%94%E5%9B%9E%E5%80%BC.png)
861bd4fe43Sopenharmony_ci
871bd4fe43Sopenharmony_ci【需求】
881bd4fe43Sopenharmony_ci
891bd4fe43Sopenharmony_ci* 头文件:hi_comm_svp.hhi_nnie.hmpi_nnie.h
901bd4fe43Sopenharmony_ci
911bd4fe43Sopenharmony_ci* 库文件:libnnie.a(PC上模拟用nniefc1.1.lib\nnieit1.1.lib921bd4fe43Sopenharmony_ci
931bd4fe43Sopenharmony_ci【注意】
941bd4fe43Sopenharmony_ci
951bd4fe43Sopenharmony_ci* 针对单线程运行一个网络模型,用户开辟tskBuf可以根据网络段的运行关系来选择以下两种方案:
961bd4fe43Sopenharmony_ci
971bd4fe43Sopenharmony_ci  * 1)NNIE→非NNIE→NNIE→非NNIE,类似这种NNIE、非NNIE(CPU或者DSP等)间隔的网络,用户可以选择开辟一个分段au32TskBufSize[]中的最大值,每个段可以复用这段内存;
981bd4fe43Sopenharmony_ci
991bd4fe43Sopenharmony_ci  * 2)NNIE→NNIE→非NNIE→NNIE→非NNIE,类似这种存在N个NNIE连续顺序执行段的网络,连续的NNIE段不能复用tskBuf,按照最省内存原则可以选择开辟满足这N个连续NNIE段的其中N-1个size和最小的tskBuf以及剩余所有段中最大的一片tskBuf,具体按文中示例,可以选择开辟“NNIE→NNIE”中较小size的tskBuf,后面“非NNIE→NNIE→非NNIE”中可以复用最大size这片taskBuf;
1001bd4fe43Sopenharmony_ci
1011bd4fe43Sopenharmony_ci* 多线程运行同一个网络模型,每个线程需要各自独立的tskBuf,开辟的方式可以参考“针对单线程运行一个网络模型”的情况。
1021bd4fe43Sopenharmony_ci
1031bd4fe43Sopenharmony_ci###### HI_MPI_SVP_NNIE_Forward
1041bd4fe43Sopenharmony_ci
1051bd4fe43Sopenharmony_ci【描述】
1061bd4fe43Sopenharmony_ci
1071bd4fe43Sopenharmony_ci* 多节点输入输出的CNN类型网络预测。
1081bd4fe43Sopenharmony_ci
1091bd4fe43Sopenharmony_ci【语法】
1101bd4fe43Sopenharmony_ci
1111bd4fe43Sopenharmony_ci* HI_S32 HI_MPI_SVP_NNIE_Forward(SVP_NNIE_HANDLE *phSvpNnieHandle, const SVP_SRC_BLOB_S astSrc[], const SVP_NNIE_MODEL_S *pstModel, const SVP_DST_BLOB_S astDst[], const SVP_NNIE_FORWARD_CTRL_S *pstForwardCtrl, HI_BOOL bInstant);
1121bd4fe43Sopenharmony_ci
1131bd4fe43Sopenharmony_ci【参数】
1141bd4fe43Sopenharmony_ci
1151bd4fe43Sopenharmony_ci![](./figures/hispark_taurus_nnie_sample/006HI_MPI_SVP_NNIE_Forward%E5%8F%82%E6%95%B0.png)
1161bd4fe43Sopenharmony_ci
1171bd4fe43Sopenharmony_ci![](./figures/hispark_taurus_nnie_sample/007HI_MPI_SVP_NNIE_Forward%E5%8F%82%E6%95%B02.png)
1181bd4fe43Sopenharmony_ci
1191bd4fe43Sopenharmony_ci![](./figures/hispark_taurus_nnie_sample/008HI_MPI_SVP_NNIE_Forward%E5%8F%82%E6%95%B03.png)
1201bd4fe43Sopenharmony_ci
1211bd4fe43Sopenharmony_ci【返回值】
1221bd4fe43Sopenharmony_ci
1231bd4fe43Sopenharmony_ci![](./figures/hispark_taurus_nnie_sample/009HI_MPI_SVP_NNIE_Forward%E8%BF%94%E5%9B%9E%E5%80%BC.png)
1241bd4fe43Sopenharmony_ci
1251bd4fe43Sopenharmony_ci【需求】
1261bd4fe43Sopenharmony_ci
1271bd4fe43Sopenharmony_ci* 头文件:hi_comm_svp.hhi_nnie.hmpi_nnie.h
1281bd4fe43Sopenharmony_ci
1291bd4fe43Sopenharmony_ci* 库文件:libnnie.a(PC上模拟用nniefc1.1.lib\nnieit1.1.lib1301bd4fe43Sopenharmony_ci
1311bd4fe43Sopenharmony_ci【注意】
1321bd4fe43Sopenharmony_ci
1331bd4fe43Sopenharmony_ci* 用户需要保证pstModel->stBase中的地址所指向的内存中数据的完整性和正确性。
1341bd4fe43Sopenharmony_ci
1351bd4fe43Sopenharmony_ci* 用户需要保证pstModel结构体中的内容与pstModel->stBase中的地址所指向的内存中的数据是同一个模型文件解析获得的。
1361bd4fe43Sopenharmony_ci
1371bd4fe43Sopenharmony_ci* 网络段类型为SVP_NNIE_NET_TYPE_RECURRENT类型时,用户需要保证类型为SVP_BLOB_TYPE_SEQ_S32的输入输出blob中虚拟地址virt_addr_step及其指向内存大小的正确性。
1381bd4fe43Sopenharmony_ci
1391bd4fe43Sopenharmony_ci* U8图像输入只支持1通道(灰度图)和3通道(RGB图);
1401bd4fe43Sopenharmony_ci
1411bd4fe43Sopenharmony_ci* 多个Blob输入输出时,配合编译器输出的dot描述文件生成的dot图示,可以看到Blob跟层的对应关系。
1421bd4fe43Sopenharmony_ci
1431bd4fe43Sopenharmony_ciNNIE_Forward支持的多节点输入输出网络示意图如下图所示:
1441bd4fe43Sopenharmony_ci
1451bd4fe43Sopenharmony_ci![](./figures/hispark_taurus_nnie_sample/010%E8%BE%93%E5%85%A5%E8%BE%93%E5%87%BA%E7%BD%91%E7%BB%9C%E7%A4%BA%E6%84%8F%E5%9B%BE.png)
1461bd4fe43Sopenharmony_ci
1471bd4fe43Sopenharmony_ci###### HI_MPI_SVP_NNIE_UnloadModel
1481bd4fe43Sopenharmony_ci
1491bd4fe43Sopenharmony_ci【描述】
1501bd4fe43Sopenharmony_ci
1511bd4fe43Sopenharmony_ci* 卸载模型。
1521bd4fe43Sopenharmony_ci
1531bd4fe43Sopenharmony_ci【语法】
1541bd4fe43Sopenharmony_ci
1551bd4fe43Sopenharmony_ci* HI_S32 HI_MPI_SVP_NNIE_UnloadModel(SVP_NNIE_MODEL_S *pstModel);
1561bd4fe43Sopenharmony_ci
1571bd4fe43Sopenharmony_ci【参数】
1581bd4fe43Sopenharmony_ci
1591bd4fe43Sopenharmony_ci![](./figures/hispark_taurus_nnie_sample/011HI_MPI_SVP_NNIE_UnloadModel%E5%8F%82%E6%95%B0.png)
1601bd4fe43Sopenharmony_ci
1611bd4fe43Sopenharmony_ci【返回值】
1621bd4fe43Sopenharmony_ci
1631bd4fe43Sopenharmony_ci![](./figures/hispark_taurus_nnie_sample/012HI_MPI_SVP_NNIE_UnloadModel%E8%BF%94%E5%9B%9E%E5%80%BC.png)
1641bd4fe43Sopenharmony_ci
1651bd4fe43Sopenharmony_ci【需求】
1661bd4fe43Sopenharmony_ci
1671bd4fe43Sopenharmony_ci* 头文件:hi_comm_svp.hhi_nnie.hmpi_nnie.h
1681bd4fe43Sopenharmony_ci
1691bd4fe43Sopenharmony_ci* 库文件:libnnie.a(PC上模拟用nniefc1.1.lib\nnieit1.1.lib1701bd4fe43Sopenharmony_ci
1711bd4fe43Sopenharmony_ci【注意】
1721bd4fe43Sopenharmony_ci
1731bd4fe43Sopenharmony_ci* 无。
1741bd4fe43Sopenharmony_ci
1751bd4fe43Sopenharmony_ci###### HI_MPI_SVP_NNIE_Query
1761bd4fe43Sopenharmony_ci
1771bd4fe43Sopenharmony_ci【描述】
1781bd4fe43Sopenharmony_ci
1791bd4fe43Sopenharmony_ci* 查询任务是否完成。
1801bd4fe43Sopenharmony_ci
1811bd4fe43Sopenharmony_ci【语法】
1821bd4fe43Sopenharmony_ci
1831bd4fe43Sopenharmony_ci* HI_S32 HI_MPI_SVP_NNIE_Query(SVP_NNIE_ID_E enNnieId, SVP_NNIE_HANDLE svpNnieHandle, HI_BOOL *pbFinish, HI_BOOL bBlock);
1841bd4fe43Sopenharmony_ci
1851bd4fe43Sopenharmony_ci【参数】
1861bd4fe43Sopenharmony_ci
1871bd4fe43Sopenharmony_ci![](./figures/hispark_taurus_nnie_sample/013HI_MPI_SVP_NNIE_Query%E5%8F%82%E6%95%B0.png)
1881bd4fe43Sopenharmony_ci
1891bd4fe43Sopenharmony_ci【返回值】
1901bd4fe43Sopenharmony_ci
1911bd4fe43Sopenharmony_ci![](./figures/hispark_taurus_nnie_sample/014HI_MPI_SVP_NNIE_Query%E8%BF%94%E5%9B%9E%E5%80%BC.png)
1921bd4fe43Sopenharmony_ci
1931bd4fe43Sopenharmony_ci【需求】
1941bd4fe43Sopenharmony_ci
1951bd4fe43Sopenharmony_ci* 头文件:hi_comm_svp.hhi_nnie.hmpi_nnie.h
1961bd4fe43Sopenharmony_ci
1971bd4fe43Sopenharmony_ci* 库文件:libnnie.a(PC上模拟用nniefc1.1.lib\nnieit1.1.lib1981bd4fe43Sopenharmony_ci
1991bd4fe43Sopenharmony_ci【注意】
2001bd4fe43Sopenharmony_ci
2011bd4fe43Sopenharmony_ci* 无。
2021bd4fe43Sopenharmony_ci
2031bd4fe43Sopenharmony_ci###### HI_MPI_SVP_NNIE_AddTskBuf
2041bd4fe43Sopenharmony_ci
2051bd4fe43Sopenharmony_ci【描述】
2061bd4fe43Sopenharmony_ci
2071bd4fe43Sopenharmony_ci* 记录TskBuf地址信息。
2081bd4fe43Sopenharmony_ci
2091bd4fe43Sopenharmony_ci【语法】
2101bd4fe43Sopenharmony_ci
2111bd4fe43Sopenharmony_ci* HI_S32 HI_MPI_SVP_NNIE_AddTskBuf(const SVP_MEM_INFO_S *pstTskBuf);
2121bd4fe43Sopenharmony_ci
2131bd4fe43Sopenharmony_ci【参数】
2141bd4fe43Sopenharmony_ci
2151bd4fe43Sopenharmony_ci![](./figures/hispark_taurus_nnie_sample/015HI_MPI_SVP_NNIE_AddTskBuf%E5%8F%82%E6%95%B0.png)
2161bd4fe43Sopenharmony_ci
2171bd4fe43Sopenharmony_ci【返回值】
2181bd4fe43Sopenharmony_ci
2191bd4fe43Sopenharmony_ci![](./figures/hispark_taurus_nnie_sample/016HI_MPI_SVP_NNIE_AddTskBuf%E8%BF%94%E5%9B%9E%E5%80%BC.png)
2201bd4fe43Sopenharmony_ci
2211bd4fe43Sopenharmony_ci【需求】
2221bd4fe43Sopenharmony_ci
2231bd4fe43Sopenharmony_ci* 头文件:hi_comm_svp.hhi_nnie.hmpi_nnie.h
2241bd4fe43Sopenharmony_ci
2251bd4fe43Sopenharmony_ci* 库文件:libnnie.a(PC上模拟用nniefc1.1.lib\nnieit1.1.lib2261bd4fe43Sopenharmony_ci
2271bd4fe43Sopenharmony_ci【注意】
2281bd4fe43Sopenharmony_ci
2291bd4fe43Sopenharmony_ci* 记录TskBuf地址信息,用于减少内核态内存映射次数,提升效率。
2301bd4fe43Sopenharmony_ci
2311bd4fe43Sopenharmony_ci* TskBuf地址信息的记录是通过链表进行管理,链表长度默认值为32,链表长度可通过模块参数nnie_max_tskbuf_num进行配置。
2321bd4fe43Sopenharmony_ci
2331bd4fe43Sopenharmony_ci* 若没有调用HI_MPI_SVP_NNIE_AddTskBuf预先把TskBuf地址信息记录到系统,那么之后调用Forward/ForwardWithBbox每次都会Map/Unmap操作TskBuf内核态虚拟地址,效率会比较低。
2341bd4fe43Sopenharmony_ci
2351bd4fe43Sopenharmony_ci* 必须与HI_MPI_SVP_NNIE_RemoveTskBuf成对匹配使用。
2361bd4fe43Sopenharmony_ci
2371bd4fe43Sopenharmony_ci* 建议先把Forward/ForwardWithBbox用到的TskBuf地址信息调用此接口记录到系统。当不再使用时调用HI_MPI_SVP_NNIE_RemoveTskBuf把TskBuf地址信息移除。只需要在初始化时把TskBuf地址信息记录,后续可以直接使用,直到不再使用时才移除。
2381bd4fe43Sopenharmony_ci
2391bd4fe43Sopenharmony_ci* pstTskBuf->u64VirAddr不使用,不做参数异常检查。
2401bd4fe43Sopenharmony_ci
2411bd4fe43Sopenharmony_ci* pstTskBuf->u32Size不能为0。
2421bd4fe43Sopenharmony_ci
2431bd4fe43Sopenharmony_ci* TskBuf内存由用户释放,记录的TskBuf要在移除后才能被释放。
2441bd4fe43Sopenharmony_ci
2451bd4fe43Sopenharmony_ci**HI_MPI_SVP_NNIE_RemoveTskBuf**
2461bd4fe43Sopenharmony_ci
2471bd4fe43Sopenharmony_ci【描述】
2481bd4fe43Sopenharmony_ci
2491bd4fe43Sopenharmony_ci移除TskBuf地址信息。
2501bd4fe43Sopenharmony_ci
2511bd4fe43Sopenharmony_ci【语法】
2521bd4fe43Sopenharmony_ci
2531bd4fe43Sopenharmony_ciHI_S32 HI_MPI_SVP_NNIE_RemoveTskBuf(const SVP_MEM_INFO_S *pstTskBuf);
2541bd4fe43Sopenharmony_ci
2551bd4fe43Sopenharmony_ci【参数】
2561bd4fe43Sopenharmony_ci
2571bd4fe43Sopenharmony_ci![](./figures/hispark_taurus_nnie_sample/017HI_MPI_SVP_NNIE_RemoveTskBuf%E5%8F%82%E6%95%B0.png)
2581bd4fe43Sopenharmony_ci
2591bd4fe43Sopenharmony_ci【返回值】
2601bd4fe43Sopenharmony_ci
2611bd4fe43Sopenharmony_ci![](./figures/hispark_taurus_nnie_sample/018HI_MPI_SVP_NNIE_RemoveTskBuf%E8%BF%94%E5%9B%9E%E5%80%BC.png)
2621bd4fe43Sopenharmony_ci
2631bd4fe43Sopenharmony_ci【需求】
2641bd4fe43Sopenharmony_ci
2651bd4fe43Sopenharmony_ci* 头文件:hi_comm_svp.hhi_nnie.hmpi_nnie.h
2661bd4fe43Sopenharmony_ci
2671bd4fe43Sopenharmony_ci* 库文件:libnnie.a(PC上模拟用nniefc1.1.lib\nnieit1.1.lib2681bd4fe43Sopenharmony_ci
2691bd4fe43Sopenharmony_ci【注意】
2701bd4fe43Sopenharmony_ci
2711bd4fe43Sopenharmony_ci* 如果TskBuf不再使用,需要将记录的TskBuf地址信息从链表中移除。
2721bd4fe43Sopenharmony_ci
2731bd4fe43Sopenharmony_ci* 必须与HI_MPI_SVP_NNIE_AddTskBuf成对匹配使用。
2741bd4fe43Sopenharmony_ci
2751bd4fe43Sopenharmony_ci* pstTskBuf->u64VirAddr不使用,不做参数异常检查。
2761bd4fe43Sopenharmony_ci
2771bd4fe43Sopenharmony_ci* pstTskBuf->u32Size不能为0。
2781bd4fe43Sopenharmony_ci
2791bd4fe43Sopenharmony_ci* TskBuf内存由用户释放,记录的TskBuf要在移除后才能被释放。
2801bd4fe43Sopenharmony_ci
2811bd4fe43Sopenharmony_ci#### 4.2.2.3 NNIE推理逻辑图
2821bd4fe43Sopenharmony_ci
2831bd4fe43Sopenharmony_ci开发者将RuyiStudio工具量化后生成的wk模型文件通过插件进行加载,并部署到芯片端的Flash或DDR里面,通过NNIE加速器进行推理,NNIE板测推理逻辑图如下:
2841bd4fe43Sopenharmony_ci
2851bd4fe43Sopenharmony_ci![](./figures/hispark_taurus_nnie_sample/019NNIE%20%E6%8E%A8%E7%90%86%E9%80%BB%E8%BE%91%E5%9B%BE.png)
286