این راهنما به شما نشان می دهد که چگونه توسعه پروژه XLA را شروع کنید.
قبل از شروع، پیش نیازهای زیر را کامل کنید:
- به صفحه مشارکت بروید و روند مشارکت را بررسی کنید.
- اگر قبلاً این کار را نکردهاید، موافقتنامه مجوز مشارکتکننده را امضا کنید.
- وابستگی های زیر را نصب یا پیکربندی کنید:
سپس مراحل زیر را دنبال کنید تا کد منبع را دریافت کنید، یک محیط راه اندازی کنید، مخزن را بسازید و یک درخواست کشش ایجاد کنید.
کد را دریافت کنید
- یک فورک از مخزن XLA ایجاد کنید.
فورک مخزن خود را کلون کنید و نام کاربری GitHub خود را جایگزین
{USER}
کنید:git clone <a href="https://github.com/">https://github.com/</a>{USER}/xla.git
به دایرکتوری
xla
تغییر دهید:cd xla
مخزن بالادستی راه دور را پیکربندی کنید:
git remote add upstream <a href="https://github.com/openxla/xla.git">https://github.com/openxla/xla.git</a>
یک محیط تنظیم کنید
Bazel را نصب کنید.
برای ساخت XLA باید Bazel را نصب کرده باشید. روش توصیه شده برای نصب Bazel استفاده از Bazelisk است که به طور خودکار نسخه صحیح Bazel را برای XLA دانلود می کند. اگر Bazelisk در دسترس نیست، می توانید Bazel را به صورت دستی نصب کنید .
ظرف ml-build Docker را ایجاد و اجرا کنید.
برای راه اندازی یک Docker Container برای ساخت XLA با پشتیبانی از CPU و GPU، دستور زیر را اجرا کنید:
docker run -itd --rm \ --name xla \ -w /xla \ -v $PWD:/xla \ us-docker.pkg.dev/ml-oss-artifacts-published/ml-public-container/ml-build:latest \ bash
اگر با پشتیبانی GPU/CUDA ساخته میشوید،
--gpus all
اضافه کنید تا به کانتینر دسترسی به تمام GPUهای موجود داده شود. این امکان تشخیص خودکار قابلیت های محاسباتی CUDA را فراهم می کند.
ساخت
پیکربندی برای CPU:
docker exec xla ./configure.py --backend=CPU
پیکربندی برای GPU:
docker exec xla ./configure.py --backend=CUDA
قابلیت های محاسباتی CUDA با اجرای nvidia-smi
به طور خودکار شناسایی می شود. اگر پردازندههای گرافیکی در طول ساخت در دسترس نیستند، باید قابلیتهای محاسباتی را به صورت دستی مشخص کنید. به عنوان مثال:
# Automatically detects compute capabilities (requires GPUs)
./configure.py --backend=CUDA
# Manually specify compute capabilities (for builds without GPUs)
./configure.py --backend=CUDA --cuda_compute_capabilities="9.0"
ساخت:
docker exec xla bazel build \
--spawn_strategy=sandboxed \
--test_output=all \
//xla/...
- هنگام راه اندازی کانتینر Docker از
--gpus all
flag استفاده نکنید . - در طول
./configure.py
، قابلیت های محاسبه CUDA را با استفاده از پرچم--cuda_compute_capabilities
به صورت دستی مشخص کنید.
# Automatically detects compute capabilities (requires GPUs)
./configure.py --backend=CUDA
# Manually specify compute capabilities (for builds without GPUs)
./configure.py --backend=CUDA --cuda_compute_capabilities="9.0"
bazel build \
--spawn_strategy=sandboxed \
--test_output=all \
//xla/...
اولین ساخت شما مدت زیادی طول می کشد زیرا باید کل پشته، از جمله XLA، MLIR و StableHLO را بسازد.
برای کسب اطلاعات بیشتر در مورد ساخت XLA، به ساخت از منبع مراجعه کنید.
یک درخواست کشش ایجاد کنید
وقتی برای ارسال تغییرات برای بررسی آماده شدید، یک درخواست کشش ایجاد کنید.
برای آشنایی با فلسفه بررسی کد XLA، به فرآیند بررسی مراجعه کنید.