PyPyの論文つぶやき

動的言語、JITの研究している知人がPyPyの論文読みながらつぶやいてたので、まとめとく。
15
前へ 1 ・・ 5 6
くまぎ @kumagi

@chlere 公式のHSP VMもHSPコードを解釈して動くVM(確かC++実装)のはずなので、RPythonから変換して作った「HSPコードを解釈して動くVMバイナリ」と同じぐらいの速度しかでなくても不思議はないのです。

2011-11-03 14:35:24
くまぎ @kumagi

PyPyのtrunkなどなどとCPythonの速度差を計測する事を目的としたサイト http://t.co/QD7ugI3V ベンチマークもインタフェースも豪華で驚く

2011-11-03 14:42:28
Ryotaro Ikeda @chlere

@kumagi PyPyのトランスレータは変換の為のSource-to-Sourceコンパイラなので、むしろRPythonからCに変換したものがC++と「同等」ならそれはそれでとても凄い事です #pypyja

2011-11-03 14:43:55
くまぎ @kumagi

@chlere あ、はい。遅くなりこそすれ速くなる道理は無いと思うのですが、それがどうやったら本家(CPythonやC++HSP)を超えた速度が出うるのか…hintingというものがそんなに効く物なんですか…?

2011-11-03 14:47:04
Ryotaro Ikeda @chlere

PyPyの説明を文面で行う事が困難であることの理由として、PyPyはそれ自体が色々な概念の集合体であるため表現に多態性が生まれてしまうことにあると思う。

2011-11-03 14:47:13
Ryotaro Ikeda @chlere

@kumagi あれ、もしかして、失礼ですがJITコンパイラがどういうものかについてはご存知ですか?

2011-11-03 14:47:59
くまぎ @kumagi

@chlere インタプリタ実行する際に、コードの一部を機械語にコンパイルして実行する事でコードの解釈に掛かる時間をまとめて前払いする手法だと思ってたのですが違いますか?

2011-11-03 14:51:18
Ryotaro Ikeda @chlere

実際hintingはものすごく(メタな部分しか見られないというデメリットと手軽さによって得られるメリットを考慮して)効く。「元々はJITコンパイラの簡易版のつもりだったけどやがてそれでしか適応でき得ない最適化が見つかった」ということで単純には比べられなくなっている。#pypyja

2011-11-03 14:53:24
Ryotaro Ikeda @chlere

@kumagi そうです。C++で書かれたHSPのインタプリタは、「HSPで書かれたプログラムをエミュレートする処理」をC++で処理するのに対し、PyPyでJIT付与で作られたHSPインタプリタでJITコンパイルされた部分は「HSPで書かれた処理」をC++で処理できますよね。

2011-11-03 14:55:21
くまぎ @kumagi

@chlere 最後のところはC++じゃなくてCでしょうか。 「HSPインタプリタ」をJIT実行することが「HSPコード」のJIT実行と同じぐらいになる、という事ですか?

2011-11-03 14:59:29
Ryotaro Ikeda @chlere

@kumagi Cですねすみません。うーん、同じぐらいになるかどうかは分かりません(アプローチの方法が違うので全てのプログラムに対して等価かどうかは言えない)が、少なくとも同じ土俵で張れるというところがPyPyが騒がれている一番の理由じゃないでしょうか。

2011-11-03 15:04:59
Ryotaro Ikeda @chlere

JITをインプレするには色々チューニングが必要なので、単純にHSPのJITがそこまで優秀じゃないか、それかHSPがlanguage-specificなJITコンパイラに向いていないという議論もできる。

2011-11-03 15:07:40
Ryotaro Ikeda @chlere

PyPyの持つ「Meta Tracing」のメリットは、「深い所までは入り込めないけどそのかわり全域に渡ってJITを利かせられるよ」という所なので、それがHSPにクリティカルに適合して従来手法で作成されたJITよりも性能が出てしまった、なんてことも無くは無い #pypyja

2011-11-03 15:09:15
くまぎ @kumagi

@chlere HSPのJIT実行環境ってのはRPythonで書いたHSPインタプリタの事ですか。

2011-11-03 15:22:13
前へ 1 ・・ 5 6