マイコンベンチマークを実施
身近にあったマイコンのベンチマークを実施。
対象とするベンチマーク
ベンチマークのソースコードはいくつか見つかる。ここでは代表的なものかつArduino IDE(Platform)で実行可能なものを取り上げた。
Dhrystone
定義はこちらを参照。主に整数演算処理能力を表す。ソースコードはこちらを利用。マイコンによっては、結果を得るために繰り返し回数を増やすが必要がある。下記結果表の数値は「VAX MIPS rating」の値である。
Whetstone
定義はこちら。主に浮動小数点演算処理能力を表す。ソースコードはこちらを利用。下記結果表の数値は「MIPS」値。
CoreMark
定義はこちら。主に組み込みシステムでのCPU能力を表す。ソースコードはこちらを利用。下記結果表の数値は、CoreMark値(と言うらしい)。
結果
マイコンクロック(周波数)も記載したが、実行時の正確な数値は不明。
マイコン | Clock(MHz) | Dhrystone | Whetstone | CoreMark |
---|---|---|---|---|
Arduino(ATmega328p) | 16 | 9.85 | 8.01 | ※1 |
Nucleo(STM32F303RE: ARM Cortex-M4) | 72 | 32.30 | 48.66 | 95.21 |
M5Stack(ESP32: Tensilica Xtensa LX6) | 160 or 240? | 177.01 | 70.62 | 351.25 |
ATOM Matrix(ESP32 pico: Xtensa Tensilica LX6) | 160 or 240? | 177.01 | ※2 | 351.23 |
M5StickV(Kendryte K210: RV64IMAFDC) *3 | 400 | 417.73 | 317.46 | 650.62 |
NodeMCU(ESP8266: Tensilica Xtensa LX106) | 80 | ※4 | ※4 | ※4 |
Wio Terminal(ATSAMD51P19: ARM Cortex-M4F) | 120 or 200? | 99.53 | 50.00 | 211.42 |
Seeeduino XIAO(SAMD21G18: ARM Cortex-M0+) | 48 | 26.49 | 2.04 | 51.93 |
Spresense(CXD5602: ARM Cortex-M4F) | 156? | 82.57 | 66.36 | 199.32 |
Longan Nano(GD32VF103CBT6) | 108 | ※5 | ※5 | ※5 |
※1 リブートを繰り返し計測できず
※2 Buildできず
※3 PlatformIO利用、「platformio.ini」に「upload_speed = 115200」追加
※4 Arduino IDE、Platform IOの両者でも「Soft WDT reset」が発生し計測できず
※5 Arduino IDEで動作せず、PlatformIOでBuildできず(コード修正も試みたが)
少しだけ考察
- マイコン周波数が高いほどPerformanceよし
- ここではM5Stickの性能が際立つ
- MtStack5とATOM Matrixはマイコンが同じESP32なので結果はほぼ同じ