Esta página foi traduzida pela API Cloud Translation.
Switch to English

MLIR

Visão geral

MLIR, ou Representação Intermediária Multinível, é um formato de representação e uma biblioteca de utilitários de compilador que fica entre a representação do modelo e os compiladores / executores de baixo nível que geram código específico de hardware.

O MLIR é, em sua essência, uma infraestrutura flexível para os compiladores de otimização modernos. Isso significa que consiste em uma especificação para representações intermediárias (IR) e um kit de ferramentas de código para executar transformações nessa representação. (Na linguagem do compilador, à medida que você passa das representações de nível superior para as de nível inferior, essas transformações podem ser chamadas de "abaixamentos")

O MLIR é altamente influenciado pelo LLVM e reutiliza descaradamente muitas grandes idéias dele. Possui um sistema de tipos flexíveis e permite representar, analisar e transformar gráficos combinando vários níveis de abstração na mesma unidade de compilação. Essas abstrações incluem operações TensorFlow, regiões de loop poliédrico aninhadas e até instruções LLVM e operações e tipos de hardware fixo.

Esperamos que o MLIR seja do interesse de muitos grupos, incluindo:

  • Pesquisadores e implementadores de compiladores que procuram otimizar o desempenho e o consumo de memória de modelos de aprendizado de máquina
  • Fabricantes de hardware que procuram uma maneira de conectar seu hardware ao TensorFlow, como TPUs, hardware neural portátil em telefones e outros ASICs personalizados
  • Pessoas que escrevem ligações de linguagem que desejam aproveitar a otimização de compiladores e aceleração de hardware.

O ecossistema TensorFlow contém vários compiladores e otimizadores que operam em vários níveis da pilha de software e hardware. Esperamos que a adoção gradual do MLIR simplifique todos os aspectos dessa pilha.

Diagrama de visão geral do MLIR