Skip to main content
IBM Quantum Platform

Transpiler


Panoramica

La transpilazione è il processo di riscrittura di un determinato circuito di input affinché sia conforme ai criteri desiderati, quali i vincoli topologici e operativi dell'hardware utilizzato per l'esecuzione del circuito finale. Non approfondiremo questo argomento in questa sede, ma rimandiamo alla documentazione di Qiskit relativa al modulo qiskit.transpiler .

L'obiettivo in questa sede è spiegare come si effettua la transpilazione da un FermionicCircuit a un QuantumCircuit.


Fasi

Dal punto di vista concettuale, abbiamo suddiviso il processo di transpilazione in diverse fasi:

Fase
Descrizione
Inputconvertire nella struttura dati DAG
Ottimizzazioneottimizzazione a livello fermionico
Layoutprogettazione della disposizione dei fermioni nei qubit
Sintesisintesi da fermioni a qubit
Qubittranspilazione continua a livello di qubit
Outputconvertire dalla struttura dati DAG

Input

I vari passaggi del transpiler sono implementati in modo da utilizzare come FermionicDAGCircuit struttura dati sottostante per memorizzare le operazioni del circuito. Tali grafi aciclici diretti (DAG) offrono un modello di dati efficiente per la traversata e la manipolazione dei circuiti.

Tuttavia, è più probabile che un utente finale utilizzi un, poiché FermionicCircuit offre un’interfaccia e un modello di dati più intuitivi. Pertanto, questa fase di input esegue semplicemente il passaggio del transpiler FermionicCircuitToDAG .

Ottimizzazione

Questa fase della pipeline di transpilazione può implementare ottimizzazioni del circuito preservando al contempo il tipo del circuito come istanza di FermionicDAGCircuit. Pertanto, in questa fase della pipeline di transpilazione non sono necessarie (né necessariamente disponibili) informazioni sui qubit.

Layout

Un’impostazione di configurazione globale per il processo di transpilazione è il “layout” da fermioni a qubit. Questo deve essere specificato dall'utente e deve corrispondere alla mappatura fermione-qubit fornita (nel senso che, se una mappatura scelta codifica un numero fisso di fermioni con un numero diverso di qubit, la configurazione deve tenerne conto).

In generale, le modalità fermioniche non vengono sempre codificate nel registro dei qubit utilizzando una base di occupazione. Di conseguenza, non è possibile associare una singola modalità fermionica a un singolo qubit. Pertanto, la disposizione da fermioni a qubit fornita dall’utente (F2QLayout) associa FermionicRegister istanze a QuantumRegister quanti.

Rubrica 1
Rubrica 2
F2QLayoutUna mappatura dei registri delle modalità fermioniche ai registri quantistici.

Per configurare questa impostazione globale, è necessario inserire un’istanza F2QLayout nel campo f2q_layout del property_set. Per ulteriori dettagli, consultare la sezione “Passaggi di impaginazione ”.

Sintesi

In sostanza, la transpilazione viene gestita dal passaggio del transpiler F2QSynthesis . È concettualmente simile al comando pass HighLevelSynthesis di Qiskit, che utilizza vari plugin per la transpilazione di istruzioni di circuito di alto livello. Per ulteriori dettagli, consultare direttamente F2QSynthesis la documentazione.

Il modo in cui un dato FermionicGate possa essere sintetizzato in termini di operazioni basate sui qubit dipenderà dal tipo specifico di gate, nonché dalla mappatura da fermione a qubit scelta dall'utente. Per ulteriori dettagli, consultare la sezione " Plugin dei passaggi del transpiler ".

Qubit

A questo punto del processo di transpilazione, abbiamo raggiunto un’istanza DAGCircuit e possiamo continuare a utilizzare la pipeline di transpilazione di Qiskit come di consueto.

Suggerimento

In futuro FermionicCircuit potrebbero essere aggiunti ulteriori passaggi del transpiler per ottimizzazioni a livello di qubit che tengano conto delle informazioni relative a un circuito provenienti da un!

Output

Questa fase implementa di fatto l'inverso dell' Input, richiamando il passaggio del transpiler QuantumDAGToCircuit .


Gestori delle pass

Tutte le fasi sopra indicate sono quelle predefinite, in base alle quali vengono coordinate presets le varie attività MultiStagePassManager.

Le singole fasi possono consistere in un unico passaggio (quando si passa da una rappresentazione interna (IR) a un’altra, come nel caso delle fasi di Input, Sintesi e Output sopra citate) oppure una fase può essere una struttura i cui BasePassManager passaggi interni possono essere modificati.

Per le fasi che operano su circuiti fermionici ( Ottimizzazione e Layout ), il tipo di passmanager da utilizzare è FermionicPassManager.

Rubrica 1
Rubrica 2
FermionicPassManager( [attività, max_iterazioni] )Un gestore di passaggi del transpiler che converte FermionicCircuit da uno all’altro.

Abbonamenti di conversione

Questo modulo fornisce direttamente alcune operazioni di conversione di base:

Preimpostazioni

Per facilitare l'utilizzo, il qiskit_fermions.transpiler.presets modulo mette a disposizione una serie di funzioni che consentono di creare rapidamente pipeline di transpilazione predefinite.

Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.