Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

MLIR

Przegląd

MLIR lub Multi-Level Intermediate Representation to format reprezentacji i biblioteka narzędzi kompilatora, która znajduje się między reprezentacją modelu a kompilatorami / wykonawcami niskiego poziomu, które generują kod specyficzny dla sprzętu.

MLIR to w istocie elastyczna infrastruktura dla nowoczesnych kompilatorów optymalizujących. Oznacza to, że składa się ze specyfikacji reprezentacji pośrednich (IR) i zestawu narzędzi kodu do wykonywania transformacji tej reprezentacji. (W języku kompilatora, przechodząc od reprezentacji wyższego poziomu do reprezentacji niższego poziomu, transformacje te można nazwać „obniżeniami”)

MLIR jest pod silnym wpływem LLVM i bezwstydnie wykorzystuje wiele świetnych pomysłów z niego. Ma elastyczny system typów i umożliwia reprezentowanie, analizowanie i przekształcanie wykresów łączących wiele poziomów abstrakcji w tej samej jednostce kompilacji. Te abstrakcje obejmują operacje TensorFlow, zagnieżdżone wielościenne regiony pętli, a nawet instrukcje LLVM oraz stałe operacje i typy sprzętu.

Oczekujemy, że MLIR zainteresuje wiele grup, w tym:

  • Badacze kompilatorów i wdrażający, którzy chcą zoptymalizować wydajność i zużycie pamięci przez modele uczenia maszynowego
  • Producenci sprzętu szukający sposobu na podłączenie swojego sprzętu do TensorFlow, takiego jak TPU, przenośny sprzęt neuronowy w telefonach i inne niestandardowe układy ASIC
  • Osoby piszące powiązania językowe, które chcą skorzystać z optymalizacji kompilatorów i przyspieszenia sprzętowego.

Ekosystem TensorFlow zawiera szereg kompilatorów i optymalizatorów, które działają na wielu poziomach oprogramowania i sprzętu. Oczekujemy, że stopniowe przyjmowanie MLIR uprości każdy aspekt tego stosu.

Schemat poglądowy MLIR