TensorFlow XLA
2017年3月29日 (水) 07:52時点における103.22.200.102 (トーク)による版 (ページの作成:「'''XLA''' (Accelerated Linear Algebra)とは、TensorFlow 1.0に実験搭載された中間コードコンパイラである。 == 概要 == 旧来のTensorFlowで...」)
XLA (Accelerated Linear Algebra)とは、TensorFlow 1.0に実験搭載された中間コードコンパイラである。
目次
概要
旧来のTensorFlowでは実行環境のCPUやGPUを変更するたびに常に最速で動くようソースコードからリビルドするのが普通であった。TensorFlowの環境をCPU版で作ってみたが遅すぎるので、GPU版をインストールなどという馬鹿げたことをやっていた。
XLAの登場によりその手間が全自動化(JITコンパイル)される。ほとんどの環境ではXLA自体によるパフォーマンスの大きな変化は見られないが、実行環境を変えた際の手間が大きく省かれる。
利点
実行速度の改善
従来はプログラマの書いたものが素直に実行されているが、将来的にはXLAに最適化が搭載される予定となっている。 なお、現状ではほとんどの環境でXLA自体によるパフォーマンスの大きな変化は見られない。
現状で影響が大きいのはXLAのJITコンパイル機構により実行環境を変えた際の手間が大きく省かれる点である。従来は実行環境のSSEやAVX、GPUの有無などにあわせTensorFlowをソースコードからリビルドしていたが、そんな馬鹿げた作業がなくなった。そのためMacやUbuntuなどではTensorFlowのパッケージを入れれば環境構築完了となる。
メモリ使用量の改善
メモリ使用量を監視して最適化する機構がついたらしい。 とくに変化は見られない。
移植性の向上
一部のアルゴリズムでは特定のハードウェアに依存した命令を使って記述されたものがあったが、それらを排除する目的もあるらしい。かつてOpenGLがやらかした依存命令の排除である。
その他
公式サイトを見よう。