打印
[单片机芯片]

CH32V103使用-flto优化时Dhrystone性能测试异常

[复制链接]
1987|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
imdx|  楼主 | 2022-3-11 08:59 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
DM, fm, hz, ip
测试了CH32V103和CH573的Dhrystone的成绩,发现一个非常奇怪的现象:使用-flto优化以后,CH32V103在8M主频时居然18.55ms就跑完了测试,性能达到了3.84DMIPS/MHz,这个成绩比ARM最新的Cortex-M33还要快得多,感觉可能性不大,同样8M主频,关闭-flto优化以后用时53.15ms,对应1.34DMIPS/MHz,感觉这个数据更真实一些,一个-flto优化不大可能把性能提高几倍,更大的可能性是-flto优化导致哪里出错了。附CH32V103和CH573的Dhrystone测试数据表格。

还有个坑要注意:MRS里面修改了编译选型,直接编译很快就结束,结果不变,必须先clean以后再编译才能得到正确的结果,这个也挺坑的。

使用特权

评论回复
沙发
WCHTech37| | 2022-3-11 15:09 | 只看该作者
您好,使用-flto选项会使指令重排,在一些编译条件下确实会有您测试的现象,我们会持续关注GCC对此类问题的更新情况;MRS提供了Rebuild快捷按钮及菜单项,可实现工程重新编译的效果。

使用特权

评论回复
板凳
imdx|  楼主 | 2022-3-11 16:46 | 只看该作者
WCHTech37 发表于 2022-3-11 15:09
您好,使用-flto选项会使指令重排,在一些编译条件下确实会有您测试的现象,我们会持续关注GCC对此类问题的 ...

-flto是否会影响到代码的执行逻辑,导致错误的运行结果呢?
ARM的所有型号我默认都会打开LTO选项,没有发现这个问题。而且同样是RISC-V的GD32VF103打开-flto选项以后也没有这个问题。

使用特权

评论回复
地板
imdx|  楼主 | 2022-3-12 09:48 | 只看该作者
WCHTech37 发表于 2022-3-11 15:09
您好,使用-flto选项会使指令重排,在一些编译条件下确实会有您测试的现象,我们会持续关注GCC对此类问题的 ...

看了下目前MRS从1.42到1.60版本都是用的8.2.0版本的编译器,我在GD32VF103上使用的9.2.0版本没有这个问题。有朋友测试7.2.0也有这个问题,能否提供一个9.2.0版本的MRS配套编译器?你们也可以测试一下看看9.2.0是否还有这个问题。

使用特权

评论回复
5
imdx|  楼主 | 2022-10-10 22:17 | 只看该作者
这个-flto选项对减小代码体积还是有很大作用的,我的一个项目,不开-flto选项,体积18740字节,打开-flto选项体积13564字节,一个选项代码体积减小到之前的72%,这个还是很有吸引力的。不过目前的gcc 8.2.0打开-flto选项会有莫名其妙的问题,还是不敢打开。

使用特权

评论回复
6
ufbycd| | 2022-10-12 22:03 | 只看该作者
本帖最后由 ufbycd 于 2022-10-12 22:07 编辑
imdx 发表于 2022-10-10 22:17
这个-flto选项对减小代码体积还是有很大作用的,我的一个项目,不开-flto选项,体积18740字节,打开-flto选 ...

换个新点的GCC版本应该就可以放心开LTO优化了,我在ARM芯片上用GCC 12.2.0开LTO没什么问题。沁恒这个RISC-V GCC应该有别于主线的,要看沁恒去更新版本了。

使用特权

评论回复
7
imdx|  楼主 | 2022-10-13 07:54 | 只看该作者
ufbycd 发表于 2022-10-12 22:03
换个新点的GCC版本应该就可以放心开LTO优化了,我在ARM芯片上用GCC 12.2.0开LTO没什么问题。沁恒这个RISC- ...

是这样的,WCH对主线的gcc做了一些扩展,目前他们还是8.2.0版本。他们用的xPack版本GCC也停止更新换坑了。

使用特权

评论回复
8
ufbycd| | 2022-10-15 19:00 | 只看该作者
imdx 发表于 2022-10-13 07:54
是这样的,WCH对主线的gcc做了一些扩展,目前他们还是8.2.0版本。他们用的xPack版本GCC也停止更新换坑了 ...

实在想开LTO的话,可以放弃WCH的扩展指令使用主线的新点的编译器。似乎WCH的扩展指令是用于缩小中断响应时间。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

121

主题

902

帖子

8

粉丝