yarv-dev:349
From: SASADA Koichi <ko1 atdot.net>
Date: Mon, 6 Dec 2004 09:10:19 +0900
Subject: [yarv-dev:349] Re: Operand unification
Yukihiro Matsumoto <matz ruby-lang.org> Mon, 06 Dec 2004 09:06:04 +0900 / [yarv-dev:348] Re: Operand unification ささだです。 >| そこで、自暴自棄になった私は、無駄な命令をどんどん突っ込んでみること >|にしました。つまり、ある命令 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 > 私が文中で書いている replication は、この論文の static replication を指しているつもりでした。 これ(static replication)はすぐに試せるから、試してみようかなあ。 -- // SASADA Koichi at atdot dot net // -- 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 ]