查看: 1840|回复: 6

[原创] 基于hisi-armv7平台交叉编译超快速opencv-3.1.0

[复制链接]
发表于 2017-12-18 14:21:37 | 显示全部楼层 |阅读模式
本文以hisi3519交叉编译toolchain为例,讲解交叉编译基于armv7a的neon/vfp加速的高性能opencv。

p.s.在我的应用场景下测试比直接指定编译器进行编译的速度提升n倍,比开启neon采用thumb指令集编译速度提升一倍以上,效果拔群。

第一步:编辑opencv-3.1.0/platforms/linux/arm-gnueabi.toolchain.cmake 优化编译选项
1、将-mthumb改为-marm采用更为高效的arm指令集进行编译。
2、并添加编译选项 -mfloat-abi=softfp -ftree-vectorize 告诉编译器对于可进行向量化优化的c/c++代码进行向量化优化。
第二步:为cmake指定交叉编译toolchain,生成makefile
1、新建目录opencv-3.1.0/build并于此目录下执行
ccmake -DCMAKE_TOOLCHAIN_FILE=../platforms/linux/arm-gnueabi.toolchain.cmake -DCMAKE_CXX_COMPILER=/opt/hisi-linux/x86-arm/arm-hisiv500-linux/bin/arm-hisiv500-linux-uclibcgnueabi-g++ -DCMAKE_C_COMPILER=/opt/hisi-linux/x86-arm/arm-hisiv500-linux/bin/arm-hisiv500-linux-uclibcgnueabi-gcc -DCMAKE_AR=/opt/hisi-linux/x86-arm/arm-hisiv500-linux/bin/arm-hisiv500-linux-uclibcgnueabi-ar -DCMAKE_LINKER=/opt/hisi-linux/x86-arm/arm-hisiv500-linux/bin/arm-hisiv500-linux-uclibcgnueabi-ld -DCMAKE_NM=/opt/hisi-linux/x86-arm/arm-hisiv500-linux/bin/arm-hisiv500-linux-uclibcgnueabi-nm -DCMAKE_OBJCOPY=/opt/hisi-linux/x86-arm/arm-hisiv500-linux/bin/arm-hisiv500-linux-uclibcgnueabi-objcopy -DCMAKE_OBJDUMP=/opt/hisi-linux/x86-arm/arm-hisiv500-linux/bin/arm-hisiv500-linux-uclibcgnueabi-objdump -DCMAKE_STRIP=/opt/hisi-linux/x86-arm/arm-hisiv500-linux/bin/arm-hisiv500-linux-uclibcgnueabi-strip ..
指定gcc、g++、ar和ld等编译工具地址。
2、按c进行configure并进入设置界面指定sysroot(可选)
3、根据项目需求选择其他可选项
4、打开NEON与VFP选项
5、指定libm用于高性能数学计算
6、按c进行configure完成后按g进行generate
第三步:make and enjoy
发表于 2017-12-18 16:53:25 | 显示全部楼层
n倍是多少倍啊,哈哈
 楼主| 发表于 2017-12-18 17:46:57 | 显示全部楼层
CP19940613 发表于 2017-12-18 16:53
n倍是多少倍啊,哈哈

大致就是3-5倍吧,看不同的接口与运算量了
发表于 2019-5-13 18:23:38 | 显示全部楼层
楼主 5、指定libm用于高性能数学计算,,,这个是怎么指定的?
发表于 2019-6-5 15:15:45 | 显示全部楼层
请问NEON, VFP如何打开?
我按Configure没看到有画面可以设定NEON, VFP?

2、按c进行configure并进入设置界面指定sysroot(可选)
3、根据项目需求选择其他可选项
4、打开NEON与VFP选项
5、指定libm用于高性能数学计算
6、按c进行configure完成后按g进行generate
发表于 2019-8-25 13:13:23 来自手机 | 显示全部楼层
感谢楼主分享经验
您需要登录后才可以回帖 登录 | 注册

本版积分规则

© 2008-2017 当前位置 易百纳技术社区论坛 返回 易百纳技术社区 ( 苏ICP备14036084 )   Powered by Discuz! X3.1
快速回复 返回顶部 返回列表