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

Dokumente in MongoDB speichern
Der GridFS-Speicher als Fundament für KI-gestützte .NET-Anwendungen
6 Minuten
13. Aug 2025
Managed DevOps Pools - Azure DevOps Pipelines Security
Agent Pools als Managed Service mit einfacher Integration in private Netzwerke und Authentisierung mittels Managed Identity tragen deutlich zur Sicherheit der Agent-Infrastruktur bei.
7 Minuten
7. Aug 2025
Meine Ziele – deine Ziele – unsere Ziele
Verfolgt ein Entwicklungsteam gemeinsame Ziele, so kommt, auch bei sehr erfolgreichen Teams, irgendwann der Zeitpunkt, wo die individuellen Ziele einzelner Mitglieder in den Vordergrund treten und das Team gefährden. Warum ist das so, und wie gehen wir damit angemessen um?
7 Minuten
14. Aug 2025
Miscellaneous

Das könnte Dich auch interessieren

Sicher ist sicher - Azure DevOps Pipelines Security
Als integraler Bestandteil der Entwicklungsumgebung ist Azure DevOps Pipelines oft Ziel von Angriffen. Da ist es gut zu wissen, wo die Schwachstellen des Systems liegen.
14 Minuten
16. Jun 2025
CodeProject.AI Server in neuer Version - Lokaler AI-Server
CodeProject.AI Server (jetzt in Version 2.1.10) ist ein lokal installierter, selbstgehosteter, schneller, kostenloser und Open Source Artificial Intelligence Server für jede Plattform und jede Sprache.
2 Minuten
Für Einsteiger: Backend-Webentwicklung mit .NET - Microsoft
Auf YouTube bietet Microsoft eine Videoserie für Einsteiger in die Backend-Webentwicklung mit .NET.
2 Minuten
13. Feb 2024
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige