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.