- 主题:RISC-V对比Cortex-M的Dhrystone性能测试对比
- 之前对比了RISC-V和Cortex-M的代码密度,结论是同样功能,RISC-V要多用大约6成的F
 LASH空间,追求面积优化的应用器件选型时需要注意,那么性能如何呢?本文对比了一
 下。
 
 测试方法使用Dhrystone 2.1源代码,RISC-V分别和M4,M3核心对比,测试结果如下:
 
 RISC-V芯片,GD32VF103,RV32IMAC核心,8M主频,GCC编译器
 
 -O3优化,实测时间54.39ms
 
 -Os优化,实测时间94.09ms
 
 -Ofast优化,实测时间54.39ms,与-O3完全一样
 
 ARM芯片,GD32F330,Cortex-M4核心,8M主频,AC6编译器
 
 -O3优化,实测时间38.40ms
 
 -Os优化,实测时间39.15ms
 
 -Ofast优化,实测时间38.40ms,与-O3完全一样
 
 -Oz优化,实测时间57.09ms
 
 GD32F103,Cortex-M3核心,8M主频,AC6编译器
 
 -O3优化,实测时间45.92ms
 
 -Os优化,实测时间46.68ms
 
 -Ofast优化,实测时间45.92ms,与-O3完全一样
 
 -Oz优化,实测时间64.88ms
 
 结论:
 
 最大速度优化情况下,RISC-V执行时间是M4的54.39/38.40*100%=141.64%,是M3的54.3
 9/45.92*100%=118.45%。
 
 粗略来看,RISC-V同频性能比M4慢大约4成,比M3大约慢2成。当然这里面肯定有编译器
 的差距,GCC肯定是要比AC6弱的,这点毋庸置疑。
 
 ARM也有GCC编译器可用,不过大多数ARM用户都是使用ARM的编译器,对比两者在GCC编译
 器下的表现意义并不大。
 
 还有一点是GD没有提供GCC编译器的startup文件,我也懒得再去自己写了。
 
 补充M0的数据,由于GD32没有M0,芯片使用STM32.
 
 STM32F030C8T6,Cortex-M0核心,8M主频,AC6编译器
 
 -O3优化,实测时间46.71ms
 -Os优化,实测时间48.47ms
 -Ofast优化,实测时间46.71ms,与-O3完全一样
 -Oz优化,实测时间69.70ms
 --
 修改:spadger FROM 36.45.169.*
 FROM 36.45.169.*
 
- GCC性能拉胯啊
 
 
 【 在 tom6bj (tom) 的大作中提到: 】
 : 我之前在8M主频的GD32F350上用O3, GCC, 是61.5ms啊, 比VF还慢了
 : st官方宣称f103性能是1.25 DMIPS/MHz, 那8M时应该是56.5ms左右
 : 之前对比了RISC-V和Cortex-M的代码密度,结论是同样功能,RISC-V要多用大约6成的F
 : ...................
 --
 FROM 36.45.169.*
 
- 因为整数性能,M0和M3并没有什么差异。
 
 STM32F030,Cortex-M0核心,8M主频,AC6编译器
 
 -O3优化,实测时间46.71ms
 -Os优化,实测时间48.47ms
 -Ofast优化,实测时间46.71ms,与-O3完全一样
 -Oz优化,实测时间69.70ms
 
 STM32慢一点点,应该是因为内存架构的关系。
 ps. GD32没有M0
 
 
 【 在 fastwind0 (快风) 的大作中提到: 】
 : 为啥不跟ARM Cortex M0比,而是跟M4比?
 --
 FROM 36.45.169.*