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