چندین اصطلاح وجود دارد که در زمینه XLA، MLIR، LLVM و سایر فناوری های مرتبط استفاده می شود. در زیر فهرستی جزئی از این اصطلاحات و تعاریف آنها آورده شده است.
- OpenXLA
- OpenXLA یک اکوسیستم باز از اجزای زیرساخت یادگیری ماشین (ML) کارآمد، قابل حمل و توسعهپذیر است که توسعه ML را با یکپارچهسازی ابزارها بین فریمورکهای فرانتاند و پشتیبانهای سختافزار ساده میکند. این شامل کامپایلر XLA، StableHLO، VHLO، PJRT و سایر اجزا است.
- XLA
- XLA (Accelerated Linear Gebra) یک کامپایلر متن باز برای یادگیری ماشین است. کامپایلر XLA مدلهایی را از چارچوبهای محبوبی مانند PyTorch، TensorFlow و JAX میگیرد و مدلها را برای اجرای با کارایی بالا در پلتفرمهای سختافزاری مختلف از جمله GPU، CPU و شتابدهندههای ML بهینه میکند. کامپایلر XLA مقداری کد را به LLVM، برخی را به MLIR "استاندارد" و برخی را به Triton MLIR که توسط کامپایلر OpenAI Triton (مبتنی بر MLIR) پردازش می شود، خروجی می دهد.
- PJRT
- PJRT یک Device API یکنواخت است که پیچیدگی فزاینده اجرای بار کاری ML را در سخت افزار و چارچوب ها ساده می کند. این یک رابط مستقل از سخت افزار و چارچوب برای کامپایلرها و زمان اجرا فراهم می کند.
- StableHLO
- StableHLO رابط عمومی OpenXLA است، این یک گویش استاندارد شده MLIR است که ممکن است توسط فریمورکها و کامپایلرهای مختلف در اکوسیستم OpenXLA استفاده شود. XLA از StableHLO پشتیبانی می کند و بلافاصله آن را در ورودی به HLO تبدیل می کند. برخی از پاس های StableHLO به StableHLO وجود دارد که با استفاده از چارچوب MLIR پیاده سازی شده اند. همچنین امکان تبدیل StableHLO به IR سایر کامپایلرها بدون استفاده از HLO وجود دارد، برای مثال در مواردی که IR موجود مناسب تر است.
- CHLO
- CHLO مجموعه ای از عملیات سطح بالاتر است که به صورت اختیاری قابل تجزیه به StableHLO است.
- VHLO
- گویش VHLO یک گویش MLIR است که یک لایه سازگاری در بالای StableHLO است. این یک عکس فوری از گویش StableHLO را در یک نقطه زمانی مشخص با نسخهسازی عناصر برنامه ارائه میکند و برای سریالسازی و پایداری استفاده میشود.
- MHLO
- MHLO یک نمایش مستقل مبتنی بر MLIR از HLO IR XLA است. این لهجه از نظر منسوخ شدن ارزیابی می شود و کاربران جدید گویش باید ترجیح دهند به جای آن از StableHLO استفاده کنند.
- HLO
- HLO یک نمایش گراف داخلی (IR) برای کامپایلر XLA (و همچنین ورودی پشتیبانی شده) است. این بر اساس MLIR نیست ، و نحو متنی و نمایش باینری (مبتنی بر پروتوبوف) خود را دارد.
- MLIR
- MLIR یک زیرساخت IR ترکیبی است که به کاربران امکان میدهد «گویشهای» عملیات را در درجات مختلف انتزاع تعریف کنند، و به تدریج بین این opsetها پایینتر میآیند، و در هر سطح از دانهبندی تغییر شکل میدهند. StableHLO و CHLO دو نمونه از گویش های MLIR هستند.
- LLVM
- LLVM یک backend کامپایلر و زبانی است که به عنوان ورودی می گیرد. بسیاری از کامپایلرها در مرحله اول کد LLVM را تولید می کنند و سپس LLVM کد ماشین را از آن تولید می کند. این به توسعه دهندگان اجازه می دهد تا از کدهای مشابه در کامپایلرهای مختلف استفاده مجدد کنند و همچنین پشتیبانی از پلتفرم های هدف مختلف را آسان تر می کند. XLA: پشتیبانهای GPU و CPU دارای فرستندههای LLVM IR برای هدف قرار دادن سختافزار خاص هستند.