Confira !!
O desembarque como um ótimo presente de Natal para desenvolvedores de LLVM interessados em compilação de hardware heterogênea, TensorFlow e outros casos de uso de aprendizado de máquina foi o MLIR na árvore de origem do LLVM.
O MLIR é a representação intermediária multinível de código aberto do Google apresentada no início deste ano . O MLIR visa ser um IR / formato comum entre modelos e estruturas de aprendizado de máquina.
O fundador do LLVM, Chris Lattner, se envolveu com o desenvolvimento do MLIR no Google e trabalha há meses contribuindo com o MLIR para o LLVM como um subprojeto oficial.
Há alguns dias, o código MLIR foi mesclado na árvore de origem LLVM. Isso ocorre algumas semanas antes da ramificação do código LLVM 10.0.
Conforme explicado através doNo site do projeto mlir.llvm.org , o MLIR foi criado para:
- A capacidade de representar um gráfico de fluxo de dados (como o TensorFlow), incluindo formas dinâmicas, o ecossistema operacional extensível pelo usuário, variáveis do TensorFlow, etc.
- Otimizações e transformações normalmente feitas em um gráfico desse tipo (por exemplo, no Grappler).
- Representação de kernels para operações de ML de forma adequada para otimização.
- Capacidade de hospedar otimizações de loop no estilo de computação de alto desempenho em kernels (fusão, intercâmbio de loop, lado a lado, etc.) e transformar layouts de dados de memória.
- Transformações de “redução” da geração de código, como inserção de DMA, gerenciamento explícito de cache, agrupamento de memória e vetorização para arquiteturas de registro 1D e 2D.
- Capacidade de representar operações específicas de destino, por exemplo, operações de alto nível específicas para aceleradores.
- Quantização e outras transformações de gráfico feitas em um gráfico de Deep-Learning.
Com o projeto Google IREE, recentemente coberto , eles também estão experimentando o MLIR para acelerar o aprendizado de máquina no Vulkan.
Tempos emocionantes pela frente para 2020.
Até a próxima !!
Nenhum comentário:
Postar um comentário