东方耀AI技术分享

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 3723|回复: 0
打印 上一主题 下一主题

[课堂笔记] 海思芯片上AI算法推理程序的详解

[复制链接]

1365

主题

1856

帖子

1万

积分

管理员

Rank: 10Rank: 10Rank: 10

积分
14429
QQ
跳转到指定楼层
楼主
发表于 2020-7-24 10:31:42 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

海思芯片上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解码的例子





程序目录结构.png (61.41 KB, 下载次数: 103)

程序目录结构.png
让天下人人学会人工智能!人工智能的前景一片大好!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|人工智能工程师的摇篮 ( 湘ICP备2020019608号-1 )

GMT+8, 2024-4-19 17:23 , Processed in 0.189153 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表