Welcome to the 69th issue of the MLIR Newsletter covering developments in MLIR, and related projects in the ecosystem. We welcome your contributions (contact: javed.absar@gmail.com). Click here to see previous editions.
Highlights, Discussions & RFCs
-
LLVM Dev conference will be held in Santa Clara, CA on October 22-24. Early bird registrations are open - 2024 LLVM Developers' Meeting.
-
Jeremy Kun wrote an article on "How to use PDLL, a tool for defining MLIR patterns, which itself is built with MLIR. PDLL is intended to be a replacement for defining patterns in tablegen… " [click here].
-
RFC - Transpose attribute for linalg matmul. [click here].
-
HsiangKai Wang implemented in Linalg - Fast Algorithm for Convolutional Neural Networks.( reference paper: [1509.09308] Fast Algorithms for Convolutional Neural Networks). [click here] and, [click here].
-
[RFC] MLIR types with encoding - MLIR - LLVM Discussion Forums
MLIR Commits Recently:
-
Tobias Gysi added three matchers that unlike the m_NonZero matcher
not only match constants, but also operations that implement the
InferIntRangeInterface. [click here]. -
Weiwei Chen added metadata to diagnostics [click here]).
-
Mahesh added 'concatenation of empty tensors replaced by a single empty
tensor of the concatenated shape. [click here]. -
Rob Suderman fixed the polynomial approximation for asin. It was only good between [-9/16,9/16]. Values beyond that range needed be remapped to achieve good numeric results :
arcsin(x) = PI/2 - arcsin(sqrt(1.0 - x*x))
[click here]). -
Andrzej fixed one aspect of vectorising
tensor.extract
Ops when targeting scalable vectors. Namely, it makes sure that the
scalable flag is correctly propagated when creating
vector::ShapeCastOp
.[click here]. -
Donald Chen added to Linalg a pattern to implement
transpose(broadcast(input)) -> broadcast(transpose(input))
[click here] -
Matthias added checks for the number of elements in the result type and the attribute of an
llvm.mlir.constant
op matches. [click here]. Also, fixed type constraint check which was missing in auto-generated from TableGen descriptions.[click here]. -
Benjamin Maxwell added a new transform
eliminateVectorMasks()
which aims at removing scalablevector.create_masks
that will be all-true at
runtime [click here]. -
Victor Perez added optional attributes to
llvm.func
representing LLVM so-called “kernel” metadata. [click here]. -
Mesh Sharding changes and fixes e.g. Replacing
#mesh.sharding
attribute with operationmesh.sharding
[click here]. -
Nikhil added support for parsing nested pass pipeline options [click here].
-
Zhong fixed linalg.batch_reduce_matmul auto cast [click here].
-
Mahesh deprecated
linalg::tileToForallOp
in favor of using thescf::tileUsingSCF
methods as replacements. To get the latter on par with requirements of the deprecated methods, the tiling allows one to specify the maximum number of tiles to use instead of specifying the tile sizes. When tiling toscf.forall
this specification is used to generate thenum_threads
version of the operation. [click here].
Related Projects
- Triton community meeting - https://www.youtube.com/watch?v=uRlqolhNbRk
- IREE community meeting - https://www.youtube.com/watch?v=b779to--7es
- OpenXLA community meeting - https://www.youtube.com/watch?v=YK1CLzIcsJ8&t=2s
Useful Links