Note: The MLIR (Un)School is a dynamic event → Our Schedule evolves until and throughout the MLIR (Un)School.
Day 1 | Monday, Sep 8
Time | MLIR Core @ Ground Floor | Specialized 1 | Specialized 2 | Specialized 3 |
---|---|---|---|---|
9:00 | — Arrival — | |||
9:30 | Welcome + Introductions Tobias Grosser & Fabrice Rastello |
|||
10:00 | Introductory Sessions I Moderation: Tobias Grosser & Alexander Viand |
|||
11:00 | — Coffee — | |||
11:30 | Introductory sessions II Moderation: Tobias Grosser & Alexander Viand |
|||
12:30 | — Lunch — | |||
13:30 | Introduction To MLIR - hands on (web) Theo Degioanni, Mathieu Fehr, Sasha Lopoukhine |
Quantum Computing Samin Ishtiaq |
Crypto & Zero Knowledge Alexander Viand |
Backend and ISA Fabrice Rastello & Ayal Zaks |
15:00 | — Coffee — | |||
15:30 | Introduction To MLIR - deep dive (pdf, pptx) Mehdi Amini |
Formal Semantics Tobias Grosser |
Scheduling & Search Space Exploration Alex Zinenko |
Hardware Accelerators Kunwar Grover |
17:00 | End of day program | |||
17:45 | — Drink Reception — | |||
18:30 | — Formal Dinner — | |||
21:00 | Open Program: e.g., hang out at college bar | |||
23:30 | Last Drinks in College Bar | |||
00:00 | College Bar Closes |
Day 2 | Tuesday, Sep 9
Time | MLIR Core @ Ground Floor | Specialized 1 | Specialized 2 | Specialized 3 |
---|---|---|---|---|
9:00 | — Arrival — | |||
9:30 | Report from Expert Sessions on Plan for Week | |||
10:00 | Peer-to-Peer Skillshare | |||
11:00 | — Coffee — | |||
11:30 | Peer-to-Peer Skillshare | |||
12:30 | — Lunch — | |||
13:30 | Define And Lower Your New Dialect (web) Sylvain Noiry |
Quantum Computing Samin Ishtiaq |
Crypto & Zero Knowledge Alexander Viand |
Backend and ISA Fabrice Rastello & Ayal Zaks |
15:00 | — Coffee — | |||
15:30 | Understanding Interfaces (pdf) Matthias Springer |
Formal Semantics Tobias Grosser |
Scheduling & Search Space Exploration Alex Zinenko |
Hardware Accelerators Kunwar Grover |
17:00 | End of day program | |||
18:00 | — Dinner @ Garden Restaurant Robinson College — | |||
19:00 | Open Program: e.g., hang out at College Bar | |||
23:30 | Last Drinks in College Bar | |||
00:00 | College Bar Closes |
Day 3 | Wednesday, Sep 10
Time | MLIR Core @ Ground Floor | Syndicate Room 1 | Syndicate Room 2 | Syndicate Room 3 |
---|---|---|---|---|
9:00 | — Arrival — | |||
9:30 | Hackathon / MLIR Clinic | Working Group for Polyhedral Model in MLIR (pdf) Guillaume Iooss |
To compile for ML, I need an MLPlan Fabrice Rastello |
|
11:00 | — Coffee — | |||
11:30 | Hackathon / MLIR Clinic | Software Pipelining for Kernel Code Generation (pdf) Benoît Dupont de Dinechin |
Defining Dialects Declaratively: The IRDL Roadmap Theo Degioanni |
|
12:30 | — Lunch — | |||
13:30 | Hackathon | Specifying peephole optimizations with PDL Sasha Lopoukhine |
||
15:00 | — Coffee — | |||
15:35 | Social Events: Punting @ Mill Lane City Tour @ Workshop Venue (Foyer) |
|||
17:00 | End of day program | |||
18:00 | — Dinner @ Garden Restaurant — | |||
19:00 | Open Program: e.g., hang out at College Bar | |||
23:30 | Last Drinks in College Bar | |||
00:00 | College Bar Closes |
Day 4 | Thursday, Sep 11
Time | MLIR Core @ Ground Floor | Syndicate Room 1 | Syndicate Room 2 | Syndicate Room 3 |
---|---|---|---|---|
9:00 | — Arrival — | |||
9:30 | Hackathon | |||
11:00 | — Coffee — | |||
11:30 | Hackathon / MLIR Clinic | |||
12:30 | — Lunch — | |||
13:30 | Schedule Loop Nests with Transform (pdf) Alex Zinenko |
|||
15:00 | — Coffee — | |||
15:30 | Discover Low-Level MLIR Abstractions (web) Kunwar Grover |
Expert Track & Free Hack | ||
16:20 | Gathering Feedback and Joint Closing of the (Un)School | |||
17:00 | End of day program | |||
18:00 | — Dinner @ Garden Restaurant — | |||
19:00 | Open Program / Bar | |||
23:30 | Last Drinks in College Bar | |||
00:00 | College Bar Closes |
Day 5 | Friday, Sep 12
See Open Day - MLIR (Un)School Meets Compiler Community.
Talk Abstracts
Introduction To MLIR - hands on (web), Sasha Lopoukhine, Mathieu Fehr, Théo Degioanni
This hands-on, introductory class is your perfect entry point to MLIR (Multi-Level Intermediate Representation). We will start from the ground up, demystifying what MLIR is and exploring its intermediate representation (IR) through a simple array DSL. Through a series of interactive examples, you will learn how to understand MLIR IR and apply passes to transform it. We'll demonstrate the power and benefits of defining your own MLIR dialect and progressively lower code from a high-level representation to a lower-level one. By the end of this session, you will have the keys to understand MLIR foundations, and what you could do with it in your projects.Define And Lower Your New Dialect (web), Sylvain Noiry
In this hands-on session, you will learn how to create the “List” dialect, introduced in the first lesson. You will practice in an out-of-tree MLIR project and develop your dialect in the standard way, without using xDSL or IRDL. This will give you an opportunity to apply the concepts learned in the previous lessons. The session is organized into multiple exercises, each exploring a different aspect of dialect creation. Every exercise comes with a README, hints, and links to the portion of the official MLIR documentation. You can progress in the exercises either with the teachers or at your own pace. The goal is to provide you with both the knowledge and a project template to help you create your own dialect for your ideas.Understanding Interfaces (pdf), Matthias Springer
Interfaces are a cornerstone of extensibility and modularity in MLIR. This session covers operation interfaces, type interfaces and attribute interfaces, and how to design and implement them. The main part of the session will focus on existing core interfaces in MLIR. Attendees will gain insight into how interfaces drive analyses and transformations, improve code structure, and facilitate scalable compiler development. Topics Covered:- What interfaces are, where they are used in MLIR and how to design / implement interfaces.
- Real-world examples and demonstrations of core interfaces: from memory effects and control-flow modeling to bufferization and type abstraction. This session covers a wide range of core MLIR interfaces that model op semantics and drive analyses / transformations.
- Discussion of challenges and open questions in the design of the covered interfaces.
Schedule Loop Nests with Transform (pdf), Alex Zinenko
MLIR features support for declaratively specifying and controlling compiler transformations via the transform dialect. It allows one to request compiler transformations using compiler IR itself, which can be embedded into the original IR that is being transformed (similarly to pragmas) or supplied separately (similarly to scheduling languages). This talk presents the concepts of the MLIR transform dialect and related infrastructure. It will be accompanied by a practical demonstration of three use scenarios centered on loop optimization. After following the task, the attendees will be able to apply the transform dialect in their work and extend it when necessary. Basic familiarity with MLIR is a prerequisite.Discover Low-Level MLIR Abstractions (web), Kunwar Grover
One of the best ways to learn how to use MLIR is to build a language that you can interact with and play around with. MLIR is "batteries included", and has multiple dialects and transformations that exist in-tree, which are enough to build a simple vector math DSL. In this lesson, we will aim to learn how to move into and out of the MLIR ecosystem, moving in from a DSL frontend, getting out to LLVM IR towards assembly, and using this DSL from a general purpose programming language like Python.Software Pipelining for Kernel Code Generation (pdf), Benoît Dupont de Dinechin
Kalray has a deep learning graph compiler in production, which targets a manycore processor built from VLIW cores. This Kalray graph compiler relies on a library of tensor processing kernels, most of which have been manually optimized and software pipelined. A key challenge is automating software pipelining for tensor processing kernels. We first review the principles and implementation of software pipeliners by modulo scheduling in C/C++ compilers. We then outline a new modulo scheduling approach, currently prototyped in GCC, which we plan to move to a MLIR-based kernel compiler.Bio: Benoît Dupont de Dinechin (https://sites.google.com/site/benoitdinechin) is CTO at Kalray. He directly contributed to the design and implementation of production compilers with software pipelining at Cray Research, STMicroelectronics, and Kalray. He is also the co-architect of the Kalray VLIW cores and their tensor operators.