Bibliothek / SDK
mirage-project/mirage avatar
mirage-project/mirage

Mirage Persistent Kernel kompiliert LLM-Inferenz in einen Persistent Kernel

Mirage Persistent Kernel: Kompilieren von LLMs in einen MegaKernel. Mit Quickstart Mirage können Sie LLMs aus dem Hugging Face-Modellzoo in einen Megakernel kompilieren, indem Sie nur ein paar Dutzend Python-Zeilen verwenden – hauptsächlich zum Definieren der Ein- und Ausgänge des Kernels.

2.490 Sterne252 ForksCudaApache-2.0

Auf einen Blick

Was ist das?
Mirage Persistent Kernel: dokumentierter Zweck, Einstieg, Betriebsfragen und Grenzen.
Für wen ist es gedacht?
Geeignet für Anwender, deren Aufgabe zu Mirage Persistent Kernel und den dokumentierten Bausteinen passt. Ungeeignet als allgemeine Zusage für fremde Umgebungen.
Darf ich es kommerziell nutzen?
Ja. Apache-2.0 ist eine freizügige Lizenz: Sie dürfen darauf aufbauende Software nutzen, verändern und verkaufen, solange Sie die Urheberrechts- und Lizenzhinweise beibehalten.
Wird es noch gepflegt?
Ja. Die letzten Commits kamen vor 4 Tagen.
In welcher Sprache ist es geschrieben?
Hauptsächlich Cuda, laut der Sprachstatistik von GitHub.

Die Antworten beruhen auf den GitHub-Daten des Projekts (zuletzt abgeglichen am 14. September 2026) und auf unserer Analyse. Sie sind keine Rechtsberatung.

TIEFGEHENDE OPEN-SOURCE-ANALYSE

Worum es bei Mirage Persistent Kernel geht

MPK ist der Standardzweig des Repositories mirage-project/mirage. Es ist ein Compiler- und Laufzeitsystem, das Multi-GPU-LLM-Inferenz automatisch in einen einzigen Megakernel umwandelt: einen fusionierten GPU-Kernel, der alle Berechnungen und Kommunikation innerhalb eines einzigen Kernel-Aufrufs ausführt. Die README berichtet von Latenzreduktionen von 1,2x bis 6,7x für LLM-Inferenz bei minimalem Entwicklungsaufwand. Diese Zahl ist die Behauptung des Projekts; dieser Artikel verifiziert sie nicht unabhängig. Das Repository ist in Cuda geschrieben und hat derzeit 2407 Sterne und 227 offene Issues.

Bei Mirage Persistent Kernel ist Qwen3 kein austauschbares Schlagwort, sondern ein konkreter Teil der veröffentlichten Projektbeschreibung. Die README nennt PersistentKernel ebenfalls und grenzt damit den vorgesehenen Einsatz ein. Für die Einordnung zählt daher, ob genau diese Kombination in der eigenen Umgebung vorhanden ist. Aussagen zu Leistung, Verfügbarkeit oder Kompatibilität, die die Quelle nicht macht, werden hier nicht ergänzt.

Ein nachvollziehbarer Prüfpunkt liegt bei Qwen3: Lies die zugehörige README-Stelle, führe den dort genannten Einstieg aus und beobachte die beschriebene Ausgabe oder Änderung. Bei Mirage Persistent Kernel lässt sich so unterscheiden, ob die Funktion lokal sichtbar ist oder nur als geplante, optionale oder externe Ergänzung erwähnt wird. Das ist eine projektspezifische Prüfung und kein Ersatz für die offenen Angaben der Quelle.

Die Bausteine Mirage Persistent Kernels

Die README beschreibt nur die Installation aus dem Quellcode. Die Schritte sind: git clone --recursive --branch mpk https://www.github.com/mirage-project/mirage, dann cd mirage, pip install -e . -v und export MIRAGE_HOME=$(pwd). Stand 19. Juni 2025 sind vorgefertigte Binär-Wheels noch nicht verfügbar; das Projekt sagt, dass es daran arbeitet und die Anweisungen aktualisieren wird, sobald sie bereit sind. Andere Installationsmethoden sind nicht dokumentiert.

Bei Mirage Persistent Kernel ist PersistentKernel kein austauschbares Schlagwort, sondern ein konkreter Teil der veröffentlichten Projektbeschreibung. Die README nennt Tensorverwaltung ebenfalls und grenzt damit den vorgesehenen Einsatz ein. Für die Einordnung zählt daher, ob genau diese Kombination in der eigenen Umgebung vorhanden ist. Aussagen zu Leistung, Verfügbarkeit oder Kompatibilität, die die Quelle nicht macht, werden hier nicht ergänzt.

Ein nachvollziehbarer Prüfpunkt liegt bei PersistentKernel: Lies die zugehörige README-Stelle, führe den dort genannten Einstieg aus und beobachte die beschriebene Ausgabe oder Änderung. Bei Mirage Persistent Kernel lässt sich so unterscheiden, ob die Funktion lokal sichtbar ist oder nur als geplante, optionale oder externe Ergänzung erwähnt wird. Das ist eine projektspezifische Prüfung und kein Ersatz für die offenen Angaben der Quelle.

Der dokumentierte Einstieg mit Mirage Persistent Kernel

Ein Demo-Skript kompiliert das Modell Qwen3-8B aus dem Hugging-Face-Modellzoo in einen Megakernel. Der Grundbefehl ist python demo/qwen3/demo.py, der mit nativen Triton- und FlashInfer-Kerneln läuft. Um den Megakernel mit MPK zu kompilieren und auszuführen, fügen Sie --use-mirage hinzu. Das Hinzufügen von --profiling visualisiert die Ausführungszeitlinie jeder Aufgabe. Die README verweist auf demo/qwen3/demo.py im mpk-Zweig, aber wir haben es nicht unabhängig ausgeführt.

Bei Mirage Persistent Kernel ist Tensorverwaltung kein austauschbares Schlagwort, sondern ein konkreter Teil der veröffentlichten Projektbeschreibung. Die README nennt Berechnungsgraph ebenfalls und grenzt damit den vorgesehenen Einsatz ein. Für die Einordnung zählt daher, ob genau diese Kombination in der eigenen Umgebung vorhanden ist. Aussagen zu Leistung, Verfügbarkeit oder Kompatibilität, die die Quelle nicht macht, werden hier nicht ergänzt.

Ein nachvollziehbarer Prüfpunkt liegt bei Tensorverwaltung: Lies die zugehörige README-Stelle, führe den dort genannten Einstieg aus und beobachte die beschriebene Ausgabe oder Änderung. Bei Mirage Persistent Kernel lässt sich so unterscheiden, ob die Funktion lokal sichtbar ist oder nur als geplante, optionale oder externe Ergänzung erwähnt wird. Das ist eine projektspezifische Prüfung und kein Ersatz für die offenen Angaben der Quelle.

Betrieb und Konfiguration von Mirage Persistent Kernel

Die Kern-API ist mi.PersistentKernel. Sie nimmt world_size und mpi_rank für die Anzahl der GPUs und den aktuellen Rang sowie num_workers, num_local_schedulers und num_remote_schedulers entgegen. Diese müssen die Bedingung erfüllen, dass num_workers plus (num_local_schedulers + num_remote_schedulers) geteilt durch 4 gleich der Anzahl der physischen SMs ist. Zwei Meta-Tensoren sind erforderlich: step, ein Integer-Array, das den Dekodierungsschritt verfolgt und nach jeder Iteration inkrementiert wird, und tokens mit der Form [num_requests, seq_length]. Hängen Sie einen vorhandenen PyTorch-Tensor mit mpk.attach_input(torch_tensor=..., name=...) an. Weisen Sie einen neuen Tensor mit mpk.new_tensor(dims=..., dtype=..., name=..., io_category=...) zu, wobei io_category entweder 'cuda_tensor' oder 'nvshmem_tensor' für den Fernzugriff auf GPUs ist.

Bei Mirage Persistent Kernel ist Berechnungsgraph kein austauschbares Schlagwort, sondern ein konkreter Teil der veröffentlichten Projektbeschreibung. Die README nennt CMake ebenfalls und grenzt damit den vorgesehenen Einsatz ein. Für die Einordnung zählt daher, ob genau diese Kombination in der eigenen Umgebung vorhanden ist. Aussagen zu Leistung, Verfügbarkeit oder Kompatibilität, die die Quelle nicht macht, werden hier nicht ergänzt.

Ein nachvollziehbarer Prüfpunkt liegt bei Berechnungsgraph: Lies die zugehörige README-Stelle, führe den dort genannten Einstieg aus und beobachte die beschriebene Ausgabe oder Änderung. Bei Mirage Persistent Kernel lässt sich so unterscheiden, ob die Funktion lokal sichtbar ist oder nur als geplante, optionale oder externe Ergänzung erwähnt wird. Das ist eine projektspezifische Prüfung und kein Ersatz für die offenen Angaben der Quelle.

Grenzen der README-Aussagen zu Mirage Persistent Kernel

Fusionierte Operationen werden verkettet, um den Graphen aufzubauen. Das angegebene Beispiel ist mpk.rmsnorm_linear_layer, das eine RMSNorm-Schicht und eine lineare Schicht fusioniert. Es nimmt input, weight_norm, weight_linear, output, grid_dim und block_dim entgegen. grid_dim und block_dim legen die Anzahl der Thread-Blöcke und die Anzahl der Threads pro Block fest. Die README empfiehlt, dass die Gesamtzahl der Thread-Blöcke ein Vielfaches der Anzahl der Worker sein sollte, um die Latenz zu minimieren. Nachdem der Graph definiert ist, erstellt mpk.compile() den Megakernel, und der Aufruf mpk() führt ihn aus.

Bei Mirage Persistent Kernel ist CMake kein austauschbares Schlagwort, sondern ein konkreter Teil der veröffentlichten Projektbeschreibung. Die README nennt Megakernel ebenfalls und grenzt damit den vorgesehenen Einsatz ein. Für die Einordnung zählt daher, ob genau diese Kombination in der eigenen Umgebung vorhanden ist. Aussagen zu Leistung, Verfügbarkeit oder Kompatibilität, die die Quelle nicht macht, werden hier nicht ergänzt.

Ein nachvollziehbarer Prüfpunkt liegt bei CMake: Lies die zugehörige README-Stelle, führe den dort genannten Einstieg aus und beobachte die beschriebene Ausgabe oder Änderung. Bei Mirage Persistent Kernel lässt sich so unterscheiden, ob die Funktion lokal sichtbar ist oder nur als geplante, optionale oder externe Ergänzung erwähnt wird. Das ist eine projektspezifische Prüfung und kein Ersatz für die offenen Angaben der Quelle.

Prüfung und Einordnung von Mirage Persistent Kernel

Die Projekt-Homepage ist mirage-project.readthedocs.io. Die README verlinkt auf einen Slack-Kanal, eine Roadmap in Issue 325 und einen Blogbeitrag. Zwei OSDI-Papiere sind aufgeführt: 'Mirage: A Multi-Level Superoptimizer for Tensor Programs' auf dem OSDI 2025 und 'MPK: A Compiler and Runtime for Mega-Kernelizing Tensor Programs' auf dem OSDI 2026, mit einem arXiv-Link. Ein drittes Papier zum Identitätstest für Schaltungen mit Exponentiationsgattern wird ebenfalls zitiert. Das Repository ist unter Apache 2.0 lizenziert, was Urheberrechts- und Patentlizenzen für Nutzung und Weiterverbreitung gewährt, aber keine Garantie oder Unterstützung bietet.

Bei Mirage Persistent Kernel ist Megakernel kein austauschbares Schlagwort, sondern ein konkreter Teil der veröffentlichten Projektbeschreibung. Die README nennt Qwen3 ebenfalls und grenzt damit den vorgesehenen Einsatz ein. Für die Einordnung zählt daher, ob genau diese Kombination in der eigenen Umgebung vorhanden ist. Aussagen zu Leistung, Verfügbarkeit oder Kompatibilität, die die Quelle nicht macht, werden hier nicht ergänzt.

Ein nachvollziehbarer Prüfpunkt liegt bei Megakernel: Lies die zugehörige README-Stelle, führe den dort genannten Einstieg aus und beobachte die beschriebene Ausgabe oder Änderung. Bei Mirage Persistent Kernel lässt sich so unterscheiden, ob die Funktion lokal sichtbar ist oder nur als geplante, optionale oder externe Ergänzung erwähnt wird. Das ist eine projektspezifische Prüfung und kein Ersatz für die offenen Angaben der Quelle.

Redaktionelles Fazit

Geeignet für Anwender, deren Aufgabe zu Mirage Persistent Kernel und den dokumentierten Bausteinen passt. Ungeeignet als allgemeine Zusage für fremde Umgebungen. Prüfe zuerst Qwen3, PersistentKernel und die dabei entstehende Ausgabe, bevor du das Projekt in einen verbindlichen Ablauf übernimmst.

Offizielle Quellen

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Community-Notizen

Community-Notizen