免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4717 | 回复: 16

换了快几倍的ARM,为什么性能没提上去 [复制链接]

论坛徽章:
0
发表于 2009-10-20 23:06 |显示全部楼层
我有个用opencv处理图像的程序,之前在200M的ARM核(TI DM6446)上跑,monavista gcc工具链,性能不怎么样。
现在换了块600M的ARM11(freescale 的imx31 多媒体处理器)的处理器,在一般的arm  linux gcc工具链上编译,用的同一编译徒然,性能没有提高,反而降低了。
:em12: :em12: 这是为什么

有人对工具链gcc有深入一点的了解吗,是不是gcc编译器没有产生充分利用处理器硬件特性的机器码。比如我的imx31有VPF,浮点运算单元,gcc却没有产生利用这一特性的代码.


[ 本帖最后由 magicboatrocket 于 2009-10-20 23:08 编辑 ]

论坛徽章:
0
发表于 2009-10-21 09:40 |显示全部楼层
仅仅换了处理器么?其他如memory呢?

论坛徽章:
5
摩羯座
日期:2014-07-22 09:03:552015元宵节徽章
日期:2015-03-06 15:50:392015亚冠之大阪钢巴
日期:2015-06-12 16:01:352015年中国系统架构师大会
日期:2015-06-29 16:11:2815-16赛季CBA联赛之四川
日期:2018-12-17 14:10:21
发表于 2009-10-21 10:17 |显示全部楼层
有可能
有可能是软浮点和硬浮点的运算的问题
你可以测试一下
新板子没有给你提供编译器吗

论坛徽章:
0
发表于 2009-10-21 13:42 |显示全部楼层
说到memory, 大小是差不多,肯定是够程序用的。不说我还不注意,查了下,先前的系统的是SDRAM,64M,后来的系统是用mobile DDR内存,64M。
SDRAM, mobile DDR的内存性能比较如何?有人有insight吗


imx31板子有提供编译器,但我无法确定他提供的编译器好不好。平时对arm-linux-gcc工具也就关注能不能把程序编译过去,对它产生的指令的质量就没什么了解了。
想问T-bagwell兄台,怎么测试软浮点和硬浮点运算的问题呢?反汇编,查硬浮点指令?

[ 本帖最后由 magicboatrocket 于 2009-10-21 13:45 编辑 ]

论坛徽章:
5
摩羯座
日期:2014-07-22 09:03:552015元宵节徽章
日期:2015-03-06 15:50:392015亚冠之大阪钢巴
日期:2015-06-12 16:01:352015年中国系统架构师大会
日期:2015-06-29 16:11:2815-16赛季CBA联赛之四川
日期:2018-12-17 14:10:21
发表于 2009-10-21 13:56 |显示全部楼层
写几个测试函数就可以了
比如三角函数运算
浮点,加减乘除,求余

当然,OpenCV我不了解,不过我估计里面可能会大量用double和float

硬浮点会比软浮点快很多

论坛徽章:
0
发表于 2009-10-21 14:03 |显示全部楼层
memory方面应该不会影响太大。觉得还是编译器的原因


Mobile DDR for automotive
While there are a lot of memory options for vehicular electronics, here we have sought to demonstrate that Mobile DDR is a good, high-quality choice for many -applications because it functions in a broad temperature range ("40 to 105C), consumes relatively little power, and is available in a variety of densities and configurations for the automotive market long haul.

http://www.embedded.com/design/208403917?pgno=2

论坛徽章:
0
发表于 2009-10-21 15:30 |显示全部楼层
arm-linux-gcc  -v
看看是不是包含下面这句话:
--with-float=soft
是的话就是软浮点了,比较慢~

论坛徽章:
0
发表于 2009-10-21 16:12 |显示全部楼层
第一个处理器也有硬浮点单元?如果都没有的话,那就算第二个用的软浮点也不应该慢啊

论坛徽章:
0
发表于 2009-10-21 17:39 |显示全部楼层
谢谢T-bagwell兄,opencv里的确很多浮点运算,这些浮点运算对Intel的架构有做优化,但对ARM就没有了。有些浮点运算我在做移植的时候直接用标准库函数了。

写几个测试函数,但我要怎么知道编译器是用硬浮点还是软浮点来算的呢

论坛徽章:
5
摩羯座
日期:2014-07-22 09:03:552015元宵节徽章
日期:2015-03-06 15:50:392015亚冠之大阪钢巴
日期:2015-06-12 16:01:352015年中国系统架构师大会
日期:2015-06-29 16:11:2815-16赛季CBA联赛之四川
日期:2018-12-17 14:10:21
发表于 2009-10-21 17:57 |显示全部楼层
如果之前用intel的话,差距更大了
mmx和SSE就差别太大了

浮点的话,你可以用sin函数来测试
三角函数应该能看得出来

测一下速度

差距一般是8倍到12倍

具体就不知道了,看看其他人怎么说
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP