如何在Tensorflow分发中使用Tensorflow XLA AOT支持

3
Tensorflow 1.0引入了XLA支持,包括即时编译和预编译。对于即时编译,我发现一个Python测试脚本可以进行单元测试。但是,我没有找到任何用于预编译的Python测试。虽然有bazel测试可以在源代码树上运行。 Tensorflow的链接https://www.tensorflow.org/performance/xla/tfcompile提供了如何测试的信息。但是tfcompile并没有成为tensorflow的分发内容。我可能错了。但是我在TF的安装目录中没有看到tfcompile的任何地方。 请问有人能帮助我理解如何在现有的分发内容上测试预编译,或者我需要调整一些代码以允许预编译的东西进入分发吗? 谢谢。

1
二进制文件的目标是//tensorflow/compiler/aot:tfcompile(我在tensorflow/compiler/aot/tfcompile.bzl中看到了参考)。您需要自己构建此二进制文件,因为XLA是实验性的,因此JIT / AOT位未包含在官方发布中。 - Yaroslav Bulatov
正如您建议的那样,我已经在tensorflow/tensorflow/tool/pip_package/BUILD中的build_pip_package目标中添加了//tensorflow/compiler/aot:tfcompile。tfcompile也已经构建完成,并且在bazel-out目录中找到了一个二进制文件。但是这个二进制文件没有被添加到wheel文件中。我是否遗漏了任何更改?这就是我一直在将其他内容添加到我的wheel文件中的方式。但不知何故,tfcompile无法工作。请帮助我。 - nishidha panpaliya
那可能是默认设置--由于它是实验性的,将东西放入Wheel文件的脚本明确地排除了它。 - Yaroslav Bulatov
请问有谁能帮我找出tfcompile在pip包中被排除的具体位置?或者我需要做什么来明确地将其添加到pip包中?我已经将上述构建目标添加到tools/pip_package/BUILD文件中。 - nishidha panpaliya
也许你可以使用tfcompile二进制文件自己创建pip包? - Yaroslav Bulatov
显示剩余3条评论
1个回答

0

我知道你特别关心AOT,但我建议你先阅读这个页面:https://www.tensorflow.org/performance/xla/

然后再阅读这个页面:https://www.tensorflow.org/performance/xla/jit

特别要注意的是,XLA不包含在我们的二进制发行版中;目前必须从源代码构建。请注意,在运行./configure时,您必须选择“启用XLA”才能启用XLA支持。

一旦你做到了这一点,Yaroslav Bulatov的建议是正确的;你可以自己构建二进制文件,或者通过bazel运行测试。


是的。谢谢。我之前已经查看了那些链接,并理解了支持是实验性的,可以在./configure时启用。很抱歉之前没有表达清楚。我自己构建了tensorflow,在配置时启用了XLA支持,并创建了一个wheel文件。因此,通过分发,我指的是安装的TF,其.whl文件是通过构建源代码创建的。尽管启用了XLA,但在安装位置中看不到tfcompile的任何内容。除了bazel测试之外,是否还有任何用于AOT测试的Python测试? - nishidha panpaliya
据我所知,tfcompile是一个独立的程序,从未包含在pip软件包中,尽管如果XLA被包含在PyPI发布中,通过pip软件包使用AOT(如tf.compile(graph)函数或类似功能)会更加方便。 - Carl Thomé

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接