Questa guida mostra come iniziare a sviluppare il progetto XLA.
Prima di iniziare, completa i seguenti prerequisiti:
- Vai a CONTRIBUTING.md e consulta la procedura di contributo.
- Se non l'hai ancora fatto, firma il Contratto di licenza del collaboratore.
- Installa o configura le seguenti dipendenze:
Poi segui i passaggi riportati di seguito per recuperare il codice sorgente, configurare un ambiente, compilare il repository e creare una richiesta di pull.
Ottieni il codice
- Crea un fork del repository XLA.
Clona il fork del repository, sostituendo
<USER>
con il tuo nome utente GitHub:git clone <a href="https://github.com/">https://github.com/</a><USER>/xla.git
Passa alla directory
xla
:cd xla
Configura il repository upstream remoto:
git remote add upstream <a href="https://github.com/openxla/xla.git">https://github.com/openxla/xla.git</a>
Configurare un ambiente
Installa Bazel.
Per compilare XLA, devi avere installato Bazel. Il metodo consigliato per l'installazione Bazel sta usando Bazelisk, che scarica automaticamente la versione Bazel corretta per XLA. Se Bazelisk non è disponibile, puoi installare Bazel manualmente.
Crea ed esegui un container Docker TensorFlow.
Per ottenere l'immagine Docker TensorFlow sia per la creazione di CPU che di GPU, esegui il comando seguente comando:
docker run --name xla -w /xla -it -d --rm -v $PWD:/xla tensorflow/build:latest-python3.9 bash
Build
Build per CPU:
docker exec xla ./configure.py --backend=CPU
docker exec xla bazel build --test_output=all --spawn_strategy=sandboxed //xla/...
Compila per GPU:
docker exec xla ./configure.py --backend=CUDA
docker exec xla bazel build --test_output=all --spawn_strategy=sandboxed //xla/...
./configure.py --backend=CUDA
bazel build --test_output=all --spawn_strategy=sandboxed //xla/...
La prima build richiederà un po' di tempo perché deve compilare l'intero stack, inclusi XLA, MLIR e StableHLO.
Per scoprire di più sulla creazione di una XLA, consulta Creare dal codice sorgente.
Crea una richiesta di pull
Quando è tutto pronto, crea una pull request per inviare le modifiche per la revisione.
Per conoscere la filosofia di revisione del codice XLA, vedi Procedura di revisione.