Xây dựng từ nguồn

Tài liệu này mô tả cách xây dựng các thành phần XLA.

Nếu bạn không sao chép kho lưu trữ XLA hoặc cài đặt Bazel, vui lòng xem phần "Bắt đầu" của tài liệu README.

Linux

Định cấu hình

Các bản dựng XLA được định cấu hình bằng tệp .bazelrc trong thư mục gốc của kho lưu trữ. Bạn có thể sử dụng tập lệnh ./configure hoặc ./configure.py để điều chỉnh các chế độ cài đặt chung.

Nếu bạn cần thay đổi cấu hình, hãy chạy tập lệnh ./configure trong thư mục gốc của kho lưu trữ. Tập lệnh này sẽ nhắc bạn về vị trí của các phần phụ thuộc XLA và yêu cầu các tuỳ chọn cấu hình bản dựng bổ sung (ví dụ: cờ trình biên dịch). Tham khảo phần Phiên mẫu để biết thông tin chi tiết.

./configure

Ngoài ra, còn có phiên bản python của tập lệnh này, ./configure.py. Nếu bạn sử dụng môi trường ảo, python configure.py sẽ ưu tiên các đường dẫn trong môi trường, còn ./configure sẽ ưu tiên các đường dẫn bên ngoài môi trường. Trong cả hai trường hợp, bạn đều có thể thay đổi giá trị mặc định.

Hỗ trợ CPU

Bạn nên sử dụng một vùng chứa Docker phù hợp để tạo/kiểm thử XLA, chẳng hạn như vùng chứa Docker của TensorFlow:

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

Khi sử dụng vùng chứa Docker, bạn có thể tạo XLA có hỗ trợ CPU bằng các lệnh sau:

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

Nếu muốn xây dựng các mục tiêu XLA có hỗ trợ CPU mà không cần Docker, bạn cần cài đặt gcc-10:

apt install gcc-10 g++-10

Sau đó, hãy định cấu hình và tạo mục tiêu bằng các lệnh sau:

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

Hỗ trợ GPU

Bạn nên sử dụng vùng chứa Docker của GPU để tạo XLA có hỗ trợ GPU, chẳng hạn như:

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

Để xây dựng XLA có hỗ trợ GPU, hãy sử dụng lệnh sau:

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

Nếu muốn xây dựng mục tiêu XLA có hỗ trợ GPU mà không cần Docker, bạn cần cài đặt thêm các phần phụ thuộc sau vào các phần phụ thuộc CPU: cuda-11.2, cuDNN-8.1.

Sau đó, hãy định cấu hình và tạo mục tiêu bằng các lệnh sau:

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

Để biết thêm thông tin chi tiết về hình ảnh Docker của GPU của TensorFlow, bạn có thể xem tài liệu này.