interop Paket
Klassen
| PeakUsageGreedyQubitManager |
Ein Qubit-Manager, der Compute- und Speicher-Qubits separat nachverfolgt. Es besteht aus zwei unabhängigen Qubit-Managern für jeden Qubit-Typ. Jeder Manager verwendet eine gierige Zuordnungsstrategie von Qubits eines Typs können nach dem Freigeben nicht als Qubits unterschiedlicher Art wiederverwendet werden. Daher ist die Spitzen-Qubitanzahl gleich der Summe der Spitzen-Qubit-Anzahl für jeden Typ. Initialisieren Sie den PeakUsageGreedyQubitManager. |
| PopBlock |
Signalisiert das Ende des aktuellen wiederholten Blocks in der Ablaufverfolgung. |
| PushBlock |
Signalisiert den Beginn eines wiederholten Blocks in der Ablaufverfolgung. |
| ReadFromMemoryGate |
Verschiebt qubit-Zustände aus dem MEMORY-Register in das COMPUTE-Register. Geht davon aus, dass COMPUTE-Qubits im Zustand 0 vorbereitet sind. Lässt MEMORY-Qubits im Zustand "0" zurück. Initialisiert ReadFromMemoryGate. |
| TypedQubit |
Qubit mit Typ. Initialisiert typisiert qubit. |
| WriteToMemoryGate |
Verschiebt qubit-Zustände aus dem COMPUTE-Register in das MEMORY-Register. Geht davon aus, dass MEMORY-Qubits im Zustand 0 vorbereitet sind. Verlässt COMPUTE-Qubits im Zustand 0. Initialisiert WriteToMemoryGate. |
Enumerationen
| QubitType |
Qubit-Typ. Jeder logische Qubit kann entweder ein Compute- oder Speicher-Qubit sein. Compute qubits können normal verwendet werden. Speicher qubits haben eine Einschränkung, die Tore nicht auf sie angewendet werden können. Die einzigen zulässigen Vorgänge für Speicher-Qubits sind Lese-/Schreibvorgänge, bei denen der Zustand vom Speicher zum Computegate oder vom Compute-to-Memory-Gate verschoben wird. Wir gehen davon aus, dass beim Anwenden der Fehlerkorrektur Speicher-Qubits mit einem effizienteren Fehlerkorrekturschema codiert werden, das weniger Ressourcen erfordert, aber keine Gate-Anwendung zulässt (z. B. Yoked-Oberflächencodes, https://arxiv.org/abs/2312.04522). |
Functions
assert_qubits_type
Bestätigt, dass Qubits den angegebenen Typ haben, aber nur, wenn sie TypedQubits sind.
assert_qubits_type(qs: Sequence[Qid], qubit_type: QubitType) -> None
Parameter
| Name | Beschreibung |
|---|---|
|
qs
Erforderlich
|
|
|
qubit_type
Erforderlich
|
|
read_from_memory
Vorgang zum Lesen von Qubits aus dem Speicher.
read_from_memory(memory_qubits: Sequence[Qid], compute_qubits: Sequence[Qid]) -> Operation
Parameter
| Name | Beschreibung |
|---|---|
|
memory_qubits
Erforderlich
|
|
|
compute_qubits
Erforderlich
|
|
trace_from_cirq
Wandeln Sie einen Zirq-Schaltkreis in eine Ressourcenschätzungsablaufverfolgung um.
Durchlaufen Sie alle Momente und Vorgänge im Schaltkreis, und wandeln Sie jedes Gate in Ablaufverfolgungsvorgänge um. Gates mit einer _to_trace Methode werden direkt konvertiert; andere werden rekursiv über Cirqs _decompose_with_context_ oder _decompose_ Protokolle dekompiliert.
trace_from_cirq(circuit: cirq.CIRCUIT_LIKE, *, classical_control_probability: float = 0.5, rotation_threshold: float = 1e-06, track_memory_qubits: bool = True) -> Trace
Parameter
| Name | Beschreibung |
|---|---|
|
circuit
Erforderlich
|
Der zu konvertierende Zirq-Schaltkreis. |
|
classical_control_probability
Erforderlich
|
Wahrscheinlichkeit, dass eine klassisch kontrollierte Operation in die Ablaufverfolgung einbezogen wird. Der Standardwert ist 0,5. |
|
rotation_threshold
Erforderlich
|
Drehungs-Exponenten mit absolutem Wert unterhalb dieses Schwellenwerts werden als Identität behandelt und aus der Ablaufverfolgung weggelassen. Dies gilt sowohl für Einzel-Qubit-Drehungen (RX, RY, RZ) als auch für die Drehungskomponenten kontrollierter Z-Zersetzungen. Der Standardwert ist 1e-6. |
|
track_memory_qubits
Erforderlich
|
Bei "True" werden Speicher-Qubits separat von Compute-Qubits nachverfolgt. Bei "False" werden alle Qubits als Compute-Qubits behandelt. Wenn "True", "Read-from-memory" und "Write-to-Memory"-Anweisungen in der Ablaufverfolgung beibehalten werden, werden sie andernfalls in SWAP- und RESET-Anweisungen dekompiliert. Standardwert ist "True". |
Nur Schlüsselwortparameter
| Name | Beschreibung |
|---|---|
|
classical_control_probability
|
Standardwert: 0.5
|
|
rotation_threshold
|
Standardwert: 1e-06
|
|
track_memory_qubits
|
Standardwert: True
|
Gibt zurück
| Typ | Beschreibung |
|---|---|
|
Eine Ablaufverfolgung, die ein Ausführungsprofil des Schaltkreises darstellt. |
trace_from_entry_expr
Wandeln Sie einen Q#-Eintragsausdruck in eine Ressourcenschätzungsablaufverfolgung um.
Wertet den Eintragsausdruck aus, um logische Zählungen zu erhalten, und erstellt dann eine Ablaufverfolgung, die die entsprechenden Quantenvorgänge enthält.
trace_from_entry_expr(entry_expr: str | Callable | LogicalCounts, *args) -> Trace
Parameter
| Name | Beschreibung |
|---|---|
|
entry_expr
Erforderlich
|
<xref:<xref:qdk.qre.interop.str | Callable | LogicalCounts>>
Eine Q#-Eintragsausdruckszeichenfolge, eine aufrufbare oder vorab berechnete logische Anzahl. |
|
*args
Erforderlich
|
Die Argumente, die an die aufrufbare Übergeben werden sollen, wenn eines angegeben wird. |
Gibt zurück
| Typ | Beschreibung |
|---|---|
|
Eine Ablaufverfolgung, die das Ressourcenprofil des Programms darstellt. |
trace_from_entry_expr_cached
Konvertieren Sie einen Q#-Eintragsausdruck in eine Ablaufverfolgung mit optionaler Zwischenspeicherung.
Wenn cache_path bereitgestellt und vorhanden ist, wird die Ablaufverfolgung vom Datenträger geladen.
Andernfalls wird die Ablaufverfolgung über trace_from_entry_exprcache_path berechnet und optional geschrieben.
trace_from_entry_expr_cached(entry_expr: str | Callable | LogicalCounts, cache_path: Path | None, *args) -> Trace
Parameter
| Name | Beschreibung |
|---|---|
|
entry_expr
Erforderlich
|
<xref:<xref:qdk.qre.interop.str | Callable | LogicalCounts>>
Eine Q#-Eintragsausdruckszeichenfolge, eine aufrufbare oder vorab berechnete logische Anzahl. |
|
cache_path
Erforderlich
|
<xref:Optional>[<xref:Path>]
Pfad zum Lesen/Schreiben der zwischengespeicherten Ablaufverfolgung. Wenn keines vorhanden ist, ist die Zwischenspeicherung deaktiviert. |
Gibt zurück
| Typ | Beschreibung |
|---|---|
|
Eine Ablaufverfolgung, die das Ressourcenprofil des Programms darstellt. |
trace_from_qir
Konvertieren Sie ein QIR-Programm in eine Ressourcenschätzungsablaufverfolgung.
Analysiert das QIR-Modul, extrahiert Quantentore und erstellt eine Spur, die zur Ressourcenschätzung verwendet werden kann. Bedingte Verzweigungen werden durch immer nach dem falschen Pfad aufgelöst (vorausgesetzt, die Messergebnisse sind Null).
trace_from_qir(input: str | bytes) -> Trace
Parameter
| Name | Beschreibung |
|---|---|
|
input
Erforderlich
|
QIR-Eingabe als LLVM IR-Text (str) oder Bitcode (Bytes). |
Gibt zurück
| Typ | Beschreibung |
|---|---|
|
Eine Spur, die die Quantenoperationen aus dem QIR-Programm enthält. |
write_to_memory
Vorgang zum Schreiben von Qubits in den Arbeitsspeicher.
write_to_memory(memory_qubits: Sequence[Qid], compute_qubits: Sequence[Qid]) -> Operation
Parameter
| Name | Beschreibung |
|---|---|
|
memory_qubits
Erforderlich
|
|
|
compute_qubits
Erforderlich
|
|