- A Template-Based Code Generation Approach for MLIR -Florian Drescher
- RISC-V Vector Extension Support in MLIR: Motivation, Abstraction, and Application -Hongbin Zhang
- mlirSynth: Synthesis of Domain-Specific Programs in MLIR -Alexander Brauckmann
- MLIR Query Tool for easier exploration of the IR -Devajith Valaparambil Sreeramaswamy
A Template-Based Code Generation Approach for MLIR -Florian Drescher
In the talk, we introduce a template-based compilation approach for MLIR dialects. It derives code templates ahead-of-time for MLIR instructions using the already implemented lowerings. During run-time compilation of a program, it stitches together the created templates and patches missing constants to quickly derive native. We apply our compiler on database queries (LingoDB) as well as ONNX models and achieve compile-time speed-ups between 60x and 1000x at the cost of slower execution by the factor two to three compared to the existing LLVM compilation back-end.
In this presentation, we describe our approach for fast, template-based compilation and outline our vision on how to improve on the idea and establish template-based compilation as a new code generation approach for MLIR as an alternative to the currently used LLVM back-end.
RISC-V Vector Extension Support in MLIR: Motivation, Abstraction, and Application -Hongbin Zhang
This talk will share our work on supporting the RISC-V Vector (RVV) extension in MLIR. The RVV extension provides high-performance vector instructions, and the parallelism model is different from other SIMD architectures. However, MLIR vector abstractions cannot support some RVV features, especially the dynamic vector length and register group configuration. To address this issue, we add custom MLIR abstractions to support RVV parallelism model, and our design balances generic and specialized parts to avoid introducing fragmentation. As a demonstration case, we use our abstractions to implement a vectorization optimization for the matrix multiplication operation.
mlirSynth: Synthesis of Domain-Specific Programs in MLIR -Alexander Brauckmann
mlirSynth is a tool that automatically raises programs to high-level MLIR dialects, using MLIR's dialect definitions, instead of relying on manually-defined rules that are difficult to maintain. Our experiments show that mlirSynth achieves higher coverage than existing rule-based approaches on the PolyBench benchmark and enables high performance through domain-specific compilation.
MLIR Query Tool for easier exploration of the IR -Devajith Valaparambil Sreeramaswamy
This talk will introduce mlir-query, a query language tool designed to simplify the exploration of the Intermediate Representation (IR) of code in MLIR. mlir-query aims to provide a more efficient means of understanding and debugging the IR, which can be challenging without a query language. The presentation will showcase the tool's basic queries, such as operation, hasName, resultOf, and constant queries, along with a demo of its usefulness.