สร้างจากแหล่งที่มา

เอกสารนี้จะอธิบายวิธีสร้างคอมโพเนนต์ XLA

หากคุณไม่ได้โคลนที่เก็บ XLA หรือติดตั้ง Bazel โปรดดูส่วน "เริ่มต้นใช้งาน" ของเอกสาร README

Linux

กำหนดค่า

บิลด์ XLA จะได้รับการกำหนดค่าโดยไฟล์ .bazelrc ในไดเรกทอรีรูทของที่เก็บ คุณใช้สคริปต์ ./configure หรือ ./configure.py เพื่อปรับการตั้งค่าทั่วไปได้

หากต้องการเปลี่ยนการกำหนดค่า ให้เรียกใช้สคริปต์ ./configure จากไดเรกทอรีรูทของที่เก็บ สคริปต์นี้จะส่งข้อความแจ้งเกี่ยวกับตำแหน่งที่ขึ้นอยู่กับ XLA และขอให้ดูตัวเลือกการกำหนดค่าบิลด์เพิ่มเติม (เช่น แฟล็กคอมไพเลอร์) โปรดดูรายละเอียดในส่วนเซสชันตัวอย่าง

./configure

นอกจากนี้ยังมีสคริปต์ ./configure.py ในเวอร์ชัน Python ด้วย หากใช้สภาพแวดล้อมเสมือน python configure.py จะจัดลําดับความสําคัญของเส้นทางภายในสภาพแวดล้อม ในขณะที่ ./configure จะจัดลําดับความสําคัญของเส้นทางภายนอกสภาพแวดล้อม ในทั้งสองกรณีคุณสามารถเปลี่ยนค่าเริ่มต้นได้

การรองรับ CPU

เราขอแนะนำให้ใช้คอนเทนเนอร์ Docker ที่เหมาะสมในการสร้าง/ทดสอบ XLA เช่น คอนเทนเนอร์ Docker ของ TensorFlow ดังนี้

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

เมื่อใช้คอนเทนเนอร์ Docker คุณจะสร้าง XLA ที่มีการรองรับ CPU ได้โดยใช้คำสั่งต่อไปนี้

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

หากต้องการสร้างเป้าหมาย XLA ที่มีการรองรับ CPU โดยไม่มี Docker คุณต้องติดตั้ง 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

เราขอแนะนำให้ใช้คอนเทนเนอร์ Docker ของ GPU ในการสร้าง XLA ที่มีการรองรับ GPU เช่น

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

หากต้องการสร้าง XLA ที่มีการรองรับ GPU ให้ใช้คำสั่งต่อไปนี้

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

หากต้องการสร้างเป้าหมาย XLA ที่มีการรองรับ GPU โดยไม่ใช้ Docker คุณต้องติดตั้งทรัพยากร Dependency ต่อไปนี้เพิ่มเติมไปยังทรัพยากร Dependency ของ CPU: cuda-11.2, cuDNN-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/...

ดูรายละเอียดเพิ่มเติมเกี่ยวกับรูปภาพ Docker ของ TensorFlow ได้ในเอกสารนี้