interop Paquet

Classes

PeakUsageGreedyQubitManager

Calcul de calcul et qubits de mémoire d’un gestionnaire de qubits séparément.

Il se compose de deux gestionnaires qubit indépendants pour chaque type qubit. Chaque responsable utilise la stratégie d’allocation gourmande de cirq.GreedyQubitManager.

Les qubits d’un type, après libération, ne peuvent pas être réutilisés en tant que qubits de type différent. Par conséquent, le nombre de qubits de pointe est égal à la somme des nombres de qubits de pointe pour chaque type.

Initialisez peakUsageGreedyQubitManager.

PopBlock

Signale la fin du bloc répété actuel dans la trace.

PushBlock

Signale le début d’un bloc répété dans la trace.

ReadFromMemoryGate

Déplace les états qubits du registre MEMORY vers le registre COMPUTE.

Suppose que les qubits COMPUTE sont préparés à l’état 0. Laisse les qubits MEMORY dans 0 état.

Initialise ReadFromMemoryGate.

TypedQubit

Qubit avec type.

Initialise le qubit typé.

WriteToMemoryGate

Déplace les états qubits du registre COMPUTE vers le registre MEMORY.

Suppose que les qubits MEMORY sont préparés à l’état 0. Laisse les qubits COMPUTE dans 0 état.

Initialise WriteToMemoryGate.

Énumérations

QubitType

Type Qubit.

Chaque qubit logique peut être un qubit de calcul ou de mémoire. Les qubits de calcul peuvent être utilisés normalement.

Les qubits de mémoire ont une restriction qui ne peut pas être appliquée aux portes. Les seules opérations autorisées sur les qubits de mémoire sont des lectures/écritures, où l’état est déplacé de la mémoire à la porte de calcul ou du calcul à la porte de mémoire.

Nous partons du principe que lorsque la correction d’erreur est appliquée, les qubits de mémoire sont encodés avec un schéma de correction d’erreur plus efficace nécessitant moins de ressources, mais sans autoriser l’application de porte (par exemple, codes de surface Yoked, https://arxiv.org/abs/2312.04522).

Functions

assert_qubits_type

Affirme que les qubits ont spécifié le type, mais uniquement s’ils sont TypedQubits.

assert_qubits_type(qs: Sequence[Qid], qubit_type: QubitType) -> None

Paramètres

Nom Description
qs
Obligatoire
qubit_type
Obligatoire

read_from_memory

Opération de lecture des qubits à partir de la mémoire.

read_from_memory(memory_qubits: Sequence[Qid], compute_qubits: Sequence[Qid]) -> Operation

Paramètres

Nom Description
memory_qubits
Obligatoire
compute_qubits
Obligatoire

trace_from_cirq

Convertissez un circuit Cirq en trace d’estimation de ressource.

Itère à travers tous les moments et opérations dans le circuit, en convertissant chaque porte en opérations de trace. Les portes avec une _to_trace méthode sont converties directement ; d’autres sont décomposées de manière récursive via les protocoles ou _decompose_ cirq_decompose_with_context_.

trace_from_cirq(circuit: cirq.CIRCUIT_LIKE, *, classical_control_probability: float = 0.5, rotation_threshold: float = 1e-06, track_memory_qubits: bool = True) -> Trace

Paramètres

Nom Description
circuit
Obligatoire

Circuit Cirq à convertir.

classical_control_probability
Obligatoire

Probabilité qu’une opération contrôlée classiquement soit incluse dans la trace. La valeur par défaut est 0.5.

rotation_threshold
Obligatoire

Les exposants de rotation dont la valeur absolue est inférieure à ce seuil sont traités comme une identité et omis à partir de la trace. Cela s’applique aux rotations à un qubit (RX, RY, RZ) ainsi qu’aux composants de rotation des décompositions contrôlées-Z. La valeur par défaut est 1e-6.

track_memory_qubits
Obligatoire

Lorsque la valeur est True, les qubits de mémoire sont suivis séparément des qubits de calcul. Quand la valeur est False, tous les qubits sont traités comme des qubits de calcul. En outre, si true, les instructions de lecture à partir de la mémoire et d’écriture en mémoire sont conservées dans la trace ; sinon, elles sont décompilées en instructions SWAP et RESET. La valeur par défaut est True.

Paramètres de mot clé uniquement

Nom Description
classical_control_probability
Valeur par défaut: 0.5
rotation_threshold
Valeur par défaut: 1e-06
track_memory_qubits
Valeur par défaut: True

Retours

Type Description

Trace représentant un profil d’exécution du circuit.

trace_from_entry_expr

Convertissez une expression d’entrée Q# en trace d’estimation de ressource.

Évalue l’expression d’entrée pour obtenir des nombres logiques, puis génère une trace contenant les opérations quantiques correspondantes.

trace_from_entry_expr(entry_expr: str | Callable | LogicalCounts, *args) -> Trace

Paramètres

Nom Description
entry_expr
Obligatoire
<xref:<xref:qdk.qre.interop.str | Callable | LogicalCounts>>

Chaîne d’expression d’entrée Q#, nombre logique pouvant être appelé ou pré-calculé.

*args
Obligatoire

Arguments à passer à l’appelant, s’il est fourni.

Retours

Type Description

Trace représentant le profil de ressource du programme.

trace_from_entry_expr_cached

Convertissez une expression d’entrée Q# en trace, avec mise en cache facultative.

Si cache_path est fourni et existe, la trace est chargée à partir du disque. Sinon, la trace est calculée via trace_from_entry_expr et éventuellement écrite dans cache_path.

trace_from_entry_expr_cached(entry_expr: str | Callable | LogicalCounts, cache_path: Path | None, *args) -> Trace

Paramètres

Nom Description
entry_expr
Obligatoire
<xref:<xref:qdk.qre.interop.str | Callable | LogicalCounts>>

Chaîne d’expression d’entrée Q#, nombre logique pouvant être appelé ou pré-calculé.

cache_path
Obligatoire
<xref:Optional>[<xref:Path>]

Chemin d’accès à la lecture/écriture de la trace mise en cache. Si aucun n’est fait, la mise en cache est désactivée.

Retours

Type Description

Trace représentant le profil de ressource du programme.

trace_from_qir

Convertissez un programme QIR en trace d’estimation des ressources.

Analyse le module QIR, extrait des portes quantiques et crée une trace qui peut être utilisée pour l’estimation des ressources. Les branches conditionnelles sont résolues en suivant toujours le chemin false (en supposant que les résultats de mesure sont Zéro).

trace_from_qir(input: str | bytes) -> Trace

Paramètres

Nom Description
input
Obligatoire

Entrée QIR en tant que texte IR LLVM (str) ou bitcode (octets).

Retours

Type Description

Trace contenant les opérations quantiques du programme QIR.

write_to_memory

Opération d’écriture de qubits en mémoire.

write_to_memory(memory_qubits: Sequence[Qid], compute_qubits: Sequence[Qid]) -> Operation

Paramètres

Nom Description
memory_qubits
Obligatoire
compute_qubits
Obligatoire