StableHLO

Ecosistema de StableHLO

StableHLO es un conjunto de operaciones para operaciones de alto nivel (HLO) en modelos de aprendizaje automático (AA). En esencia, es una capa de portabilidad entre diferentes compiladores y frameworks de AA: los frameworks de AA que producen programas de StableHLO son compatibles con los compiladores de AA que consumen programas de StableHLO.

Nuestro objetivo es simplificar y acelerar el desarrollo de AA mediante la creación de más interoperabilidad entre varios frameworks de AA (como TensorFlow, JAX y PyTorch) y compiladores de AA (como XLA y IREE).

Funciones y cómo comenzar

La versión actual de StableHLO incluye muchas funciones y eventos importantes:

  • Especificación completa: La especificación de StableHLO se define para todas las ~100 operaciones con verificadores y deducción de tipos, así como capacidades de dinamismo y cuantización.
  • Compatibilidad con garantías de retrocompatibilidad de 5 años y de 2 años hacia adelante, lo que permite la implementación a largo plazo de servidores o dispositivos perimetrales y ciclos de actualización anuales.
  • Intérprete de referencia con compatibilidad con operaciones estáticas y dinámicas, incluidas las APIs de C++ y Python.
  • Extensibilidad a través de operaciones compuestas y llamadas personalizadas para permitir la experimentación rápida o para modelar operaciones específicas del proveedor.
  • APIs de C++/Python para funciones principales y archivos dev-wheel nocturnos para una integración más fácil.
  • Instructivos de Colab para demostrar las APIs de Python para extraer StableHLO de varios frameworks, así como otras funciones de utilidad.
  • Conjunto de datos de prueba de 3,000 archivos de prueba, incluidos programas dinámicos y cuantificados, y resultados de referencia para pruebas de integración de proveedores, pruebas de compatibilidad con versiones anteriores y posteriores, y más del 90% de cobertura de código.
  • Transformaciones de programas para la simplificación de programas independientes del hardware, la definición más precisa de programas con formas dinámicas mediante argumentos de entrada concretos y conversiones a dialectos de MLIR upstream, como linalg o tosa.
  • Impulsado por la comunidad con muchas contribuciones del ecosistema para las transformaciones, así como RFC para cambios en el conjunto de operaciones: nuevos tipos de FP8, collective_broadcast, operaciones de recopilación o dispersión por lotes, cuantificación híbrida, APIs de intérpretes, descomposiciones de CHLO, transformaciones de simplificación de StableHLO y mucho más.

Desarrolladores de modelos que quieran usar StableHLO o XLA para compilar su proyecto de AA, consulta la documentación correspondiente de tu framework de AA:

Desarrolladores de compiladores que deseen integrar StableHLO, consulta nuestra documentación de introducción en este sitio, incluidos instructivos y detalles para desarrolladores. Consulta la sección de la comunidad de esta página si tienes preguntas, asistencia o problemas con la integración.

Compila instrucciones

Consulta StableHLO en GitHub para obtener instrucciones de compilación.

Comunidad

Crear una capa de portabilidad increíble entre los frameworks y los compiladores de AA requiere colaboración en toda la industria de AA, por lo que nos complace contar con tu ayuda en el proyecto StableHLO.

Usamos los problemas o las solicitudes de extracción de GitHub para organizar el desarrollo y openxla-discuss para tener discusiones más largas. También tenemos un canal de #stablehlo en el servidor de Discord de OpenXLA.