2017-05-22 3 views
0

Je suis en train le tutoriel XLA décrit ici: https://www.tensorflow.org/performance/xla/jittensorflow: XLA ne fonctionne pas avec "Invalid argument: Non _XlaCompile" erreurs

Je suis en mnist_softmax_xla.py de https://raw.githubusercontent.com/tensorflow/tensorflow/r1.1/tensorflow/examples/tutorials/mnist/mnist_softmax_xla.py avec les options suivantes:

TF_CPP_MIN_VLOG_LEVEL=2 TF_XLA_FLAGS='--xla_generate_hlo_graph=.*' python mnist_softmax_xla.py

Malheureusement, je reçois un tas de "Erreur de créateur personnalisé: Argument invalide: Pas d'erreurs _XlaCompile for Const" dans la sortie (et même pour tous les autres types d'op). De plus, aucun fichier hlo_graph_xx.dot n'est créé (comme le dit le didacticiel).

Mon installation python est Anaconda 4.3.1 (Anaconda3-4.3.1-Linux-x86_64.sh) sur Ubuntu 16.04 LTS.

tensorflow est une version 1.1.0 compilée à partir de la source avec les commandes suivantes:

$ echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list 
$ curl https://bazel.build/bazel-release.pub.gpg | sudo apt-key add - 
$ sudo apt-get update && sudo apt-get install bazel 

$ git clone https://github.com/tensorflow/tensorflow 
$ cd tensorflow/ 
$ git checkout v1.1.0 
$ ./configure 

Please specify the location of python. [Default is /home/ubuntu/anaconda3/bin/python]: 
Please specify optimization flags to use during compilation when bazel option "--config=opt" is specified [Default is -march=native]: 
Do you wish to use jemalloc as the malloc implementation? [Y/n] 
jemalloc enabled 
Do you wish to build TensorFlow with Google Cloud Platform support? [y/N] 
No Google Cloud Platform support will be enabled for TensorFlow 
Do you wish to build TensorFlow with Hadoop File System support? [y/N] 
No Hadoop File System support will be enabled for TensorFlow 
Do you wish to build TensorFlow with the XLA just-in-time compiler (experimental)? [y/N] y 
XLA JIT support will be enabled for TensorFlow 
Found possible Python library paths: 
    /home/ubuntu/anaconda3/lib/python3.6/site-packages 
Please input the desired Python library path to use. Default is [/home/ubuntu/anaconda3/lib/python3.6/site-packages] 

Using python library path: /home/ubuntu/anaconda3/lib/python3.6/site-packages 
Do you wish to build TensorFlow with OpenCL support? [y/N] 
No OpenCL support will be enabled for TensorFlow 
Do you wish to build TensorFlow with CUDA support? [y/N] 
No CUDA support will be enabled for TensorFlow 
Configuration finished 
............ 
INFO: Starting clean (this may take a while). Consider using --expunge_async if the clean takes more than several minutes. 
........... 
INFO: All external dependencies fetched successfully. 

$ bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package 
$ bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg 
$ pip install /tmp/tensorflow_pkg/tensorflow-1.1.0-cp36-cp36m-linux_x86_64.whl 

Pourquoi XLA fonctionne pas avec cette configuration? Comment puis-je installer TensorFlow avec XLA en état de marche?

Répondre

0

Résolu!

La raison est une petite note obscure dans le tutoriel XLA:

Note: Turning on JIT at the session level will not result in operations being compiled for the CPU. JIT compilation for CPU operations must be done via the manual method documented below. This decision was made due to the CPU backend being single-threaded.

Cela ne fonctionne pas avec CPU:

config = tf.ConfigProto() 
config.graph_options.optimizer_options.global_jit_level = tf.OptimizerOptions.ON_1 
sess = tf.Session(config=config) 
... 

Cela fonctionne sur le processeur (et le GPU ainsi) :

jit_scope = tf.contrib.compiler.jit.experimental_jit_scope 
with jit_scope(): 
    ...