Kaynaktan derleme

Bu dokümanda, XLA bileşenlerinin nasıl oluşturulacağı açıklanmaktadır.

XLA deposunu klonlamadıysanız veya Bazel'ı yüklemediyseniz lütfen README belgesinin "Başlayın" bölümüne göz atın.

Linux

Yapılandır

XLA derlemeleri, deponun kök dizinindeki .bazelrc dosyası tarafından yapılandırılır. ./configure veya ./configure.py komut dosyaları, ortak ayarları düzenlemek için kullanılabilir.

Yapılandırmayı değiştirmeniz gerekirse ./configure komut dosyasını deponun kök dizininden çalıştırın. Bu komut dosyası, XLA bağımlılıklarının konumunu ister ve ek derleme yapılandırma seçenekleri (ör. derleyici işaretleri) ister. Ayrıntılar için Örnek oturum bölümüne bakın.

./configure

Bu komut dosyasının bir python sürümü de var: ./configure.py. Sanal bir ortam kullanılıyorsa python configure.py ortam içindeki yollara öncelik verirken ./configure, ortam dışındaki yollara öncelik verir. Her iki durumda da varsayılan değeri değiştirebilirsiniz.

CPU desteği

XLA'yı derlemek/test etmek için TensorFlow'un docker container'ı gibi uygun bir docker container kullanmanızı öneririz:

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

Bir docker container'ında, aşağıdaki komutları kullanarak CPU destekli XLA derleyebilirsiniz:

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

Docker olmadan CPU desteğiyle XLA hedefleri oluşturmak istiyorsanız gcc-10 yüklemeniz gerekir:

apt install gcc-10 g++-10

Daha sonra, aşağıdaki komutları kullanarak hedefleri yapılandırın ve oluşturun:

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 desteği

Aşağıdaki gibi GPU destekli XLA derlemek için bir GPU docker kapsayıcısı kullanmanızı öneririz:

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

GPU desteğiyle XLA oluşturmak için aşağıdaki komutu kullanın:

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

Docker olmadan GPU desteğiyle XLA hedefleri oluşturmak istiyorsanız CPU bağımlılıklarına ek olarak şu bağımlılıkları da yüklemeniz gerekir: cuda-11.2, cuDNN-8.1.

Daha sonra, aşağıdaki komutları kullanarak hedefleri yapılandırın ve oluşturun:

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'un GPU docker görüntüleriyle ilgili daha fazla bilgi için bu belgeye göz atabilirsiniz.