Split Compilation: an Application to Just-in-Time Vectorization

by syoyo

Split Compilation: an Application to Just-in-Time Vectorization,
Piotr Lesnicki, Albert Cohen, Grigori Fursin, Marco Cornero, Andrea Ornstein, and Erven Rohou,
GREPS 2007 Workshop
http://sysrun.haifa.il.ibm.com/hrl/greps2007/

ポータブルな中間言語(CIL)を導入し、最適化指示子はアノテーションで CIL に仕込んでおき、
ランタイム時のプロファイルやアノテーションを参考にして、
JIT コンパイルでポータブルバイトコードから最適化ネイティブコードを生成するというもの.

バイトコードはポータブルなままにできるという特徴がある.

まあなんかポータブルな中間形式を用意して… というフレームワークとしては、
LLVM ですでに出来ているような感じがしますが、
著者らはいずれ gcc と統合して、 gcc -> CIL(CLI) -> JIT というのを考えているらしい.
http://gcc.gnu.org/projects/cli.html

将来的には、CIL から GPU などへの並列プロセッサへのバックエンドを作ったり、
アノテーション情報をつかって JIT コンパイル時のレジスタ割当ての高速化を考えているとのこと.

本論文にかぎらず、パフォーマンスのためにはアノテーションは有効だと思うので、
MUDA にもなにかしらアノテーションを仕込める仕組みを作りたいと思う.

Advertisements