[前][次][番号順一覧][スレッド一覧][生データ]

yarv-dev:348

From: Yukihiro Matsumoto <matz ruby-lang.org>
Date: Mon, 6 Dec 2004 09:06:04 +0900
Subject: [yarv-dev:348] Re: Operand unification

まつもと ゆきひろです

In message "Re: [yarv-dev:346] Operand unification"
    on Mon, 06 Dec 2004 07:34:52 +0900, SASADA Koichi <ko1 atdot.net> writes:

| そこで、自暴自棄になった私は、無駄な命令をどんどん突っ込んでみること
|にしました。つまり、ある命令 A があったとき、A_1 、A_2、...のように、
|違う名前で同じ命令をどんどん突っ込んでみたのです(具体的には、ひとつの
|命令につき、10 の無駄な命令を作りました)。ただし、無駄な命令は、何も
|動作しない命令にしてみました(本当は、複製を複数作ろうとしたのだけれ
|ど、プログラムをミスって(ボディ部を複製するのを忘れていて)エントリポ
|イントだけになりました。replication も試してみたかったんですが)。する
|とどうしたことでしょう。gcc でコンパイルした結果が、非常に高速になった
|ではありませんか。(しつこいか)
|
| これは、gcc の場合だけだったのですが(VCではならず)、非常に不思議で
|す。命令統合については、残念ながら、あんまり芳しい結果にはならなかった
|のですが(でも、この命令を増やした後では少し速くなる(1.27 -> 1.17
|(sec)))、命令を凄く増加させることで、かなりの高速化が果たせました
|(1.53->1.27(sec))。
|
| かなり不思議です。

Anton Ertl (Vmgenの偉い人)がコードコピーでBTB (Branch target
buffer)のミスが減ってパフォーマンスが上がるって論文を書いて
たように思います。でも、今Googleしても見つかりません。IMVEの
論文だと思ってたけど、違うみたい。ACM SIGPLANのどこかだと思
うのですが。

今回の現象と関係あるかどうかは分かりません。

これかも↓ PLDI'03か。

http://www.eecg.toronto.edu/~steffan/carg/readings/optimizing-indirect-branch-prediction.pdf

--
ML: yarv-dev quickml.atdot.net
使い方: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧][生データ]

       346 2004-12-06 07:34 [ko1 atdot.net       ] Operand unification                     
       347 2004-12-06 08:55 ┣[ko1 atdot.net       ]                                       
->     348 2004-12-06 09:06 ┣[matz ruby-lang.org  ]                                       
       349 2004-12-06 09:10 ┃┗[ko1 atdot.net       ]                                     
       350 2004-12-06 11:25 ┗[shudo computer.org  ]                                       
       351 2004-12-06 16:47  ┗[ko1 atdot.net       ]