Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

MLIR

Überblick

MLIR (Multi-Level Intermediate Representation) ist ein Darstellungsformat und eine Bibliothek von Compiler-Dienstprogrammen, die sich zwischen der Modelldarstellung und Low-Level-Compilern / Executoren befinden, die hardwarespezifischen Code generieren.

MLIR ist im Kern eine flexible Infrastruktur für moderne Optimierungscompiler. Dies bedeutet, dass es aus einer Spezifikation für Zwischendarstellungen (IR) und einem Code-Toolkit besteht, um Transformationen für diese Darstellung durchzuführen. (Wenn Sie im Compiler-Sprachgebrauch von Darstellungen auf höherer Ebene zu Darstellungen auf niedrigerer Ebene wechseln, können diese Transformationen als "Absenkungen" bezeichnet werden.)

MLIR ist stark von LLVM beeinflusst und verwendet unverfroren viele großartige Ideen daraus. Es verfügt über ein flexibles Typsystem und ermöglicht die Darstellung, Analyse und Transformation von Graphen, die mehrere Abstraktionsebenen in derselben Kompilierungseinheit kombinieren. Diese Abstraktionen umfassen TensorFlow-Operationen, verschachtelte polyedrische Schleifenbereiche und sogar LLVM-Anweisungen sowie feste Hardwareoperationen und -typen.

Wir erwarten, dass MLIR für viele Gruppen von Interesse ist, darunter:

  • Compilerforscher und Implementierer, die die Leistung und den Speicherverbrauch von Modellen für maschinelles Lernen optimieren möchten
  • Hardwarehersteller, die nach einer Möglichkeit suchen, ihre Hardware mit TensorFlow zu verbinden, z. B. TPUs, tragbare neuronale Hardware in Telefonen und andere benutzerdefinierte ASICs
  • Leute, die Sprachbindungen schreiben, die die Optimierung von Compilern und Hardwarebeschleunigung nutzen möchten.

Das TensorFlow-Ökosystem enthält eine Reihe von Compilern und Optimierern, die auf mehreren Ebenen des Software- und Hardware-Stacks arbeiten. Wir erwarten, dass die schrittweise Einführung von MLIR jeden Aspekt dieses Stacks vereinfacht.

MLIR-Übersichtsdiagramm