MLIR News, 27th edition (2/19/2020)

See the previous published edition.

Welcome to the twenty-seventh issue of the MLIR (bi)Weekly, a newsletter 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

  • The first end-to-end milestone of the sparse compiler was presented last week: see “Recent Talks” at the bottom and the Discourse thread: MLIR Support for Sparse Tensors

MLIR Core

Infrastructure

Table-driven Infrastructure

  • Declarative operation format specification now supports a general ref directive, replacing type_ref, that allows for referencing most components of an operation within a custom directive.

Optimizations and Code Generation

CPU codegen

  • A pass to provide expansions of math operation into fast polynomial approximation was added, this is based on Eigen and Cephes.

SPIR-V

  • More types and ops were defined to support graphics use cases.
  • More patterns were added to convert vector ops to SPIR-V ops.
  • SPIR-V serializer was split into multiple source files, in preparation for later refactoring to have better internal structures.

Other

In the Ecosystem

Flang, the LLVM Fortran Compiler

TensorFlow / MLIR-HLO

  • XLA GPU backend: All emitters are migrated to take LMHLO as input (individually, still need to glue them together):
    • Fused Slice
    • CollectivePermute
    • FFT
    • TriangularSolve
    • Fused Scatter
    • Bitcast
  • Kernel Generator:
    • Multiple performance tweaks that fix the broadcasting performance.
    • Identified a missing host side optimization that Eigen performs: In broadcasting cases, Eigen computes a minimal broadcasted shape to reduce the number of dimensions of the tensor that is being computed. We are adding support for this, as well.
    • We have launched a few more unary kernels and our first launched binary kernel is faring well. We will start landing the other ones next.

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

Recent Talks

  • 2021-02-11: Polygeist: An affine C frontend for MLIR ; slides - recording
  • 2021-02-18 Compiler Support for Sparse Tensor Computations: A Status Update ; slides - recording

Recent Publications