MLIR News, 19th edition (10/31/2020)

See the previous published edition.

Welcome to the nineteenth issue of the MLIR (bi)Weekly, a newsletter (published on Friday) covering developments in MLIR, and related projects in the ecosystem. MLIR (bi)Weekly is brought to you by a collective effort of contributors, we welcome your contributions!

Highlights

MLIR Core

Infrastructure

Optimizations and Code Generation

  • Initial version of tileAndFuse on tensors has landed, future improvements will wait for bufferization post-transformations on Linalg on tensors.
  • Initial version of tileAndDistribute on tensors [sent for review](](https://reviews.llvm.org/D90475), future improvements will wait for bufferization post-transformations on Linalg on tensors.
  • Work has started on bufferization post-transformations on Linalg on tensors.
  • [CPU] A lot of progress on sparse tensor support in MLIR, starting from annotated Linalg:
    • All "pseudo code generation” completed, including optimizations
    • Output matches TACO generated samples exactly
    • Actual MLIR codegen is almost done, pending while-loop support
    • Current version “bufferizes” locally, since we don’t have global sparse types (yet)
    • First patch with various 1-D, 2-D, and 3-D tensor unit tests is expected next week

SPIR-V

In the Ecosystem

IREE : An Experimental MLIR Execution Environment

  • Add a mechanism to benchmark executable dispatch functions.

mlir-npcomp: Prototype for compiling numpy programs

  • functionality for tracing PyTorch programs into aten dialect is starting to come together. (basic conv + NLLLoss is working, tracing backward pass still has bugs)
  • most bufferization components have been upstreamed / are in the process of being upstreamed.

TensorFlow / MLIR-HLO

  • Migrated XLA/GPU emitters to take MLIR LMHLO FusionOp for all loop fusions.

CIRCT : Circuit IR Compilers and Tools aka ‘MLIR for hardware’

Recent Talks

  • 2020-10-22: Fusion of Elementwise operations with Linalg on tensors ; slides - recording
  • 2020-10-29: Using MLIR for Multi-Dimensional Homomorphism ; slides - recording

Recent Publications

On using MLIR for Verona

Verona is a new language being developed by Microsoft Research Cambridge which explores the concept of concurrent ownership.

In this blog post, @rengolin introduces Verona at a high-level and provide some motivation and insights in its use of MLIR. Don’t miss the call for contributions!