Keiichi Oono's Weblog

All | cc | NetBeans | OpenSolaris | Personal
« NetBeans 6.0 Beta 2... | メイン | NetBeans 6.0.1 リリース »
20071105 2007年 11月 05日 月曜日

Sun Studio 12 C コンパイルオプションと姫野ベンチ

以前のエントリで Sun Studio 12 の -fast オプションに関連して、-xregs=frameptr オプションによる、フレームポインタレジスタを汎用レジスタとして使用する場合についてちょっと言及しました。このオプションによるプログラムの実行速度の違いを調べるために、「姫野ベンチ」を使ってみることにしました。姫野ベンチについてはリンク先の説明を参照してください。と言うか、リンク先の説明以上のことはできないです ...

まずは単にコンパイルして実行してみました

  1. ソースコード (C, static allocatie version) の M (256 x 128 x 128) をダウンロード
  2. 圧縮ファイルを展開するのに lha が必要なのでダウンロードしてコンパイル http://sourceforge.jp/projects/lha/
  3. Sun Studio 12 の cc を実行するように makefile を変更
  4. make コマンドにコンパイルオプションを渡す
    e.g.: $ make "CFLAGS=-DMIDDLE -xtarget=native64"

マシン
CPU 2 次キャッシュ メモリ
AMD Opteron 250 (2.4GHz) x2 1 MB 3326 MB

結果 (5 回計測した中央値)
コンパイルオプション 結果 (MFLOPS)
-DMIDDLE -fast -m64 942.156648
-DMIDDLE -fast -m64 -xregs=no%frameptr 960.605658

... フレームポインタレジスタを本来の目的で使用した方が良いスコアが出ました ... ただ、5 回計測した中の最大値、最小値についてはほとんど差が出ていません。また、5 回すべてでフレームポインタレジスタを汎用レジスタとして使用した場合には遅くなるかというと、そうではありません。これは有意な差とは言えないような気がしています。今回の環境でのこのプログラムについては、フレームポインタレジスタの取り扱いは実行速度に影響を及ぼさない。と言えそうです。

他にも気になるコンパイルオプションがあったので、今回の計測時に一緒に試しました。すべての結果は以下の通りです。

結果 (5 回計測した中央値)
コンパイルオプション 結果 (MFLOPS)
-DMIDDLE -xtarget=native64 -xO5 909.317671
-DMIDDLE -xtarget=native64 -xO5 -xvector=simd 930.913117
-DMIDDLE -xtarget=native64 -xO5 -xvector=simd -xprofile=use:bmt 915.097250
-DMIDDLE -fast -m64 942.156648
-DMIDDLE -fast -m64 -xregs=no%frameptr 960.605658
-DMIDDLE -fast -m64 -xvector=simd 983.480853
-DMIDDLE -fast -m64 -xvector=simd -xprofile=use:bmt 998.006062

-xvector=simd とは、SIMD 命令 (SSE) を使用を指示するためのオプションです。

-xprofile=use は、一旦プロファイル用のデータを収集し、そのデータを使用してコンパイルを行うためのものです。今回の計測時には -xprofile=collect オプションでコンパイルした実行形式を 5 回の実行し、5 回の実行結果をプロファイルデータとして使用しています。

色々と知りたいので、引き続きソースコードを読むなどしていきたいと思っています。

 
Posted by keiichio ( 11月 05日 2007年, 12:29:09 午後 JST ) Permalink 投稿されたコメント [0]

Trackback URL: http://blogs.sun.com/keiichio/entry/studio_12_himeno_bench
投稿されたコメント:

コメント

名前
メール
URL

投稿されたコメント

HTML文法 不許可

Calendar

RSS Feeds

最近の 10 Entries

Links

Navigation

Search