2017-02-24 7 views
1

最新のビデオ "XLA:TensorFlow、Compiled!" 2017 TensorFlow Devのサミットから、プレゼンターはiPythonに似ており、JIT'edアセンブリを閲覧することができるシェルを示しています https://youtu.be/kAOanJczHA0?t=2m32sXLAデモで表示されるTensorFlow Shellの起動方法

、私は他のいくつかのために生成されたアセンブリを表示することができるようにデモを再作成しようとしていますサンプルコード。

私はシェルがTensorFlowをインポートしてiPythonシェルにドロップするラッパーだとしますか? 私は、次のようなスクリプトを起動してみました:

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

としてシェルに落下:

import IPython; IPython.embed() 

しかし、私は、デモのコードスニペットを再作成しようとしたときにアセンブリが表示されません。誰かがそれを再現するのを助けることができる?

ありがとうございます!

+0

私はそれが彼らが持っている内部ツールだと思います。それらのコマンドを見つけるためにソースコードを探していましたが、参照が見つかりませんでした – fabrizioM

答えて

2

"vmodule"ロギングjust landed in open source TensorFlowをサポートしているため、特定の翻訳単位でロギングを有効にしてアセンブリを表示することができます。オープンソースのTensorFlowは一般的にフラグを使用しないため、代わりにこのデバッグ指向の動作の一部を制御するための環境変数があります。私は頭で構築されており、GCE VM上で実行しました:

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

そして、それは、ビデオのように、PTX(仮想)アセンブリを吐き出す:

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]

を同様にするためにCPU:

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

が生成されます

[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

あなたは、TensorFlowをインポートしてiPythonシェルにドロップするラッパーであることは間違いありません。

現在、XLAをサポートするTensorFlowのバージョンを取得するには、ソースからTensorFlowをコンパイルする必要があります。 ./configureを実行すると、XLAを有効にするかどうかを尋ねられ、Y(yes)に応答する必要があります。

私たちはデフォルトでXLAを有効にするよう努めていますが、それは現時点で必要なことです。お役に立てれば!

関連する問題