TensorFlow 1.0がリリースされましたね。
その中で、TensorFlow XLAなるものも正式発表されました。
詳細は、XLA: TensorFlow, Compiled!に、約50分の説明があります。
追記)、2017.4.1
QItta:Tensorflow XLAによる高速化、メモリ効率化、サイズの最適化によるポータビリティ向上について
追記)、2017.4.1
QItta:Tensorflow XLAによる高速化、メモリ効率化、サイズの最適化によるポータビリティ向上について
XLAは、RC 1.0の時点で公開されていました。
Hacker Newsでも取り上げています。
TensorFlowはあくまでも学習側のためと思っていたので、
全くフォローできていませんでした。
全くフォローできていませんでした。
TensorFlow 1.0では、XLA単体だけでなく、tfcompile というツールもリリーリされています。
・学習側で作り込んだグラフとそれに伴うパラメータを ・XLAを使って、実際には、tfcompileを使って、 ・TensorFlow表記をCPUの実行コードに変換できるようになったわけですよ。
これ、あたしにとっては、めっちゃ、衝撃でしたよ。
通常は、TensorFlow Runtime上で動いています。
TensorFlow Runtimeのオーバーヘッド(実行時間およびメモリ容量)がありますが、
XLAによって、CPUの実行プログラムに変換するのでTensorFlow Runtimeを使わないんですよ。
つまり、TensorFlow Runtimeのオーバーヘッドが無くなるということなんですよ。
これにより、
スマホや組み込みシステム内のCPUコアでもTensorFlowのコードが動いちゃうんですよね。
TensorFlow Runtimeのオーバーヘッド(実行時間およびメモリ容量)がありますが、
XLAによって、CPUの実行プログラムに変換するのでTensorFlow Runtimeを使わないんですよ。
つまり、TensorFlow Runtimeのオーバーヘッドが無くなるということなんですよ。
これにより、
スマホや組み込みシステム内のCPUコアでもTensorFlowのコードが動いちゃうんですよね。
pipでTensorFlowでインストールしても tfcompile はインストールできないので、
下記のようにソースコードからビルドします。
下記のようにソースコードからビルドします。
ソースコードを github から clone します。 % git clone https://github.com/tensorflow/tensorflow.git configure で準備をします。このとき、XLAを有効にします。 % ./configure ... Do you wish to build TensorFlow with the XLA just-in-time compiler (experimental)? [y/N] で、y を入力する必要があります。 bazel で tfcompile をビルドします。 % bazel build //tensorflow/compiler/aot:tfcompile
中原先生のツールフローを使えば、
TensorFlowなどからFPGA(Xilinx/Intel)にマッピングできますが、
CPUへのマッピングがこのTensorFlow XLAを使えばできるんですよ。
TensorFlowなどからFPGA(Xilinx/Intel)にマッピングできますが、
CPUへのマッピングがこのTensorFlow XLAを使えばできるんですよ。
XLA Overviewの最初にも書いてありますが、
Hardware Accelerators
にも適用していけるんですよね。例えば、Google TPU (Tensor Processing Unit)とかに。3月は無理かもしれないけど、4月ぐらいまでには。。。