AI老铁 · 2020年07月09日

海思AI芯片(Hi3519A/3559A)方案学习(九)wk格式的模型生成以及PC仿真

本系列为华为海思海思AI芯片(Hi3519A/3559A)方案学习系列之九,系列文章请见底部。《HiSVP开发指南》洋洋洒洒有258页之多,刚看很容易让人抓不住重点。本文结合自己的理解来对模型转换和仿真部分进行了一下梳理。
作者:ltshan139

wk模型生成

AI硬件加速器nnie只支持wk模型文件的加载。而SDK提供了 mapper工具来将caffe1.x 算法model转换成wk格式。该工具有linux和windows两个版本,我们这里只讨论windows版本,个人感觉它安装更方便,更容易使用。

一个重要注意点是,我们自己的算法模型很可能是差异很大的,比如darknet yolo3训练出来的模型格式 .weights, tensforflow训练模型格式 .ckpt等。而mapper工具的输入仅仅是caffe1 model, 所以需要我们自己想办法先把自身模型转换成caffe模型,然后才能mapper工具。这个会在后面的文章进行详细介绍

windows nnie mapper工具已经集成在ruyistudio软件里面,关于ruyistudio的介绍和使用请见该系列第二篇文章。

双击打开ruyistudio IDE后,右击你想要转换模型所对应cfg文件,然后选择open with 再选择mapper configuration editor,就可以在一个可视化环境下阅读和编辑cfg文件,如下所示。
1.png

标红框的部分是生成wk文件必须要配置的。此外,如果想提高准确度等属性,需要对下面那一栏mapper setting进行调整。

最后点击make wk按钮如下图红框所示
2.png

仿真

windows仿真有两种方式。

第一种是直接在ruyistudio来进行。需要先安装和配置mingw编译器,详见开发指南。 然后import项目如下图所示。
3.png

然后点击下面按钮来进行debug或release版本的编译。当然,为了节省仿真时间,可以把main.cpp里面其它模型仿真函数注释掉,只保留你感兴趣模型的仿真,也如下图所示。
4.png
5.png

 编译完成后生成binary如下图红框所示。
6.png

最后在工具栏点击按钮,选择Run as -> Local C/C++ Application就可以运行仿真程序。 
7.png

 第二种方式是直接运行vs工程文件,直接用visual studio来编译工程,并调试或运行它。 该项目文件为xx\software\sample_simulator\simulator_sample_vc14.sln。双击它就可以打开该项目来编辑和编译。 

就个人而言,我更习惯第二种,毕竟对vs开发环境比较熟悉,调试跟踪起来很方便。 此外,这两种方式在release模式对yolo3模型进行仿真所花时间差不多,大概都需要15分钟左右。 

指令级仿真和功能级仿真 

仿真有两种运行模式:指令级和功能级。前者仿真时间显然比后者慢很多。 两种切换示意如下:
8.png

切换完毕需要把源代码重新编译一遍。注意:在功能 仿真切换到指令仿真后,点击仿真按钮,ruyisudio并不会自动开始重新编译,然后再仿真。所以这时需要先手动来clean and build。

点击仿真按钮后,仿真程序会根据不同模式去load相应的inst或func wk。 这个可以从仿真log看到。

版权声明:本文为CSDN博主「ltshan139」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/avideointerfaces/article/details/89037223



海思AI芯片系列文章



更多海思AI芯片方案学习笔记欢迎关注海思AI芯片方案学习

推荐阅读
关注数
867
内容数
40
海思AI芯片(Hi3519A/3559A)方案学习系列笔记,欢迎关注。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息