NM #34 - Halide Tutorial Leasson 03 -
05:18. 前日が定例家族会議で遅寝のため.
- 生成されたコードを見る・・・Bazel/AOT 勢なのでこのままだとダメだが、なんか build rule のオプションに指定できた気がするな。
- halide_library の extra_outputs に "html" を追加すればよい。
- 同様に codegen_debug_level attribute も指定できる。2 にすると LLVM の bitcode もダンプされる。しかしファイルに書かれるのではなくビルド中にデバッグ出力に出てくる。突然の手抜き・・・。まあ Halide 本体の開発者以外は使わないのだろうな。
- しょうじき Halide 自体の IR もよくわからん。参考のために gist に貼っておく。produce, parallel, for とかがなにしてるのかわからないとだめだね。
- デバッグのやりかた。うーむなんか AOT 方式色々やりにくいな。JIT できないものか・・・。
- できた。若干 Bazel リテラシーを要求されるね当たり前だけど。そして実際に使うなら JIT も AOT も両方欲しい気がする。プロダクションで JIT しなくても、開発中につつくには JIT の方がラク。というのは JIT しながらつつく前提で色々デバッグ用の関数が用意されてるから。
- 一方で AOT するにはビルドが複雑になりがちなのでそこに Bazel rule を提供してるのは正しい気がする。
- しかし Python で触りたい類のコードだよなーこれ。がんばって PIP してくれないもんかなー・・・。
Leasson 05 途中で時間切れ。