Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Lesedauer 3 Min.

Quantum Intermediate Representation (QIR)

QIR ist eine von Microsoft entwickelte Zwischendarstellung für Quantenprogramme, die auf der Open-Source-Zwischensprache LLVM basiert. QIR spezifiziert eine Reihe von Regeln für die Darstellung von Quantenkonstrukten im LLVM.
QIR soll als gemeinsame Schnittstelle zwischen vielen Sprachen und Quantencomputer-Plattformen dienen. Obwohl Q# unterstützt wird, ist QIR nicht spezifisch für Q#: jede Programmiersprache für Gate-basierte Quantenberechnungen kann in QIR dargestellt werden. In ähnlicher Weise ist QIR hardware-agnostisch: es spezifiziert keinen Quantenbefehl oder Gate-Satz und überlässt dies der Zielumgebung.Mit zunehmender Reife der Quanten-Computing-Fähigkeiten erwartet Microsoft – so schreibt Microsoft-Mitarbeiter Alan Geller in diesem Blogbeitrag –, dass die meisten groß angelegten Quantenanwendungen die Vorteile der Zusammenarbeit von klassischen und Quanten-Computing-Ressourcen voll ausschöpfen werden. LLVM bietet der QIR volle Fähigkeiten zur Beschreibung reichhaltiger klassischer Berechnungen, die vollständig in die Quantenberechnung integriert sind. Die Verwendung von LLVM erleichtert auch die Integration mit den vielen klassischen Sprachen und Werkzeugen, die bereits von der LLVM-Werkzeugkette unterstützt werden. Es fördert auch die Entwicklung gemeinsamer sprach- und backend-unabhängiger Optimierungen und Code-Transformationen, die auf einem bekannten und robusten Open-Source-Framework basieren.Ein übliches Muster bei Compilern besteht darin, zunächst die Quellsprache in eine Zwischendarstellung zu kompilieren. Diese Zwischenform ist typischerweise so ausgelegt, dass viele verschiedene Quellsprachen dargestellt werden können. Während sich der Code noch in der Zwischendarstellung befindet, kann er optimiert und transformiert werden. Sobald die tatsächliche Ausführungsplattform bekannt ist, wird die Zwischendarstellung schließlich zu tatsächlich ausführbarem Code kompiliert.Dieser Ansatz ermöglicht es vielen Quellsprachen, einen gemeinsamen Satz von Optimierern und ausführbaren Generatoren zu verwenden. Er macht es auch einfach, eine einzige Quellsprache für viele verschiedene Ziele zu kompilieren. Die Zwischendarstellung stellt eine gemeinsame Plattform zur Verfügung, die von vielen Quellen und Zielen gemeinsam genutzt werden kann und eine weitgehende Wiederverwendung in Compiler-Maschinen ermöglicht.

Was kann man mit QIR tun?

Eine durch QIR ermöglichte Anwendung ist die Verwendung des Clang-Compilers, um QIR in ausführbaren Maschinencode für ein klassisches Ziel zu kompilieren. Dies bietet einen einfachen Weg zum Aufbau eines Simulators in C oder C++ durch Implementierung von Quantenbefehlssatzfunktionen.Eine weitere Anwendung ist die Verwendung der Standard-"Pass"-Infrastruktur des LVM, um Quantenoptimierer zu schreiben, die mit QIR arbeiten. Der quell- und zielunabhängige Ansatz von QIR ermöglicht die Verwendung von Optimierungen mit vielen verschiedenen Berechnungssprachen und Rechnerplattformen.Microsoft hat QIR bereits mit einigen Partnern geteilt, um frühzeitiges Feedback zu erhalten. So sagt beispielsweise Alex McCaskey, Quanteninformatiker und XACC-Projektleiter des Oak Ridge National Laboratory, Alex McCaskey: "Das ORNL arbeitet eng mit dem Quantencompiler-Team von Microsoft zusammen, um die Kompilierung von Q#-Programmen auf hoher Ebene für die verschiedenen Quantenhardware-Plattformen von OLCF durch die Integration mit dem Quantenprogrammier-Framework XACC zu ermöglichen.Weitere Informationen und Links finden Sie in diesem Blogbeitrag von Alan Geller.

Neueste Beiträge

Generative AI und Python - Python und AI, Teil 4
Generative KI mit Python nutzen und so die Basis für eigene Anwendungen schaffen.
7 Minuten
Builder meets Faker - Testdata-Builder, Teil 2
Wer viele Testdaten braucht, liebt Bogus: Die Library erzeugt auf Knopfdruck realistische Daten und geht mit dem Builder-Pattern eine perfekte Kombination ein.
6 Minuten
12. Nov 2025
DDC hakt nach: Hör auf, Dich über Verbindungsstrings zu ärgern
Die App läuft lokal wie geschmiert, aber sobald Backend-Services ins Spiel kommen, stottert die Maschine. Connection Strings, die nicht wollen. Emulator-Konfigurationen, die nerven. Johan Smarius erklärt im Interview und auf der .NET Developer Conference 2025, wie es anders - und viel besser geht.
4 Minuten
10. Nov 2025
Miscellaneous

Das könnte Dich auch interessieren

Wexflow: .NET Open Source Workflow-Engine - CodeProject
Wexflow ist eine quelloffene und plattformübergreifende Workflow-Engine und Automatisierungsplattform, die darauf abzielt, wiederkehrende Aufgaben zu automatisieren.
2 Minuten
C#-.NET-Apps mit WinUI 3 - Komponentenbasierte Apps mit Fluent/FAST, Teil 3
Microsoft macht mit WinUI 3 ein natives User-Experience-Framework für Windows verfügbar, dessen Komponenten auf dem Microsoft-eigenen Design-System Fluent 2 basieren.
23 Minuten
13. Mai 2024
Das Model Context Protocol (MCP) mit C# verwenden - Kommunikation mit der KI
Mit dem neuen MCP C# SDK können Entwickler die Kommunikation zwischen KI-Modellen und Anwendungen effizient gestalten. Ein Blogpost bietet eine Schritt-für-Schritt-Anleitung zur Implementierung eines MCP-Servers.
3 Minuten
10. Apr 2025
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige