东方耀AI技术分享
标题:
海思芯片上AI算法推理程序的详解
[打印本页]
作者:
东方耀
时间:
2020-7-24 10:31
标题:
海思芯片上AI算法推理程序的详解
海思芯片上AI算法推理程序的详解
在Hi3516DV300上,测试sample中yolov3算法,单张图片100ms,
批量推理时间与批量大小成正比,如批量为8,需要800ms,
海思芯片的批量推理并没有提升吞吐量
海思针对芯片各个硬件单元,提供统一的软件开发框架
媒体软件处理平台(Media Process Platform,简称MPP),可支持应用软件快速开发
SVP(Smart Vision Platform):CPU DSP NNIE
SVP(Smart Vision Platform)是海思媒体处理芯片智能视觉异构加速平台
该平台包含CPU、DSP、NNIE(Neural Network Inference Engine)等多个硬件处理单元和运行在这些硬件上的SDK开发环境,以及配套的工具链开发环境。
芯片的AI部分属于SVP模块
本文以手写体图片数字识别为例,介绍海思芯片上AI算法推理程序的框架、数据结构、API调用、运行流程等内容。
海思芯片AI算法推理过程:
第一:初始化
1、获取模型数据文件大小
2、在用户态申请MMZ内存作为模型数据缓存,大小为步骤1的模型文件大小
3、将模型数据文件读取(填充)到申请的MMZ内存空间中
4、从步骤3加载网络模型数据,并解析出网络模型
5、获取网络任务各段辅助内存大小,申请相应缓存空间(申请一块总的内存空间,再切分给任务缓存、输入数据缓存、输出数据缓存使用),设置各个缓存空间内存地址信息
6、申请网络推理结果后处理缓存空间,并设置参数
7、设置网络预测控制信息,参数数据来源于步骤4解析的网络模型参数数据
8、记录(设置)网络推理的辅助内存,即调用HI_MPI_SVP_NNIE_AddTskBuf接口
第二:运行
预处理
填充输入数 、刷新缓存
推理
执行网络推理
后处理
刷新缓存、读取推理结果,并转换成用户需要的输出信息
第三:销毁
删除记录(设置)网络推理的辅助内存,即调用HI_MPI_SVP_NNIE_RemoveTskBuf接口
释放网络任务各段辅助内存
释放网络推理结果后处理缓存空间
卸载网络模型,并释放模型数据缓存
硬件为了快速访问内存首地址或者跨行访问数据,在使用 DDR4 时,为提高访存效率,建议首地址使用 256 字节对齐,stride 使用 256 字节的奇数倍对齐
典型的 RGB\HSV\LAB 图像 Planar 格式存储,NNIE 默认以 B\G\R、H\S\V、L\A\B 顺序按通道平面进行存储
海思SDK给的样例里面读取的图片要么是 .y 格式的,要么是.bgr格式的,怎样才能直接读取jpg格式的图片呢?
可以参考海思jpg解码的例子
欢迎光临 东方耀AI技术分享 (http://www.ai111.vip/)
Powered by Discuz! X3.4