如何启动XLA演示中显示的TensorFlow Shell

时间:2017-02-24 18:59:48

标签: tensorflow

在最近的视频" XLA:TensorFlow,Compiled!"在2017年TensorFlow开发者峰会上,主持人展示了一个类似于iPython的外壳,并且能够查看JIT组装: https://youtu.be/kAOanJczHA0?t=2m32s

我正在尝试重新创建演示,因此我可以为其他示例代码显示生成的程序集。

我认为shell只是一个导入TensorFlow并丢弃到iPython shell的包装器? 我尝试启动一个脚本,例如:

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

并使用以下命令删除shell:

import IPython; IPython.embed()

但是当我尝试在演示中重新创建代码片段时,不会显示该程序集。任何人都可以帮助重现它吗?

谢谢!

2 个答案:

答案 0 :(得分:3)

支持" vmodule"记录just landed in open source TensorFlow,因此可以启用特定翻译单元的日志记录以查看程序集。开源TensorFlow通常不使用标志,因此有一些环境变量可用于控制这种面向调试的行为。我刚刚在头部建造并在GCE VM上运行:

kubectl

然后就像在视频中一样吐出PTX(虚拟)程序集:

cdleary@instance-1:~/tensorflow$ TF_CPP_VMODULE=gpu_compiler=3 bazel-bin/tensorflow/compiler/xla/tests/while_test_gpu

同样,对于CPU:

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]

产地:

cdleary@instance-1:~/tensorflow$ TF_CPP_VMODULE=compiler_functor=3 bazel-bin/tensorflow/compiler/xla/tests/while_test_cpu

HTH!

答案 1 :(得分:1)

你是对的,shell只是一个导入TensorFlow并掉入iPython shell的包装器。

请注意,目前,为了获得支持XLA的TensorFlow版本,您需要从源代码编译TensorFlow。当你运行./configure时,系统会询问你是否启用XLA,你需要回答Y(是)。

我们正在努力默认启用XLA,但这是目前所需要的。希望这有帮助!