Work in progress: next MLIR News, 35th edition (5/29 - 6/12/2021)

Work in progress: this is a wiki post, everyone is welcome to modify it directly

Please update with work done between 5/29 and 6/12: you can update it along the way (don’t wait the end date to add entries here: you can add as the work is landing)

See the previous published edition.
Welcome to the thirty-fifth 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

  • Discourse syntax highlighting for MLIR snippet is improved with a dedicated style
  • A blog post about design issues in LLVM IR was published, it can gives some insights into some aspects of MLIR as well and in particular constants-as-operations.

MLIR Core

Infrastructure

Table-driven Infrastructure

Shape Dialect

Codegen

  • Sparse tensor support:
    • Added a compiler switch to indicate when it is safe to use 32-bit indices in sparse gather and scatter operations for efficiency.
    • The Python sparse kernel generator (see last post) has been extended to exhaustively test the correctness and performance of a kernel under all combinations of sparse annotations and compiler switches and to report the best performing version (out of millions!).

In the Ecosystem

IREE : An Experimental MLIR Execution Environment

  • Starting to move towards Linalg on tensors → Vector → Bufferize code-generation path for the LLVM backend.
  • Exploring lowering of operations that don’t directly fit into the Structured op specification (like sort and scatter).
  • CUDA/ROCM:
    • Fixed basic bugs in buffer binding to allow several models to run through ROCM
    • Upstreamed infrastructure to convert vector ops to MMA GPU ops to access tensor core functionality
    • Moved to use dynamic pass pipelines to allow different pipelines to be executed for different dispatch region

mlir-npcomp: Prototype for compiling numerical python programs

  • Added !torch.tensor and !torch.vtensor (value-semantic tensor) types, and replace use of builtin tensor type and numpy array type PR
  • Added !torch.list<T> type PR

Recent Talks

  • 2021-06-10: MLIR Language Server (Modern IDE features for .mlir files) ; slides - recording