2013年5月21日火曜日

ARM QEMUでDhrystoneを動かしてみる

整数演算の処理速度を評価する指標として知られるDhrystone(ドライストーン)ですが、コンパイラ効率やlibcの性能にも影響を受ける点も指摘されており、総合的に見るとプロセッサ単体の性能というよりはプラットフォーム全体の能力を反映したものと言えそうです。切り分けのためにはあまりよくない特性で、ベンチマークとして他の指標も見ないとよい評価はできないかもしれませんが、とりあえず手元でぱっと動かせると便利なものの一つには変わりないでしょう。

そこで今回はDhrystoneをARMコンパイルしてQEMUで動かす手順を確認。

1. ソースコードのダウンロード


ここからソースコードのアーカイブをダウンロードして解凍します。

2. Makefileの編集


エディタを使って、解凍したソースコードに同梱されているMakefileを環境に合わせて編集します。
下記のエントリを編集。同じ名前のエントリは一番最後に書いた行が有効になりますが、紛らわしければコメントアウトしたり消してしまったりしても構いません。

3. ビルド


ARMクロスコンパイラでコンパイルします。ツールチェインのインストールについてはこちら2を参照。
ツールチェインへのパスを通しておいて
でおk。

4. 実行


QEMU ARMを使って実行してみます。QEMU ARMのインストールはこちら1を参照。
実行回数の指定を求められます。試しに1000000回を指定。多いほど時間はかかりますが、少なすぎると失敗します。

実行が終わると、下記のように処理結果が表示されます。
Dhrystoneによるベンチマーク指標であるDMIPS値を得るには、Dhrystones per Secondを1757で割る必要があります。1MIPSの基準マシンとされているVAX 11/780のDhrystones per Second値との比を取るためです。この演算より、

250000 / 1757 = 142 DMIPS

が得られます。

実際にはMakefile中のHZエントリを編集してターゲットプラットフォームに合わせたメモリクロック(MHz)を設定しなければならないため、 上記の値は意味ナシです(初期値の60で算出されています)。

いろいろなプロセッサのDMIPS値と比べてみるのも面白いです。Cortex-A9あたりだと、1GHzで2500DMIPSになるようですね。

参考情報

Dhrystone howto
Dhrystone - Wikipedia


0 件のコメント:

コメントを投稿