본문 바로가기

RaspberryPi/RP2350

RP2350 Dhrystone, Whetstone, IIR Benchmark 성능 테스트

 

MCU 성능 측정을 할수 있는 벤치마크 방법은 여러가지가 있지만 Dhrystone, Whetstone 방식을 많이 사용한다.

각각의 특징은 아래와 같다.

  • Dhrystone - 정수(ALU)연산성능 측정,  MIPS 수치로 표기
  • Whetstone - 부동소수점(FPU)연산성능 측정, MFLOPS 수치로 표기

테스트 코드는   STM32H MCU Dhrystone, Whetstone, IIR Benchmark 성능 테스트 를 이용하였다.

 

 

 

RP2040 보드의 벤치마크 테스트 결과와 비교해 보면 부동소수점 연산(FPU) 성능이 많이 향상되었다. 

https://nexp.tistory.com/3688

 

RP2040 Dhrystone, Whetstone, IIR Benchmark 성능 테스트

MCU 성능 측정을 할수 있는 벤치마크 방법은 여러가지가 있지만 Dhrystone, Whetstone 방식을 많이 사용한다. 각각의 특징은 아래와 같다. Dhrystone - 정수(ALU)연산성능 측정, MIPS 수치로 표기 Whetstone - 부

nexp.tistory.com

 

 

RP2040 vs RP2350 벤치 마크 테스트 결과 비교

  RP2040 RP2350-ARM
150Mhz
RP2350-RISCV
150Mhz
RP2350-ARM
200Mhz
RP2350-RISCV
200Mhz
Dhrystone [DMIPS] 154 352.93 457.31 470 610
Whetstone [MIPS] 100.81 2272 195.31 3125 261
IIR SPEED [us] 113 3 58 3 43

 


RP2350에는 ARM Cortex-M33 코어와 RISC-V 코어가 있는데 ARM 디폴트 모드로 성능 테스트를 해보면  

RP2040 보다 조금 좋은 성능이 측정된다.



mode = Arduino
Dhrystone Benchmark, Version 2.1 (Language: C)
---------------------------------------------------


Execution starts, 300000 runs through Dhrystone

Execution ends : 1.102 Seconds
Measured time too small to obtain meaningful results
Please increase number of runs

Microseconds for one run through Dhrystone: 3.67
Dhrystones per Second: 272317.81
VAX MIPS rating = 154.99 DMIPS
Whetstone Benchmark, Version 1.2 (Language: C)
---------------------------------------------------



Loops: 1000, Iterations: 1, Duration: 926 ms.
C Converted Single Precision Whetstones: 107.99 MIPS

4th order float IIR speed benchmark
---------------------------------------------------
total number of samples: 15000  duration [us]: 5  ==> speed [kiloSamples/second] : 3000.00

 

 

 

뭔가 좀 이상한데...

최대 옵티마이즈 옵션으로 측정해 볼까?

옵티마이즈 하면 FPU성은이 크게 향상된다.

 

mode = Arduino
Dhrystone Benchmark, Version 2.1 (Language: C)
---------------------------------------------------


Execution starts, 300000 runs through Dhrystone

Execution ends : 0.484 Seconds
Measured time too small to obtain meaningful results
Please increase number of runs

Microseconds for one run through Dhrystone: 1.61
Dhrystones per Second: 620097.36
VAX MIPS rating = 352.93 DMIPS
Whetstone Benchmark, Version 1.2 (Language: C)
---------------------------------------------------



Loops: 1000, Iterations: 1, Duration: 44 ms.
C Converted Single Precision Whetstones: 2272.73 MIPS

4th order float IIR speed benchmark
---------------------------------------------------
total number of samples: 15000  duration [us]: 3  ==> speed [kiloSamples/second] : 5000.00

 

 

 

 


RP2350에는 RISC-V 코어도 있다.

RISC-V 코어도 테스트 해보자. 옵티마이즈 하지 않으면 FPU 성능이 나오지 않는다.

 

 

 

mode = Arduino
Dhrystone Benchmark, Version 2.1 (Language: C)
---------------------------------------------------


Execution starts, 300000 runs through Dhrystone

Execution ends : 0.877 Seconds
Measured time too small to obtain meaningful results
Please increase number of runs

Microseconds for one run through Dhrystone: 2.92
Dhrystones per Second: 342030.41
VAX MIPS rating = 194.67 DMIPS
Whetstone Benchmark, Version 1.2 (Language: C)
---------------------------------------------------



Loops: 1000, Iterations: 1, Duration: 5077 ms.
C Converted Single Precision Whetstones: 19.70 MIPS

4th order float IIR speed benchmark
---------------------------------------------------
total number of samples: 15000  duration [us]: 63  ==> speed [kiloSamples/second] : 238.10

 

 

RP2350의 RISC-V 코어의 옵티마이즈 옵션을 설정하고 컴파일 하면 정수연산은 빠른데 FPU연산은 상대적으로 느리다. 아무래도 저전력 때문에 사용하는 RISC-V라 코어 특성을 어플리케이션에 맞게 선택해서 사용해야 할것 같다.

 

 

 

 

mode = Arduino
Dhrystone Benchmark, Version 2.1 (Language: C)
---------------------------------------------------


Execution starts, 300000 runs through Dhrystone

Execution ends : 0.373 Seconds
Measured time too small to obtain meaningful results
Please increase number of runs

Microseconds for one run through Dhrystone: 1.24
Dhrystones per Second: 803488.21
VAX MIPS rating = 457.31 DMIPS
Whetstone Benchmark, Version 1.2 (Language: C)
---------------------------------------------------



Loops: 1000, Iterations: 1, Duration: 512 ms.
C Converted Single Precision Whetstones: 195.31 MIPS

4th order float IIR speed benchmark
---------------------------------------------------
total number of samples: 15000  duration [us]: 58  ==> speed [kiloSamples/second] : 258.62
 

 


오버클럭으로 동작 시켜보자 250Mhz에서는 정상동작하지 않는것 같다. 200Mhz에서 동작시켜보면 성능이 향상되는 것을 확인 할 수 있다.

 

 

Microseconds for one run through Dhrystone: 1.21
Dhrystones per Second: 827492.61
VAX MIPS rating = 470.97 DMIPS
Whetstone Benchmark, Version 1.2 (Language: C)
---------------------------------------------------



Loops: 1000, Iterations: 1, Duration: 32 ms.
C Converted Single Precision Whetstones: 3125.00 MIPS

4th order float IIR speed benchmark
---------------------------------------------------
total number of samples: 15000  duration [us]: 2  ==> speed [kiloSamples/second] : 7500.00
반응형