google-site-verification: google3bd66dd162ef54c7.html
fc2ブログ

マンデルブロベンチマーク測定結果の一覧表

◆まえがき
マンデルブロベンチマークの測定結果を集めたページです。組み込みで使われているCPU(いわゆるマイコン)の速度比較に役立つと思います。

関連ページ:
組み込み用CPUの性能をマンデルブロベンチで測定してみた
ESP32でASCIIART(マンデルブロ集合)ベンチマークを実行(続編)

◆マンデルブロベンチマークとは
主に組み込みのCPUの性能評価を目的に作ったもので、C言語で書いたマンデルブロ集合の計算速度を測定しています。オリジナルのアイディアは、はせりんさんがASCIIART(マンデルブロ集合)ベンチマークと言うページで公開されているBASICのプログラムから頂いたもので、これをC言語に書き直しています。

ベンチマークと言っても浮動小数点演算の速度を測っているだけなので、CPUや言語処理系の全ての性能を反映したものではありません。しかし、同一条件で比較することで性能の違いを比較することは出来ると思います。

・実行結果画面
マンデルブロベンチマークの実行結果

◆プログラム
マンデルブロ集合の計算を行って結果をメモリーに保存しその処理時間を測定しています。全部計算が終わったら、処理時間と総計算回数を出力し、最後にマンデルブロ集合のマップ(ASCII ART)を出力します。詳しくは関連ページをご覧ください。
総計算回数は11884回になっているはずで、もしこの値が違っていたら想定した通りに計算が行われなかった可能性があります。

・通常バージョン
20211216_MandelbroBench.txt (拡張子をinoに変更、BOM付きUTF-8)

・No Ascii Art バージョン (NoAA)
20211216_MandelbroBench_NoAA.txt  (拡張子をinoに変更、BOM付きUTF-8)
RAMが小さなCPU(約2.5kB以下)の場合、こちらをお使いください。マンデルブロ集合の計算は行いますが、アスキーアートのメモリーへの保存と出力を省略しており、処理時間と総計算回数だけ出力します。

◆測定結果一覧 (表の最終更新日:2022/02/21)
No.ボード
(モジュール)名
CPUclock
(MHz)
実行時間
(us)
環 境情報ソース備 考
1Arduino UNOATmega328P161018284Arduino IDEラジオペンチNoAAで測定
2ESP8266ESP-WROOM-0280157728Arduino IDEラジオペンチ
3ESP32 DEVKITESP-WROOM-3224021096Arduino IDEラジオペンチ
4ESP32 on
ATmega328 socket
ESP-WROOM-3224021063Arduino IDEラジオペンチ自作モジュール
5 STM32F40516822602シングルタスク
FreeRTOS無し
Hさん コメント
6M5StackESP-WROOM-322402680SASANO Takayoshi
@uaa
速すぎない?
7Nucleo-F441RESTMF411RE
(Coretex-M4 w/FPU)
72631Mbed OS 6.15
bare-metal
匿名さん コメント
8Blue PillSTM32F103
(Coretex-M3)
72242710Mbed OS 6.15匿名さん コメント
9Arduino MEGA 2560ATmega2560161023896Arduino IDEyas @yas0107
Dec 11
NoAAで測定
10seeeduino XIAOSAMD21G18
(Coretex-M0)
48635154Arduino IDEyas @yas0107
Dec.11
11Wio TerminalATSAMD51P19A12031150Arduino IDEコメンテーターさん
コメンテーターさん
200MHzはOC
1220018680
13Seeed XIAO RP2040RP2040125112733Arduino IDEyas @yas0107
Dec.15
200,250MHzはOC
14133105871
1520070170
1625056072
18Pi PicoRP2040
(Coretex-M0+)
133191532Arduino IDEyas @yas0107
Dec.15
19HLK-W806W8064050121wm-sdk-w806?SASANO Takayoshi@uaa
てきとーな日記
02-Feb-2022
コード他詳細は
左記リンク参照
2022/02/21追記
202408471
21W806 (wo/FPU)40797724
22240135073
23
24
25

この表は随時更新します。情報を連絡いただければ追記・修正しますので、コメントやツイッターなどで知らせて頂くと嬉しいです。

◆注意事項、他
・同じCPUでもコンパイラによって実行時間が違ってくる可能性があります。また、浮動小数点演算の精度によっても結果が異なってくる可能性があります。

・代入だけで参照が行われなかった変数は、コンパイラの最適化によって無かったことにされる可能性があるので処理時間が違ってくる可能性があります。できるだけそういうことが起こらないように、calcCount変数でループの一番内側の通過回数をチェックするようにしています。(volatile宣言で対策する方が良い?)

・このプログラムの実行結果は同じなので、究極の最適化として、コンパイラであらかじめ全部計算を行ってしまって結果をテーブルで持つようなことも可能だと思います。そんなのがあるかどうか知りませんが、ともかくそこまでやられるとこのベンチマークの結果は意味のないものになってしまいます。

◆まとめ、雑感
・現時点ではESP32が最強ということでしょうか。

・ARMのCPUと言うと速そうな印象を持っていたのですが、さほどでもない感じです。まあいろいろなIPがあるので、ひとくくりには言えないということですね。

・ラズパイの組織が開発したRP2040が思っていたほど速くないのが意外です。

・CPU(マイクロコントローラー)の性能にはIOの機能や消費電力などがあるので、このベンチマークの結果だけで優劣を語ることは出来ませんが、参考にはなると思います。

関連記事

コメントの投稿

管理者にだけ表示を許可する

No title

Wio Terminal の結果について追記します。測定環境は Arduino IDE です。また 200MHz にオーバークロックして測定すると、18.68 ms でした。

コメンテーターさん、情報ありがとうございます

いつもありがとうございます、表に追加しておきました。
カレンダー
05 | 2023/06 | 07
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -
プロフィール

ラジオペンチ

Author:ラジオペンチ
電子工作を中心としたブログです。たまに近所(東京都稲城市)の話題など。60過ぎて視力や器用さの衰えを感じつつ日々挑戦!
コメントを入れる時にメールアドレスの記入は不要です。なお、非公開コメントは受け付けていません。
記事の内容のご利用は読者の自己責任でお願いします。

記事が気に入ったらクリックを!
最新記事
カテゴリ
最新コメント
リンク
FC2カウンター
検索フォーム
月別アーカイブ
RSSリンクの表示
QRコード
QRコード