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 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
|
|