Tengine在Ubuntu16.04上的部署及MobileNet_SSD的实时测试
0.Tengine介绍
Tengine 是OPEN AI LAB 为嵌入式设备开发的一个轻量级、高性能并且模块化的引擎。
Tengine在嵌入式设备上支持CPU,GPU,DLA/NPU,DSP异构计算的计算框架,实现异构计算的调度器,基于ARM平台的高效的计算库实现,针对特定硬件平台的性能优化,动态规划计算图的内存使用,提供对于网络远端AI计算能力的访问支持,支持多级别并行,整个系统模块可拆卸,基于事件驱动的计算模型,吸取已有AI计算框架的优点,设计全新的计算图表示。
1.Ubuntu系统烧录
- 本文采用的是win7下安装Ubuntu16.04,形成单硬盘双系统。电脑原系统是win7,采用的是BIOS启动,这里要注意的是有一些电脑是UEFI启动的,启动方式决定了之后Ubuntu的安装的一些设置,这里提供了一种查询自己电脑启动方式的方法。
Win10如何查看是否uefi启动 怎么知道BIOS或UEFI - 怎么烧录进系统,网上提供了很多教程。在知道自己是传统的BIOS启动还是UEFI启动后,找对应的教程即可。
- Ubuntu分区,这里使用了两分法,第一个区 是 主分区,位置 是 空间起始位置,用于 Ext4日志文件系统,挂载点/,分配空间是82120MB(80GB);第二个区 是 逻辑分区,位置 是 空间起始位置,用于 交换空间,分配空间是剩下的20多个G。所以之前在windows系统下的磁盘管理要划出100G的未分配空间。
- 选择英文安装,之后再安装中文输入法。
2. 安装Tengine
参考博文链接: http://hey-yahei.cn/2018/08/04/RK3399-Tengine/
参考官方安装指南: https://github.com/OAID/Tengine/blob/master/doc/install.md
Ubuntu基本环境安顿好之后,接下来可以开始搭建Tengine的环境。
- 安装git
sudo apt-get install git
- 用git下载源码
git clone https://github.com/OAID/tengine
- 安装编译源码时需要依赖的包
sudo apt install libprotobuf-dev protobuf-compiler libboost-all-dev libgoogle-glog-dev
sudo apt install libopencv-dev
- 进入Tengine目录,复制编译的配置文件
cd ~/tengine
cp makefile.config.example makefile.config
- 编辑makefile.config文件
gedit makefile.config
注释了 makefile.config里面中有关arm的CONFIG_ARCH_ARM64=y(猜测是因为intel上运行的),然后将 CONFIG_ARCH_BLAS=y取消注释,保存退出。具体可以参考下图。
6. 在tengine目录下编译
make
make install
- 测试
这里的 -1的1指的是重复次数
./build/tests/bin/bench_sqz -1
0.2763 - “n02123045 tabby, tabby cat”
0.2673 - “n02123159 tiger cat”
0.1766 - “n02119789 kit fox, Vulpes macrotis”
0.0827 - “n02124075 Egyptian cat”
0.0777 - “n02085620 Chihuahua”
./build/tests/bin/bench_mobilenet -1
8.5976 - “n02123159 tiger cat”
7.9550 - “n02119022 red fox, Vulpes vulpes”
7.8679 - “n02119789 kit fox, Vulpes macrotis”
7.4274 - “n02113023 Pembroke, Pembroke Welsh corgi”
6.3647 - “n02123045 tabby, tabby cat”