See the previous published edition.
Welcome to the twenty-first 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!
- An RFC about splitting the standard dialect has been shared!
- Function.h and Module.h are in the process of being removed in favor of BuiltinOps.h
- Side effect instances can now specify an Attribute containing additional effect parameters.
- Side effect instances can now provide a SymbolRefAttr as the value being affected.
Optimizations and Code Generation
- RFC open to discussion about adding dialects for modeling the ARM Neon and SVE instruction sets.
- The prototype sparse compiler has been committed:
- Some sanity check benchmarking shows “on par” performance for a couple of sparse kernels and matrices compared to the Eigen library.
- A parallelization strategy was also added:
- Provides control over what loops should be expressed with “scf.parallel” (inner/outer loops, dense/sparse loops)
- Some sanity check benchmarking using the current in-tree async lowering for parallel loops exhibits reasonable speedups over sequential sparse code.
- Planned next: vectorization strategy, invariant code hoisting, storage type control
- Various clean ups were introduced to improve consistency in the SPIR-V dialect.
spv._*ops are renamed as
spv.mlir.*ops to follow general convention in MLIR.
- Module combiner now can unique global variables, specialization constants, and functions.
- OpenMP: Added operation for the OpenMP worksharing loop construct, omp.wsloop. An SCF parallel to OpenMP parallel+worksharing loop conversion pass was also added. Patches to pretty-print+parse, lower to LLVM IR are in progress.
In the Ecosystem
CIRCT : Circuit IR Compilers and Tools aka ‘MLIR for hardware’
- A pass was added to flatten FIRRTL bundle types, making it simpler for other CIRCT components to interface with FIRRTL.
- Notably, this opens up a path for some Handshake modules to be emitted as System Verilog that previously failed.
mlir-npcomp: Prototype for compiling numpy programs
- A TorchScript importer was added.
- TensorFlow and TFLite dialects can be lowered to TOSA now.