MCU 성능 측정을 할수 있는 벤치마크 방법은 여러가지가 있지만 Dhrystone, Whetstone 방식을 많이 사용한다.
각각의 특징은 아래와 같다.
- Dhrystone - 정수(ALU)연산성능 측정, MIPS 수치로 표기
- Whetstone - 부동소수점(FPU)연산성능 측정, MFLOPS 수치로 표기
테스트 코드는 STM32H MCU Dhrystone, Whetstone, IIR Benchmark 성능 테스트 를 이용하였다.
133Mhz 클럭 주파수를 이용하고 기본 옵션으로 테스트 해 보면 77.7DMIPS가 측정된다.
Dhrystone Benchmark, Version 2.1 (Language: C)
mode = Arduino
Execution starts, 300000 runs through Dhrystone
Execution ends : 2.197 Seconds
Microseconds for one run through Dhrystone: 7.32
Dhrystones per Second: 136522.69
VAX MIPS rating = 77.70 DMIPS
옵티마이즈 옵션을 OFast로 변경하면 154.5DMIPS로 측정이된다. Cortex-M0 코어 MCU들과 비교해 보면 나쁘지 않은것 같다.
mode = Arduino
Dhrystone Benchmark, Version 2.1 (Language: C)
Execution starts, 300000 runs through Dhrystone
Execution ends : 1.105 Seconds
Measured time too small to obtain meaningful results
Please increase number of runs
Microseconds for one run through Dhrystone: 3.68
Dhrystones per Second: 271459.56
VAX MIPS rating = 154.50 DMIPS
---------------------------------------------------
Whetstone Benchmark, Version 1.2 (Language: C)
Loops: 1000, Iterations: 1, Duration: 992 ms.
C Converted Single Precision Whetstones: 100.81 MIPS
---------------------------------------------------
4th order float IIR speed benchmark
total number of samples: 15000 duration [us]: 113 ==> speed [kiloSamples/second] : 132.74
RP2040 성능 측정 테스트 할때 250Mhz 까지 클럭을 올려서 테스트 해봤는데 벤치마크도 오버클럭 250Mhz로 테스트 해보았다.
mode = Arduino
Dhrystone Benchmark, Version 2.1 (Language: C)
Execution starts, 300000 runs through Dhrystone
Execution ends : 0.585 Seconds
Measured time too small to obtain meaningful results
Please increase number of runs
Microseconds for one run through Dhrystone: 1.95
Dhrystones per Second: 513186.32
VAX MIPS rating = 292.08 DMIPS
---------------------------------------------------
Whetstone Benchmark, Version 1.2 (Language: C)
Loops: 1000, Iterations: 1, Duration: 526 ms.
C Converted Single Precision Whetstones: 190.11 MIPS
---------------------------------------------------
4th order float IIR speed benchmark
total number of samples: 15000 duration [us]: 59 ==> speed [kiloSamples/second] : 254.24