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
- mlir-reduce is undergoing a refactor to be closer in structure to other MLIR based tools
- mlir-lsp-server gained support for symbol use/def tracking, symbol outline support, and more.
- The pattern rewriter now support filtering patterns by name and label.
- Filtering options have been added to the canonicalizer, but can be easily added to any rewrite driven pass.
-
SubElement Attribute and Type interfaces have been added, allowing for attributes/types to expose access to attributes/types nested inside of them.
- Utilizing this interface, .mlir aliases can now be generated for nested attributes/types of non-builtin attributes/types.
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