СтабильныйHLO

Стабильная экосистемаHLO

StableHLO — это набор операций для операций высокого уровня (HLO) в моделях машинного обучения (ML). По сути, это уровень переносимости между различными платформами машинного обучения и компиляторами машинного обучения: платформы машинного обучения, создающие программы StableHLO, совместимы с компиляторами машинного обучения, использующими программы StableHLO.

Наша цель — упростить и ускорить разработку машинного обучения за счет большей совместимости между различными платформами машинного обучения (такими как TensorFlow, JAX и PyTorch) и компиляторами машинного обучения (такими как XLA и IREE).

Возможности и начало работы

Текущая версия StableHLO включает в себя множество примечательных функций и вех:

  • Полностью специфицировано: спецификация StableHLO определена для всех примерно 100 операций с верификаторами и выводом типов, а также возможностями динамизма и квантования .
  • Совместимость гарантирует 5 лет обратной совместимости и 2 года вперед, что позволяет осуществлять долгосрочное развертывание серверов/периферийных устройств и ежегодные циклы обновлений.
  • Эталонный интерпретатор с поддержкой статических и динамических операций, включая API C++ и Python.
  • Расширяемость посредством составных операций и пользовательских вызовов для быстрого экспериментирования или моделирования операций, специфичных для конкретного поставщика.
  • API-интерфейсы C++/Python для основных функций и ежедневные файлы dev-wheel для упрощения адаптации.
  • Учебные пособия Colab для демонстрации API-интерфейсов Python для извлечения StableHLO из различных платформ, а также других служебных функций.
  • Набор тестовых данных размером 3 тыс. тестовых файлов, включая динамические и квантованные программы, а также золотые результаты для тестирования интеграции с поставщиками, тестов прямой/обратной совместимости и покрытия кода >90%.
  • Преобразования программ для аппаратно-независимого упрощения программ , уточнения динамически формируемых программ с использованием конкретных входных аргументов и преобразований в вышестоящие диалекты MLIR, такие как linalg или tosa.
  • Сообщество поддерживает множество вкладов в экосистему для преобразований, а также RFC для изменений opset: новые типы FP8, коллективное вещание, пакетные операции сбора/разброса, гибридное квантование, API-интерфейсы интерпретатора, разложение CHLO, преобразования упрощения StableHLO и многое другое!

Разработчики моделей, желающие использовать StableHLO или XLA для компиляции вашего проекта ML, обратитесь к соответствующей документации для вашей платформы ML:

Разработчики компиляторов, желающие интегрировать StableHLO, ознакомьтесь с нашей документацией по началу работы на этом сайте, включая учебные пособия и подробную информацию для разработчиков. Посетите раздел сообщества на этой странице, чтобы узнать о любой поддержке, вопросах или проблемах, с которыми вы столкнулись!

Инструкции по сборке

Инструкции по сборке см. в StableHLO на GitHub .

Сообщество

Создание потрясающего уровня переносимости между платформами машинного обучения и компиляторами машинного обучения требует сотрудничества всей отрасли машинного обучения, поэтому мы будем рады вашей помощи в проекте StableHLO.

Мы используем задачи / запросы на включение GitHub для организации разработки и openxla-discuss для более длительных обсуждений. У нас также есть канал #stablehlo на сервере OpenXLA Discord .