chainer-compiler
ChainerのCompiler
github
Chainerモデルのさらなる高速化、デプロイの簡便化、可搬性の向上に向けた実験的な取り組みについて | Preferred Research
chainer-compiler調査(1) · tkat0.github.io
ディレクトリ構成など
https://gyazo.com/b57cd9aea5c0bff84fc8e87c5c244ca7
構成 ref
フロントエンド
Python構文を解釈し、計算グラフを拡張したONNXフォーマットとして取り出す
この部分はONNX-chainerなど他のONNX生成系との代替が可能
グラフコンパイラ
拡張ONNXで表現された計算グラフを変換して、高速化や自動微分を行い、コード生成をする
ターゲットを追加すると汎用的に使えるようにできる
静的グラフを前提としたモデル実行系
用途特化チップ
etc.
バックエンド
ChainerXのC++部分を用いて、生成されたコードを実行する
これのみをデプロイ環境で実行すればPythonのない環境でのデプロイができる
Dockerを使ってbuildする
$ docker build -f Dockerfile.tmpl -t chainer-compiler:cuda-10.0 .
Examples
mnistを読む
ch2o
https://github.com/pfnet-research/chainer-compiler/tree/master/chainer_compiler/ch2o
Pythonを拡張ONNXに変換する
elichika
わからない点
chainer-compilerの他のDNNコンパイラとの違い
TVMは自分でIRを書かないといけない(?)
参考
Chainer-Compiler 動かしてみた
chainer-compiler調査(1) · tkat0.github.io
https://tkat0.github.io/posts/learn-chainer-compiler-2/
https://docs.google.com/presentation/d/1OMhNywhKkImIgYsY42xnTvYUGJqDHc3aZf9JuIQbRSc/edit#slide=id.p5
https://docs.google.com/presentation/d/1GhQCOmp7ebQ2gerxO-8RBB_1F6nMuw1EHDZslbMEV-0/edit#slide=id.p