MLIR News, 44th edition (10/2 - 10/15/2021)

See the previous published edition

Welcome to the forty-fourth 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

MLIR Core

Infrastructure

Python API

  • A user-level documentation exists now.
  • Variadic regions are now supported.
  • One can now pass an Operation or an OpView where a Value or list thereof is expected in op construction.
  • We no longer need to specify inferrable result types to construct operations in Python, similarly to C++.

Codegen

  • Various improvements to Linalg ComprehensiveBufferize
  • OpDSL supports the new min / max operations as well as unsigned arithmetic
  • The C++ versions ConvOp/PoolingOps have been replaced by its OpDSL counterparts.
  • Improved control over packing and padding.
  • Improved control over generalization and interchange.
  • Sparse compiler progress:
    • Added sparse_tensor.release for better memory management control
    • The sparse_tensor.convert operations has been generalized to accept static/dynamic changes in the shape dimension sizes
    • Continued work on adding general sparse tensor outputs
    • Outreachy internship proposal has been approved: Sparse Tensor Compiler Support in MLIR

SPIR-V

  • SPIR-V to LLVM conversion now propagates location information from spv.GlobalVariable to llvm.mlir.global and handles entry points with the same name but different execution modes.
  • Standard to SPIR-V conversion now supports min/max ops.
  • SPIR-V atomic ops now verifies memory semantics.

TOSA

  • Improvements for reshape/transpose canonicalizers to constant propagate
  • Conv2D, Fully Connected, Matmul, and Transpose dynamic case lowered to linalg
  • Updated for arithmetic ops refactor, specifically some issues introduced due to casting changes.

In the Ecosystem

Flang, the LLVM Fortran Compiler

IREE : An Experimental MLIR Execution Environment

  • Couple of blogs up on the IREE website
    • A post on use of tiled matrix multiplication operations within IREE (known as MMTD)
    • A post on the CUDA backend within IREE.
  • CUDA backend
    • Working on optimizing hugging_face model
    • Improvements to reduction performance after fixing bugs in vectorization
    • Improvements in workgroup size heuristic to increase occupancy
  • End to end support for TFLite via TOSA demonstrated in iree-samples repo
    • Expanded to include 25 models including mobilebert, mobilenetv1/2/3, and quantization support

TensorFlow / MLIR-HLO

  • Refactored MLIR-generated kernels registration that reduced the overall binary size of OSS TF by 1.4 MB.
  • Improvements for TFLite to TOSA
    • Quantization improvements for average pool2d, rescale,
    • Dynamic shape support added for split, strided slice, gather, and resize
    • Negative axis support added for split and squeeze

Recent Talks

MLIR Open Meeting 2021-10-14: Discussion on Visualization projects

1 Like