2008年11月7日の日記を表示中

2008年11月 7日 (金)

spu-gcc-4.3でコンパイルしたバイナリ

とりあえず celltripper-0.3 でベンチマークしてみました.4.1.1 のときは以下のアラインメントとかのオプションをあれこれつけてちまちまとチューニングしてました.

-O3 -funroll-loops \
-falign-functions=16 -falign-labels=8 -falign-jumps=16 \
--param max-inline-insns-single=32000 \
--param large-function-growth=8000 \
--param inline-unit-growth=600

で,GCC-4.1.1 でコンパイルしたバイナリの実行結果はこんな感じ.average が1秒間に処理した平均トリップ数になります.

searched: 286778400 trip(s)
time: 30.137060 sec.
average: 9515K trips/sec

これと同じオプションのまま GCC-4.3.2 でコンパイルしてみたところ,trip_search という関数がインライン展開されなくなった上に 8% くらい速度低下 (´・ω・`).うわー.

searched: 264252000 trip(s)
time: 30.200640 sec.
average: 8749K trips/sec

が,試しに「-O3 -funroll-loops」だけでコンパイルしてみたら 5% 弱くらい処理能力が向上.なんだ,すごいじゃん.ちなみにインライン展開はされてません.

searched: 300212160 trip(s)
time: 30.173065 sec.
average: 9949K trips/sec

これに去年ヒタヒタさんがつけてた「-msmall-memory」とかつければより高速化したりしちゃうのかな? wktk しながら試してみたらエラー (´・ω・`).そんなオプションないらしい.manを見たら似たようなオプションで「-msmall-mem」というのがあったのでとりあえずこれを足して試してみる・・・

searched: 300212160 trip(s)
time: 30.172928 sec.
average: 9949K trips/sec

何も変わっていない (;´Д`).・・・お,「-mlarge-mem」ってのもあるのか.こっちははどうかな・・…

searched: 302373600 trip(s)
time: 30.148588 sec.
average: 10029K trips/sec

10M/sec キタ━━━━(゜∀゜)━━━━ッ!! こりゃすげえw.ていうかこのオプションは何なんですかね.・・・ほう,使えるアドレスの範囲を 18bit から 32bit に広げるのか.なるほど,将来登場するかもしれない LS が 256k よりでかい環境とか MMU がついたアドレス空間のでかい NUMA っぽい環境とかに備えるためかな.・・・ってなんでこれで速くなるのかわからんぞ (;´Д`). いやそれ以前に LS が 256k の環境にこれ適用しちゃって大丈夫なのか?

2008年11月7日の日記を表示中

中の人情報

名前:
nosuke (のすけ)
メール:
sasugaanijaのgmail.com
「の」は「@」みたいな
関連リンク:

カレンダー

2008年11月
            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            

<<先月分

翌月分>>

最新の10件のエントリ

最近の10件のコメント

過去ログ