从源代码构建

本文档介绍了如何构建 XLA 组件。

如果您没有克隆 XLA 代码库或安装 Bazel,请查看 README 文档的“使用入门”部分。

Linux

配置

XLA build 由代码库根目录中的 .bazelrc 文件配置。./configure./configure.py 脚本可用于调整常用设置。

如果需要更改配置,请从代码库的根目录运行 ./configure 脚本。此脚本将提示您输入 XLA 依赖项的位置,并要求提供其他 build 配置选项(例如,编译器标志)。如需了解详情,请参阅示例会话部分。

./configure

这个脚本也有 Python 版本 ./configure.py。如果使用的是虚拟环境,python configure.py 会优先处理环境中的路径,而 ./configure 会优先考虑环境外的路径。在这两种情况下,您都可以更改默认值。

CPU 支持

我们建议使用合适的 Docker 容器来构建/测试 XLA,例如 TensorFlow 的 Docker 容器

docker run --name xla -w /xla -it -d --rm -v $PWD:/xla tensorflow/tensorflow:latest-gpu bash

借助 Docker 容器,您可以使用以下命令构建支持 CPU 的 XLA:

docker exec xla ./configure
docker exec xla bazel build //xla/...  --spawn_strategy=sandboxed --test_output=all

如果您想在没有 Docker 的情况下构建支持 CPU 的 XLA 目标,则需要安装 gcc-10:

apt install gcc-10 g++-10

然后使用以下命令配置和构建目标:

yes '' | GCC_HOST_COMPILER_PATH=/usr/bin/gcc-10 CC=/usr/bin/gcc-10 TF_NEED_ROCM=0 TF_NEED_CUDA=0 TF_CUDA_CLANG=0 ./configure

bazel build --test_output=all --spawn_strategy=sandboxed //xla/...

GPU 支持

我们建议使用 GPU Docker 容器构建支持 GPU 的 XLA,例如:

docker run --name xla_gpu -w /xla -it -d --rm -v $PWD:/xla tensorflow/tensorflow:devel-gpu bash

如需构建支持 GPU 的 XLA,请使用以下命令:

docker exec -e TF_NEED_CUDA=1 xla_gpu ./configure
docker exec xla_gpu bazel build --test_output=all --spawn_strategy=sandboxed //xla/...

如果您想构建支持 GPU 且不使用 Docker 的 XLA 目标,则需要安装除 CPU 依赖项之外的以下依赖项:cuda-11.2cuDNN-8.1

然后使用以下命令配置和构建目标:

yes '' | GCC_HOST_COMPILER_PATH=/usr/bin/gcc-10 CC=/usr/bin/gcc-10 TF_NEED_ROCM=0 TF_NEED_CUDA=1 TF_CUDA_CLANG=0 ./configure

bazel build --test_output=all --spawn_strategy=sandboxed //xla/...

如需详细了解 TensorFlow 的 GPU Docker 映像,您可以参阅此文档。