XLA-терминология

Существует несколько терминов, которые используются в контексте 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 для нацеливания на определенное оборудование.