本文主要讲述MLU220在ARM平台EMA IVP220_A3边缘端的使用,包括环境搭建,交叉编译和运行程序实例等。
简要介绍
IVP220 是英码科技推出的一套以寒武纪 MLU220 处理器为核心设计的智能 NVR 方案主板,内 置 NPU 算力高达 16Tops,由 4 个 A55 构建的 4 核 CPU,支持 caffe、TensorFlow、mxnet、 pytorch 等深度学习框架。IVP220 模组的视频处理性能优越,支持 H264、H265、VP8、VP9 编解 码,解码最大可支持 16 路 1080@30p,编码最大可支持 8 路 1080@30p 等。
主板提供丰富的接口资源,如wifi/usb3.0/HDMI等,参考如下图示。
产品外观图
资源图解:
正面
背面
应用领域
可基于 IVP220 主板设计智能 NVR 设备,应用于智能安防、智慧交通、无人超市、智慧社区、智慧楼宇、电力安全等领域中。

环境搭建
将IVP220用12v电源适配器接入到开关电源,并用type-c线连接到主机端,以便于后面调试,硬件连接如下图所示:

使用EMA官方提供的串口驱动程序CH340SER.EXE 安装在windows主机中,这里使用putty工具打开IVP220串口。windows主机中查看设备管理器中显示的串口号,波特率设置为115200,参考下图信息设置,然后打开进入串口。
出现这个界面说明串口设置OK。此时可使用cnmon命令检查下系统安装的mlu220驱动。默认已经安装好驱动和cntoolkit。
交叉编译
准备一台已经安装好ubuntu18.04系统的主机,这里使用远程登录工具putty进入到系统。可以从FTP服务器上下载交叉编译工具链,sample例程,以及上面所提到的串口驱动程序,联系barret.bi@wpi-group.com获取。

确认ubuntu主机中安装有cmake,若无,可以使用sudo apt intall cmake进行安装。解压IVP02D-cross_compile.zip和prj_220_arm.tar.gz。进入到prj_220_arm目录下,在CMakeLists.txt中指定交叉编译器所在路径,这里的路径参考如下:
使用vi打开app目录下的main.cpp,修改测试程序如下
因为IVP220 系统中没有提供GTK图形界面,所以这里选择test_ssd_threads_batch()模型程序进行测试。
修改完成后再交叉编译:
执行命令cd build && cmake .. && make
编译成功结果如下:
最后,将编译好的prj_220_arm打包prj_220_arm-test.tar.gz,拷贝到IVP220上运行:
tar -zcvf prj_220_arm-test.tar.gz prj_220_arm
运行模型
切换到上面准备好的串口窗口,挂载u盘到系统中,操作如下:
mkdir /cambricon/prj-arm
mkdir /cambricon/mnt
mount /dev/sda1 /cambricon/mnt
解压prj_220_arm-test.tar.gz到/cambricon/prj-arm目录下
tar -zxvf /cambricon/mnt/prj_220_arm-test.tar.gz -C /cambricon/prj-arm
设置第三方库到环境变量:
export LD_LIBRARY_PATH=/cambricon/prj-arm/prj_220_arm/3rd/opencv/lib34:/cambricon/prj-arm/prj_220_arm/3rd/opencv/lib:/cambricon/prj-arm/prj_220_arm/3rd/cncv/lib:/cambricon/prj-arm/prj_220_arm/3rd/cambricon/lib:$LD_LIBRARY_PATH
运行模型:
cd /cambricon/prj-arm/prj_220_arm/build
./run
结果如下
参考资料
IVP220规格说明书.pdf
评论