2017-02-24 5 views
1

In dem letzten Video "XLA: TensorFlow, Compiled!" vom 2017 TensorFlow Dev Summit, zeigt der Moderator eine Schale, die ipython und ist in der Lage zu sehen, die JIT'ed Anordnung ähnelt: https://youtu.be/kAOanJczHA0?t=2m32sSo starten Sie TensorFlow Shell in XLA Demo gezeigt

Ich versuche, die Demo zu erstellen, damit ich zeigen die generierte Assembly für eine andere Beispielcode.

Ich nehme an, die Shell ist nur ein Wrapper, der TensorFlow importiert und auf eine iPython-Shell fällt? Ich versuchte, startet ein Skript wie:

$ TF_XLA_FLAGS=--xla_dump_assembly=true python mnist_softmax_xla.py 

und fallen auf eine Shell mit:

import IPython; IPython.embed() 

Aber wenn ich das Code-Snippet in der Demo erstellen versuchen, wird die Baugruppe nicht angezeigt. Kann jemand helfen, es zu reproduzieren?

Danke!

+0

Ich denke, das ist ein internes Werkzeug, das sie haben. Ich habe im Quellcode nach diesen Befehlen gesucht und konnte keine Referenzen finden – fabrizioM

Antwort

2

Unterstützung für "vmodule" Protokollierung just landed in open source TensorFlow, so ist es möglich, die Anmeldung in bestimmten Übersetzungseinheiten zu aktivieren, um die Baugruppe zu sehen. Open Source TensorFlow verwendet normalerweise keine Flags, daher gibt es einige Umgebungsvariablen, um einige dieser Debug-orientierten Verhaltensweisen zu steuern. Ich habe gerade an Kopf gebaut und lief auf einem GCE VM:

[email protected]:~/tensorflow$ TF_CPP_VMODULE=gpu_compiler=3 bazel-bin/tensorflow/compiler/xla/tests/while_test_gpu

Und das spuckt, wie in dem Video, das PTX (virtuelle) Montag:

2017-08-05 05:45:07.030245: I tensorflow/compiler/xla/service/gpu/gpu_compiler.cc:349] .version 4.2 2017-08-05 05:45:07.030252: I tensorflow/compiler/xla/service/gpu/gpu_compiler.cc:349] .target sm_37 2017-08-05 05:45:07.030257: I tensorflow/compiler/xla/service/gpu/gpu_compiler.cc:349] .address_size 64 2017-08-05 05:45:07.030263: I tensorflow/compiler/xla/service/gpu/gpu_compiler.cc:349] 2017-08-05 05:45:07.030269: I tensorflow/compiler/xla/service/gpu/gpu_compiler.cc:349] // .globl _greater_than 2017-08-05 05:45:07.030275: I tensorflow/compiler/xla/service/gpu/gpu_compiler.cc:349] 2017-08-05 05:45:07.030281: I tensorflow/compiler/xla/service/gpu/gpu_compiler.cc:349] .visible .entry _greater_than( 2017-08-05 05:45:07.030293: I tensorflow/compiler/xla/service/gpu/gpu_compiler.cc:349] .param .u64 _greater_than_param_0, 2017-08-05 05:45:07.030300: I tensorflow/compiler/xla/service/gpu/gpu_compiler.cc:349] .param .u64 _greater_than_param_1 [snip]

Auch für CPU:

[email protected]:~/tensorflow$ TF_CPP_VMODULE=compiler_functor=3 bazel-bin/tensorflow/compiler/xla/tests/while_test_cpu

Produziert:

[snip] 2017-08-05 05:49:43.819213: I tensorflow/compiler/xla/service/cpu/compiler_functor.cc:121] NestedWhileWithScalarResult.v2: 2017-08-05 05:49:43.819244: I tensorflow/compiler/xla/service/cpu/compiler_functor.cc:121] 0x00000000 movq (%rcx), %rax 2017-08-05 05:49:43.819256: I tensorflow/compiler/xla/service/cpu/compiler_functor.cc:121] 0x00000003 movl $0, (%rax) 2017-08-05 05:49:43.819263: I tensorflow/compiler/xla/service/cpu/compiler_functor.cc:121] 0x00000009 movq 8(%rcx), %rcx 2017-08-05 05:49:43.819284: I tensorflow/compiler/xla/service/cpu/compiler_functor.cc:121] 0x0000000d nopl (%rax) 2017-08-05 05:49:43.819299: I tensorflow/compiler/xla/service/cpu/compiler_functor.cc:121] 0x00000010 movq %rcx, 16(%rcx) 2017-08-05 05:49:43.819314: I tensorflow/compiler/xla/service/cpu/compiler_functor.cc:121] 0x00000014 movq %rax, 24(%rcx) [snip]

HTH!

1

Sie haben recht, dass die Shell nur ein Wrapper ist, der TensorFlow importiert und in eine iPython-Shell einfügt.

Beachten Sie, dass im Moment, um eine Version von TensorFlow zu erhalten, die XLA unterstützt, Sie TensorFlow aus der Quelle kompilieren müssen. Wenn Sie ./configure ausführen, werden Sie gefragt, ob XLA aktiviert werden soll, und Sie müssen Y (yes) antworten.

Wir arbeiten hart daran, XLA standardmäßig zu aktivieren, aber das ist im Moment notwendig. Hoffe das hilft!

Verwandte Themen