CoreMarkは、組み込みシステムで使用される中央処理装置(CPU)のパフォーマンスを測定するベンチマークです。2009年にEEMBCのShay Gal-Onによって開発され[1] 、 Dhrystoneベンチマークに代わる業界標準となることを目指しています。[2]コードはCで書かれており、リスト処理(検索とソート)、行列操作(一般的な行列演算)、ステートマシン(入力ストリームに有効な数値が含まれているかどうかを判断)、CRCなどのアルゴリズムの実装が含まれています。コードはApache License 2.0に基づいており、無料で使用できますが、所有権はコンソーシアムが保持し、CoreMarkの名前で改変版を公開することは禁止されています。[3]
CoreMark が解決した問題
CRC アルゴリズムは、組み込みアプリケーションでよく見られるワークロードを提供し、CoreMark ベンチマークの正しい動作を保証するという 2 つの機能を果たします。つまり、基本的に自己チェック メカニズムを提供します。具体的には、正しい動作を確認するために、リンク リストの要素に含まれるデータに対して 16 ビットの CRC が実行されます。
コンパイラがコンパイル時に結果を事前計算できないようにするために、ベンチマーク内のすべての操作は、コンパイル時には利用できない値を導出します。さらに、ベンチマークのタイムド部分内で使用されるすべてのコードは、ベンチマーク自体の一部です (ライブラリ呼び出しはありません)。
CoreMark 対 Dhrystone
CoreMark は、Dhrystone の優れた耐久性を実現した強み、つまり、小型でポータブル、理解しやすく、無料、そして単一の数値ベンチマーク スコアを表示するという強みを活用しています。Dhrystone とは異なり、CoreMark には特定の実行ルールとレポート ルールがあり、Dhrystoneで指摘されているよく知られた問題を回避するように設計されています。
Dhrystone の大部分は、コンパイラの最適化機能によって処理が省略される可能性があるため、ハードウェア ベンチマークというよりはコンパイラ ベンチマークです。このため、異なるコンパイラ/フラグが使用されている場合の結果を比較することも非常に困難です。
ライブラリ呼び出しは、Dhrystone の計測時間部分で行われます。通常、これらのライブラリ呼び出しは、ベンチマークで消費される時間の大部分を消費します。ライブラリ コードはベンチマークの一部ではないため、異なるライブラリが使用されている場合、結果を比較することは困難です。Dhrystone の実行方法に関するガイドラインは存在しますが、結果は認定または検証されていないため、強制されません。[引用が必要] Dhrystone の結果を報告する方法については標準化されておらず、さまざまな形式が使用されています (DMIPS、Dhrystones per second、DMIPS/MHz)
結果
CoreMarkの結果はCoreMarkのWebサイト[4]およびプロセッサのデータシートに掲載されています。結果は次の形式です。
コアマーク 1.0 : N / C / P / M
- N 1秒あたりの反復回数(シード0,0,0x66、サイズ=2000)
- Cコンパイラのバージョンとフラグ
- P データやコードの割り当ての詳細などのパラメータ
- M –並列アルゴリズム実行のタイプ(使用されている場合)とコンテキストの数
例: CoreMark 1.0 : 128 / GCC 4.1.2 -O2 -fprofile-use / Heap in TCRAM / FORK:2
参照
- ビジネス アプリケーション パフォーマンス コーポレーション (BAPCo)
- 組み込みマイクロプロセッサベンチマークコンソーシアム (EEMBC)
- 標準性能評価機構(SPEC)
- トランザクション処理パフォーマンス協議会(TPC)
参考文献
- ^ Pitcher, Graham (2009-06-08). 「EEMBC が MIPS 破壊ベンチマークを発表」. newelectronics.co.uk . 2020-04-28閲覧。
- ^ 「ARM、EEMBC CoreMarkベンチマークのサポートを発表」GISCafe 2009-06-06 2020-04-28閲覧。
- ^ 「COREMARK® 許容使用契約」。GitHub 。 2018年5月24日。 2020年4月28日閲覧。
- ^ “スコア”. Coremark . 2020年4月28日閲覧。
外部リンク
- 公式サイト
- EEMBC CoreMark パブリック グループ
