Существует несколько терминов, которые используются в контексте XLA, MLIR, LLVM и других связанных технологий. Ниже приведен частичный список этих терминов и их определений.
- OpenXLA
- OpenXLA — это открытая экосистема производительных, переносимых и расширяемых компонентов инфраструктуры машинного обучения (ML), которые упрощают разработку ML путем дефрагментации инструментов между фронтенд-фреймворками и аппаратными бэкендами. Она включает в себя компилятор XLA, StableHLO, VHLO, PJRT и другие компоненты.
- XLA
- XLA (Accelerated Linear Algebra) — это компилятор с открытым исходным кодом для машинного обучения. Компилятор XLA берет модели из популярных фреймворков, таких как PyTorch, TensorFlow и JAX, и оптимизирует модели для высокопроизводительного выполнения на различных аппаратных платформах, включая графические процессоры, центральные процессоры и ускорители машинного обучения. Компилятор XLA выводит часть кода в LLVM, часть в «стандартный» MLIR и часть в Triton MLIR , который обрабатывается компилятором OpenAI Triton (на основе MLIR).
- ПЖРТ
- PJRT — это единый API-интерфейс устройств, который упрощает растущую сложность выполнения рабочей нагрузки ML на оборудовании и фреймворках. Он предоставляет независимый от оборудования и фреймворка интерфейс для компиляторов и сред выполнения.
- СтабильныйHLO
- StableHLO — это публичный интерфейс OpenXLA, это стандартизированный диалект MLIR, который может использоваться различными фреймворками и компиляторами в экосистеме OpenXLA. XLA поддерживает StableHLO и немедленно преобразует его в HLO на входе. Есть несколько проходов StableHLO в StableHLO , реализованных с использованием фреймворка MLIR. Также возможно преобразовать StableHLO в IR других компиляторов без использования HLO, например, в случаях, когда существующий IR более уместен.
- ХЛО
- CHLO — это набор операций более высокого уровня, которые при желании можно разложить на StableHLO.
- ВХЛО
- Диалект VHLO — это диалект MLIR, который является слоем совместимости поверх StableHLO. Он обеспечивает снимок диалекта StableHLO в заданный момент времени путем версионирования отдельных элементов программы и используется для сериализации и стабильности.
- МХЛО
- MHLO — это автономное представление MLIR-ориентированного HLO IR XLA. Диалект оценивается на предмет устаревания, и новым пользователям диалекта следует предпочесть StableHLO.
- ХЛО
- HLO — это внутреннее графовое представление (IR) для компилятора XLA (и также поддерживаемый ввод). Он не основан на MLIR и имеет свой собственный текстовый синтаксис и двоичное (на основе protobuf) представление.
- МЛИР
- MLIR — это гибридная инфраструктура IR, которая позволяет пользователям определять «диалекты» операций на разных уровнях абстракции и постепенно понижать их между этими наборами операций, выполняя преобразования на каждом уровне детализации. StableHLO и CHLO — два примера диалектов MLIR.
- LLVM
- LLVM — это бэкенд компилятора и язык, который он принимает в качестве входных данных. Многие компиляторы генерируют код LLVM в качестве первого шага, а затем LLVM генерирует из него машинный код. Это позволяет разработчикам повторно использовать код, который похож в разных компиляторах, а также упрощает поддержку различных целевых платформ. Бэкенды XLA:GPU и CPU имеют ИК-излучатели LLVM для нацеливания на определенное оборудование.