Das Seminar behandelt MLIR als Infrastruktur für mehrstufige Compiler und domänenspezifische Zwischendarstellungen. Der Fokus liegt auf Dialekten, Operationen, Typen, Pattern Rewriting, Pass-Infrastruktur, Lowering-Strategien und der Anbindung an LLVM IR.
Vier Tage sind erforderlich, weil MLIR ein eigenes Programmiermodell mit Operationen, Dialekten, Traits, Interfaces, Rewrite-Patterns und Konversionsmechanismen besitzt. Die Inhalte verbinden Konzeptarbeit mit praktischer Pipeline-Struktur.
Kapitel 1: MLIR-Grundmodell und IR-Struktur
Inhaltsverzeichnis
- Operationen, Regionen und Blöcke
- Attribute, Typen und Symbolik
- Kontext und Verifikation
Schritt 1: IR-Struktur lesen
Eine MLIR-Datei wird in Operationen, Regionen, Blöcke und Werte zerlegt. Verschachtelung und Symbolbezüge werden als zentrales Organisationsprinzip verstanden.
Schritt 2: Typen und Attribute einordnen
Statische Informationen werden über Typen und Attribute modelliert. Der Unterschied zwischen struktureller Information und semantischer Bedeutung wird herausgearbeitet.
Schritt 3: Verifikation nutzen
Operationen werden mit Invarianten verbunden. Verifier-Meldungen werden genutzt, um Dialektregeln und ungültige IR-Zustände nachvollziehbar zu machen.
Kapitel 2: Eigene Dialekte und Operationen
Inhaltsverzeichnis
- ODS und TableGen-nahe Beschreibungen
- Traits und Interfaces
- Parser, Printer und Verifier
Schritt 1: Dialektgrenzen definieren
Ein Dialekt wird anhand seiner fachlichen Verantwortung abgegrenzt. Operationen werden so gewählt, dass Analyse und Transformation später kontrollierbar bleiben.
Schritt 2: Operationen beschreiben
Operanden, Resultate, Attribute, Traits und Interfaces werden festgelegt. Die Beschreibung wird mit Verifikation und lesbarer Ausgabe verbunden.
Schritt 3: Benutzerfreundliche IR schaffen
Custom Parsing und Printing werden als Mittel für lesbare Testfälle und bessere Diagnose eingeordnet. Komplexität wird nur dort eingeführt, wo sie fachlich Nutzen bringt.
Kapitel 3: Pattern Rewriting und Pass-Infrastruktur
Inhaltsverzeichnis
- Rewrite Patterns
- Canonicalization
- Operation Passes und Pipelines
Schritt 1: Rewrite-Regeln formulieren
Operationen werden über Muster erkannt und ersetzt. Die Regel wird mit Vorbedingungen versehen, damit Transformationen semantisch korrekt bleiben.
Schritt 2: Kanonische Formen nutzen
Canonicalization wird als wiederholbare Vereinfachung verstanden. Der Nutzen für spätere Lowering-Schritte und Tests wird anhand kleiner Beispiele sichtbar gemacht.
Schritt 3: Passes strukturieren
Operation Passes werden in Pipelines organisiert. Analyse, Transformation und Fehlerbehandlung werden so getrennt, dass parallele und verschachtelte Ausführung nachvollziehbar bleibt.
Kapitel 4: Dialect Conversion und Lowering nach LLVM IR
Inhaltsverzeichnis
- Conversion Target und Type Converter
- Teilweises und vollständiges Lowering
- Übersetzung Richtung LLVM IR
Schritt 1: Legalität definieren
Ein Conversion Target legt fest, welche Operationen erlaubt sind. Dadurch wird Lowering nicht als Textumwandlung, sondern als kontrollierte IR-Transformation behandelt.
Schritt 2: Typen konvertieren
Ein Type Converter überführt höherstufige Typen in niedrigere Repräsentationen. Region-Signaturen, MemRefs und Funktionsgrenzen werden berücksichtigt.
Schritt 3: Pipeline abschließen
Die Pipeline führt von höherstufigen Dialekten zu LLVM-nahen Dialekten und weiter Richtung LLVM IR. Tests prüfen jeden Zwischenstand, damit Fehler früh isoliert werden.
Fachbereichsleitung / Trainerleitung / Ansprechpartner
-

Lucas Beich
Telefon: + 49 (221) 74740055
E-Mail: lucas.beich@seminar-experts.de -

Paul Goldschmidt
Telefon: + 49 (221) 74740055
E-Mail: paul.goldschmidt@seminar-experts.de
Seminardetails
| Dauer: | 4 Tage ca. 6 h/Tag, Beginn 1. Tag: 10:00 Uhr, weitere Tage 09:00 Uhr |
| Preis: |
Öffentlich oder Live Stream: € 2.396 zzgl. MwSt. Inhaus: € 6.800 zzgl. MwSt. |
| Teilnehmeranzahl: | min. 2 - max. 8 |
| Teilnehmerkreis: | Compiler-Entwicklung, Domain-spezifische Sprachen, KI-Compiler, HPC, Embedded- und Hardware-nahe Softwareentwicklung |
| Voraussetzungen: | Gute C++-Kenntnisse, Compiler-Grundlagen und Grundverständnis von IR-Konzepten |
| Standorte: | Live-Online, Firmenstandort, Schulungszentrum |
| Unterlagen: | Seminarunterlagen, Übungen, Beispielprojekte |
Seminartermine
Die Ergebnissliste kann durch Anklicken der Überschrift neu sortiert werden.
