zhangdanfeng

zhangdanfeng

0个粉丝

1

问答

0

专栏

0

资料

zhangdanfeng  发布于  2017-12-18 14:21:37
采纳率 0%
1个问答
4073

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

本文以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
我来回答
回答6个
时间排序
认可量排序

CP19940613

0个粉丝

2

问答

0

专栏

0

资料

CP19940613 2017-12-18 16:53:25
认可0
n倍是多少倍啊,哈哈

zhangdanfeng

0个粉丝

1

问答

0

专栏

0

资料

zhangdanfeng 2017-12-18 17:46:57
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=82298&ptid=38496]CP19940613 发表于 2017-12-18 16:53[/url]
n倍是多少倍啊,哈哈[/quote]

大致就是3-5倍吧,看不同的接口与运算量了

hset911

0个粉丝

2

问答

0

专栏

0

资料

hset911 2019-05-13 18:23:38
认可0
楼主 5、指定libm用于高性能数学计算,,,这个是怎么指定的?

qn1534489079

0个粉丝

12

问答

0

专栏

2

资料

qn1534489079 2019-06-05 15:15:45
认可0
请问NEON, VFP如何打开?
我按Configure没看到有画面可以设定NEON, VFP?

[quote]2、按c进行configure并进入设置界面指定sysroot(可选)
3、根据项目需求选择其他可选项
4、打开NEON与VFP选项
5、指定libm用于高性能数学计算
6、按c进行configure完成后按g进行generate[/quote]

hero

0个粉丝

1

问答

0

专栏

0

资料

hero 2017-12-19 08:47:52
认可0
:victory::victory:

ebainar

0个粉丝

7

问答

0

专栏

0

资料

ebainar 2019-08-25 13:13:23
认可0
感谢楼主分享经验
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
相关问答
无更多相似问答 去提问
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区