從原始碼開始建構

本文件說明如何建構 XLA 元件。

如果您並未複製 XLA 存放區或安裝 Bazel,請查看 README 文件的「開始使用」部分。

Linux

設定

XLA 建構是由存放區根目錄中的 .bazelrc 檔案設定。./configure./configure.py 指令碼可用來調整常用設定。

如要變更設定,請從存放區的根目錄執行 ./configure 指令碼。這個指令碼會提示您輸入 XLA 依附元件的位置,並要求其他建構設定選項 (例如編譯器旗標)。詳情請參閱「工作階段範例」一節。

./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/...

如要在不使用 Docker 的情況下建構支援 GPU 的 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 映像檔,請參閱這份文件