¿Tengo una pregunta? Conéctese con la comunidad en el Foro de visita del foro de TensorFlow

MLIR

Descripción general

MLIR, o Representación intermedia multinivel, es un formato de representación y una biblioteca de utilidades del compilador que se encuentra entre la representación del modelo y los compiladores / ejecutores de bajo nivel que generan código específico del hardware.

MLIR es, en esencia, una infraestructura flexible para los compiladores optimizadores modernos. Esto significa que consta de una especificación para representaciones intermedias (IR) y un juego de herramientas de código para realizar transformaciones en esa representación. (En el lenguaje del compilador, a medida que pasa de representaciones de nivel superior a representaciones de nivel inferior, estas transformaciones pueden denominarse "reducciones")

MLIR está muy influenciado por LLVM y reutiliza descaradamente muchas de sus grandes ideas. Posee un sistema tipográfico flexible, y permite representar, analizar y transformar grafos combinando múltiples niveles de abstracción en una misma unidad de compilación. Estas abstracciones incluyen operaciones de TensorFlow, regiones de bucle poliédrico anidado e incluso instrucciones LLVM y operaciones y tipos de hardware fijo.

Esperamos que MLIR sea de interés para muchos grupos, incluidos:

  • Investigadores e implementadores de compiladores que buscan optimizar el rendimiento y el consumo de memoria de los modelos de aprendizaje automático
  • Fabricantes de hardware que buscan una forma de conectar su hardware a TensorFlow, como TPU, hardware neuronal portátil en teléfonos y otros ASIC personalizados
  • Personas que escriben enlaces de lenguaje que desean aprovechar la optimización de los compiladores y la aceleración del hardware.

El ecosistema de TensorFlow contiene una serie de compiladores y optimizadores que operan en varios niveles de la pila de software y hardware. Esperamos que la adopción gradual de MLIR simplifique todos los aspectos de esta pila.

Diagrama de descripción general de MLIR