Skip to main content
IBM Quantum Platform

OpenQASM tabelle mit 3 Merkmalen

Nachstehend finden Sie eine Liste der Sprachmerkmale von OpenQASM 3 .

Weitere Einzelheiten zu diesen Funktionen finden Sie in der OpenQASM 3.X Live-Spezifikation.

Schlüssel:

  • ❌ Nicht unterstützt
  • 🟡 Teilweise Unterstützung
  • ✅ Unterstützt

Die Bedeutung der vollständigen Markierung "unterstützt" hängt von der jeweiligen Spalte ab:

  • Qiskit SDK : Das Merkmal kann durch qiskit.qasm3.loads (unter Verwendung der qiskit-qasm3-import Erweiterung) analysiert, in einem dargestellt und nach OpenQASMQuantumCircuit 3 exportiert werden qiskit.qasm3.dumps.

  • IBM Quantum Compute-Service : Ein Schaltkreis, der das entsprechende Qiskit-Feature enthält, kann über den „ IBM Quantum “-Compute-Service erfolgreich auf der Hardware ausgeführt werden.

Die Bedeutung der "teilweisen Unterstützung" hängt in der Regel von den damit verbundenen Noten ab.

Note

Die gängigste Methode, Schaltkreise beim „ IBM Quantum Compute Service“ einzureichen, besteht darin, den Schaltkreis über die Schnittstelle „ Python -space“ unter Qiskit SDK zu erstellen. Auf diese Weise erstellte und eingereichte Schaltkreise müssen nicht aus den „ OpenQASM 3“-Dateien in „ Qiskit SDK “ geladen werden.

Wenn Sie „ OpenQASM “ 3 nicht direkt selbst nutzen, können Sie die Funktionen, die für die Darstellung in „ Qiskit SDK “ unterstützt werden, problemlos nutzen, in „ OpenQASM “ 3 exportieren und an den „ IBM Quantum Compute Service“ übermitteln. Dazu gehören Funktionen, die von Qiskit SDK nicht aus OpenQASM 3 geladen werden können.

OpenQASM 3 Merkmal
Qiskit SDK-Funktion
Qiskit-SDK
IBM Quantum Rechendienst
Hinweise
Kommentare✅✅1
QASM vstring✅✅1
include🟡❌1, 7
unicode-Namen✅✅
qubitQubit und QuantumRegister✅🟡2.
bitClbit und ClassicalRegister✅✅3
boolexpr.Var und klassische Ausdrücke🟡✅4
int❌✅4
uintexpr.Var und klassische Ausdrücke🟡✅4
floatexpr.Var und klassische Ausdrücke🟡🟡4
angleImplizit, als Gate-Parameter❌🟡4
complex❌❌4
const❌❌4
pi/π/tau/τ/euler/ℇKonstant-gefaltet in Gatterparameter✅✅
Aliasing: lassenQuanten- und klassische Register🟡❌5
registerverkettungQuanten- und klassische Register🟡❌5
explizite Typumwandlungexpr.Cast klassische Ausdrücke🟡🟡4
duration❌❌
durationof❌❌
ns/µs/us/ms/s/dtDauer von delay und box✅✅6
stretchexpr.Stretch🟡🟡4, 6
delayDelay/QuantumCircuit.delay✅✅6
barrierBarrier/QuantumCircuit.barrier✅✅
boxBoxOp/QuantumCircuit.box✅❌6
Integriert UUGate/QuantumCircuit.u✅✅
gate🟡🟡7
gphaseQuantumCircuit.global_phase🟡❌7
ctrl @/ negctrl @AnnotatedOperation🟡❌7
inv @AnnotatedOperation🟡❌7
pow(k) @AnnotatedOperation🟡❌7
resetReset/QuantumCircuit.reset✅✅
measureMeasure/QuantumCircuit.measure✅✅
bitoperationen🟡✅4
Boolesche Operationen🟡✅4
Arithmetische Ausdrücke🟡🟡4
Vergleiche🟡✅4
ifQuantumCircuit.if_test✅✅8
elseQuantumCircuit.if_test✅✅8
else ifQuantumCircuit.if_test✅❌8
for SchleifenQuantumCircuit.for_loop🟡❌8
while SchleifenQuantumCircuit.while_loop✅❌8
continueQuantumCircuit.continue_loop🟡❌8
breakQuantumCircuit.break_loop🟡❌8
return❌❌
extern❌❌
def unterroutinen (klassisch)❌❌
def unterroutinen (Quantum)❌❌
inputQuantumCircuit.add_input✅🟡4, 9
output❌❌

Hinweise

  1. Diese OpenQASM 3 Programmeigenschaften haben keinen Einfluss auf die Ausführung und Qiskit entfernt sie sie als Teil des Parsens der Dateien heraus. Dateien, die sie verwenden, können eingereicht werden, aber sie haben keine Wirkung. Für include Dateien wird derzeit stdgates.inc als Eingabe für Qiskit unterstützt, und die Backend-Ausführung setzt immer voraus, dass die Schaltkreise mit der Backend-Instruktionssatzarchitektur (ISA) kompiliert wurden, wobei include dateien irrelevant sind.
  1. Qiskit SDK unterstützt das Parsen und Dumpen von OpenQASM 3 Dateien mit beliebigen qubit Deklarationen. Für für die Ausführung auf Hardware sind nur Schaltungen gültig, die in Form von Hardware-Qubits definiert sind (z. B. $0). Qiskit SDK gibt automatisch OpenQASM 3 in Form der unterstützten Hardware-Qubit identifikatoren aus, wenn die Schaltung für ein Backend mit Layout-Informationen transpiliert wurde.
  1. bit- und bit[n]-typisierten Variablendeklarationen in Qiskit SDK entsprechen Clbit und ClassicalRegister deklarationen.
  1. Ab Juli 2025 kann Qiskit SDK lokale Variablen einer begrenzten Anzahl von Typen darstellen, kann viele Laufzeitoperationen auf diesen Objekten darstellen und unterstützt deren Ausgabe auf OpenQASM 3. Das Qiskit SDK (über qiskit-qasm3-import v0.6.0 ) unterstützt jedoch nicht das Parsen von OpenQASM 3 dateien, die Variablendeklarationen enthalten, und bietet nur sehr begrenzte Unterstützung für das Parsen von Variablen ausdrücke. Im Allgemeinen kann das meiste, was Qiskit in seinem Ausdruckssystem darstellen kann, auf auf geeigneter dynamischer Hardware ausgeführt werden, auch wenn der Ausdruck noch nicht von Qiskit SDK geparst werden kann Qiskit SDK. Siehe die Qiskit-Dokumentation des qiskit.circuit.classical moduls finden Sie die aktuellsten Informationen.
  1. Qiskit SDK kann Register-Aliasing sowohl für Quanten- als auch für klassische Register darstellen, aber es wird es wird jedoch dringend davon abgeraten, Aliasing von klassischen Registern zu verwenden. Die meisten Ausdrücke für klassische register funktionieren nicht mit Aliasen, und klassische Register mit Aliasen werden nicht unterstützt für ausführung auf Hardware nicht unterstützt. Der Qiskit OpenQASM 3 Parser kann let Alias-Anweisungen auflösen, die das das Ergebnis der Registerkonkantenbildung.
  1. Qiskit SDK unterstützt explizite Verzögerungen über QuantumCircuit.delay, und Schaltkreise (QuantumCircuit.box) können auch explizite Dauern haben. Diese Dauern können die klassischen ausdrücke von stretch Variablen enthalten. Qiskit SDK (ab Juli 2025 durch qiskit-qasm3-import v0.6.0 ) unterstützt nicht das Parsen von Deklarationen des Typs duration oder des Typs stretch aus OpenQASM 3 Dateien. Die Hardware unterstützt in begrenztem Umfang Zeiträume wie stretch.
  1. Die Schaltungen müssen in den Backend-ISA transpiliert werden, damit sie auf der Hardware IBM laufen. Dies schließt aus, dass benutzerdefinierte gate Definitionen und übergeordnete Konstrukte wie Gate-Modifikatoren (z. B. inv @) wortwörtlich für die Ausführung auf Hardware gültig sind, aber der transpile Prozess löst sie in gültige ISA-Schaltungen. Qiskit SDK (ab Juli 2025, durch qiskit-qasm3-import v0.6.0 ) wertet Gate-Modifikatoren während des Parsens eifrig aus, so dass diese nicht in der resultierenden QuantumCircuit ersichtlich sind, was möglicherweise zu Laufzeitkosten führt.
  1. Qiskit SDK kann einen strukturierten Kontrollfluss darstellen und diesen nach OpenQASM 3 exportieren. Die Anweisungen continue und break können technisch von Qiskit dargestellt werden, werden aber nicht einmal von innerhalb des Qiskit SDK. for schleifen in Qiskit v2.1.0 werden nicht gut unterstützt. Verschachtelter Kontroll fluss (z. B. eine if innerhalb einer anderen if oder eine else if Anweisung) ist nicht zur Ausführung auf Hardware.
  1. Qiskit SDK unterstützt die Deklaration jedes unterstützten klassischen Typs als input Variable auf dem Schaltkreis. Solche Variablen sind derzeit nicht für die Ausführung auf der Hardware geeignet und können nicht geladen werden von den Qiskit OpenQASM 3 Importer geladen werden. Ungebundene Parameter Objekte, die in der QuantumCircuit vorhanden sind, werden als input float[64] Variablen exportiert. Bestimmte Laufzeitkonfigurationsoptionen können die Ausführung solcher Schaltungen auf einigen Backends ermöglichen.

Nächste Schritte

Empfehlungen
War diese Seite hilfreich?
Melden Sie auf GitHub einen Fehler, einen Tippfehler oder fordern Sie Inhalte an.