Transpiler-Durchläufe
qiskit.transpiler.passes
Layoutauswahl (Platzierung)
Kolumne „ 1 “ | Kolumne „ 2 “ |
|---|---|
SetLayout(*args, **kwargs) | Setzen Sie die Eigenschaft layout auf das angegebene Layout. |
TrivialLayout(*args, **kwargs) | Wählen Sie ein Layout, indem Sie die n circuit qubits den device qubits 0, .., n-1 zuordnen. |
DenseLayout(*args, **kwargs) | Wählen Sie ein Layout, indem Sie die zusammenhängendste Teilmenge von Qubits finden. |
SabreLayout(*args, **kwargs) | Wählen Sie ein Layout durch iteratives bidirektionales Routing der Eingangsschaltung. |
CSPLayout(*args, **kwargs) | Wählt, wenn möglich, ein Layout als CSP aus, indem es Backtracking verwendet. |
VF2Layout(*args, **kwargs) | Ein Durchgang für die Auswahl eines Layouts eines Schaltkreises auf einem Kopplungsgraphen, als ein Untergraphen-Isomorphismus-Problem, gelöst von VF2++. |
ApplyLayout(*args, **kwargs) | Wenden Sie die Zuordnung von virtuellen Qubits zu physikalischen Qubits in der DAGCircuit… an oder aktualisieren Sie diese. |
Layout2qDistance(*args, **kwargs) | Bewerten Sie, wie gut die Auswahl des Layouts war. |
EnlargeWithAncilla(*args, **kwargs) | Erweitern Sie den dag um virtuelle Qubits, die im Layout, aber noch nicht in der Schaltung sind. |
FullAncillaAllocation(*args, **kwargs) | Weisen Sie alle nicht genutzten Knoten aus der Kopplungskarte oder dem Ziel als Hilfsmittel auf dem Layout zu. |
SabrePreLayout(*args, **kwargs) | Wählen Sie ein Startlayout, das Sie für weitere Sabre-Layoutversuche verwenden möchten. |
Weiterleitung
Kolumne „ 1 “ | Kolumne „ 2 “ |
|---|---|
BasicSwap(*args, **kwargs) | Abbilden (mit minimalem Aufwand) eines DAGCircuit auf eine coupling_map mit Hinzufügen von Swap-Gates. |
Commuting2qGateRouter(*args, **kwargs) | Eine Klasse, um eine oder mehrere Pendelrouten in die Kopplungskarte zu tauschen. |
LayoutTransformation(*args, **kwargs) | Fügt dem Schaltkreis einen Swap-Schaltkreis für eine bestimmte (partielle) Permutation hinzu. |
LookaheadSwap(*args, **kwargs) | Abbildung der Eingangsschaltung auf eine Backend-Topologie durch Einfügen von SWAPs. |
SabreSwap(*args, **kwargs) | Abbildung der Eingangsschaltung auf eine Backend-Topologie durch Einfügen von SWAPs. |
StarPreRouting() | Sternförmiges bis lineares Pre-Routing durchführen |
Basisänderung
Kolumne „ 1 “ | Kolumne „ 2 “ |
|---|---|
BasisTranslator(*args, **kwargs) | Übersetzt Gates auf eine Zielbasis, indem es nach einer Reihe von Übersetzungen aus einer gegebenen EquivalenceLibrary sucht. |
Decompose(*args, **kwargs) | Erweitern Sie ein Gatter in einer Schaltung mit Hilfe seiner Zerlegungsregeln. |
TranslateParameterizedGates(*args, **kwargs) | Übersetzen Sie parametrisierte Gatter in eine unterstützte Basismenge. |
Unroll3qOrMore(*args, **kwargs) | Erweitert rekursiv 3q+ Gatter, bis die Schaltung nur noch 2q oder 1q Gatter enthält. |
UnrollCustomDefinitions(*args, **kwargs) | Rollt Anweisungen mit benutzerdefinierten Definitionen ab. |
Optimierungen
Kolumne „ 1 “ | Kolumne „ 2 “ |
|---|---|
Collect1qRuns(*args, **kwargs) | Ein-Qubit-Teilschaltungen sammeln. |
Collect2qBlocks(*args, **kwargs) | Zwei-Qubit-Teilschaltungen sammeln. |
CollectAndCollapse(*args, **kwargs) | Ein allgemeiner Transpiler-Pass zum Sammeln und Konsolidieren von Knotenblöcken in einem Schaltkreis. |
CollectCliffords(*args, **kwargs) | Sammelt Blöcke mit Clifford-Gattern und ersetzt sie durch ein Clifford Objekt. |
CollectLinearFunctions(*args, **kwargs) | Sammelt Blöcke mit linearen Gatterfunktionen (CXGate und SwapGate Gatter) und ersetzt diese durch lineare Funktionen (LinearFunction). |
CollectMultiQBlocks(*args, **kwargs) | Sammeln Sie Sequenzen von ununterbrochenen Gates, die auf Gruppen von Qubits wirken. |
CommutationAnalysis(*args, **kwargs) | Analysedurchgang, um Kommutationsbeziehungen zwischen DAG-Knoten zu finden. |
CommutativeCancellation(*args, **kwargs) | Aufhebung der redundanten (selbstadjunkten) Gatter durch Kommutationsbeziehungen. |
CommutativeInverseCancellation(*args, **kwargs) | Paare von inversen Gattern unter Ausnutzung von Kommutationsbeziehungen aufheben. |
CommutativeOptimization(*args, **kwargs) | Gates unter Ausnutzung von Kommutativitätsbeziehungen stornieren/zusammenführen. |
ConsolidateBlocks(*args, **kwargs) | Ersetzen Sie jeden Block von aufeinanderfolgenden Gattern durch einen einzigen Unitary-Knoten. |
ContractIdleWiresInControlFlow(*args, **kwargs) | Inaktive Qubits aus den Steuerungsoperationen eines DAGCircuit… entfernen. |
ConvertToPauliRotations(*args, **kwargs) | Wandle einen Quantenschaltkreis in einen äquivalenten Schaltkreis um, der aus PauliProductRotationGate Gattern und PauliProductMeasurement Befehlen besteht. |
ElidePermutations(*args, **kwargs) | Entfernen von Permutationsoperationen aus einer Schaltung vor dem Layouten |
HoareOptimizer(*args, **kwargs) | Dies ist ein Transpiler-Durchlauf, der die Hoare-Logikschaltung optimiert. |
InverseCancellation(*args, **kwargs) | Heben Sie bestimmte Gates auf, die invers zueinander sind, wenn sie nacheinander auftreten. |
LightCone(*args, **kwargs) | Entfernen Sie die Gates, die keinen Einfluss auf das Messergebnis einer Schaltung haben. |
LitinskiTransformation(*args, **kwargs) | Wendet die Litinski-Transformation auf eine Schaltung an. |
Optimize1qGates(*args, **kwargs) | Optimieren Sie Ketten von Ein-Qubit-Gattern u1, u2, u3, indem Sie sie zu einem einzigen Gatter kombinieren. |
Optimize1qGatesDecomposition(*args, **kwargs) | Optimieren Sie Ketten von Ein-Qubit-Gattern, indem Sie sie zu einem einzigen Gatter kombinieren. |
Optimize1qGatesSimpleCommutation(*args, **kwargs) | Optimiert 1Q Gatterketten, die durch 2Q Gatter unterbrochen wurden, indem die Komponenten umgewandelt und die Ergebnisse neu synthetisiert werden. |
OptimizeAnnotated(*args, **kwargs) | Optimierungsdurchlauf auf Schaltungen mit kommentierten Operationen. |
OptimizeCliffordT(*args, **kwargs) | Optimierung von Folgen aufeinanderfolgender Clifford+T-Gatter. |
OptimizeCliffords(*args, **kwargs) | Kombinieren Sie aufeinanderfolgende Cliffords über dieselben Qubits. |
OptimizeSwapBeforeMeasure(*args, **kwargs) | Entfernen Sie die Vertauschungen und messen Sie anschließend (und passen Sie die Messung an). |
RemoveDiagonalGatesBeforeMeasure(*args, **kwargs) | Entfernen Sie diagonale Gatter (einschließlich diagonaler 2Q Gatter) vor einer Messung. |
RemoveFinalReset(*args, **kwargs) | Entfernen Sie den Reset, wenn er die letzte Anweisung auf einem Qubit-Draht ist. |
RemoveIdentityEquivalent(*args, **kwargs) | Entfernen Sie Gates mit vernachlässigbaren Auswirkungen. |
RemoveResetInZeroState(*args, **kwargs) | Rücksetzgatter entfernen, wenn das Qubit den Zustand Null hat. |
ResetAfterMeasureSimplification(*args, **kwargs) | Dieser Durchlauf ersetzt das Zurücksetzen nach der Maßnahme durch ein bedingtes X-Gate. |
Split2QUnitaries(*args, **kwargs) | Versuch, Zwei-Qubit-Unitarien in a DAGCircuit in zwei Einzel-Qubit-Gatter aufzuteilen. |
SubstitutePi4Rotations(*args, **kwargs) | Wandle Rotationsgatter, deren Winkel ganzzahlige Vielfache von sind, in diskrete Sätze von Clifford-, TGate und TdgGate -Gattern um. |
TemplateOptimization(*args, **kwargs) | Klasse für den Optimierungsdurchlauf der Vorlage. |
TwoQubitPeepholeOptimization(*args, **kwargs) | Vereinheitlichte Optimierung von unitären Peephole-Prozessen mit zwei Qubits |
Zeitplanung
Kolumne „ 1 “ | Kolumne „ 2 “ |
|---|---|
ALAPScheduleAnalysis(*args, **kwargs) | ALAP-Scheduling-Pass, der die Stoppzeit der Anweisungen so spät wie möglich ansetzt. |
ASAPScheduleAnalysis(*args, **kwargs) | ASAP Scheduling Pass, der den Beginn des Unterrichts so früh wie möglich einplant. |
ConstrainedReschedule(*args, **kwargs) | Rescheduler-Durchgang, der die Startzeiten der Knoten aktualisiert, damit sie mit den Hardwareausrichtungen übereinstimmen. |
ContextAwareDynamicalDecoupling(*args, **kwargs) | Implementierung einer dynamischen X-Sequenz-Entkopplung unter Berücksichtigung des Gate- und Qubit-Kontextes. |
InstructionDurationCheck(*args, **kwargs) | Gültigkeitsdauer des Passes für die Neuterminierung. |
PadDelay(*args, **kwargs) | Auffüllen der Leerlaufzeit mit Verzögerungsanweisungen. |
PadDynamicalDecoupling(*args, **kwargs) | Dynamische Entkopplung Einfügungspass. |
SetIOLatency(*args, **kwargs) | Legen Sie die IOLatenz-Informationen für den Eingangskreis fest. |
TimeUnitConversion(*args, **kwargs) | Wählen Sie eine Zeiteinheit, die in den folgenden zeitabhängigen Durchläufen verwendet werden soll, und stimmen Sie alle Zeiteinheiten der Schaltkreise auf diese Einheit ab. |
Schaltungsanalyse
Kolumne „ 1 “ | Kolumne „ 2 “ |
|---|---|
CountOps(*args, **kwargs) | Zählen Sie die Operationen in einer DAG-Schaltung. |
CountOpsLongestPath(*args, **kwargs) | Zähle die Operationen auf dem längsten Pfad in einem DAGCircuit. |
DAGLongestPath(*args, **kwargs) | Gib den längsten Pfad in a DAGCircuit als Liste aus DAGOpNodes, DAGInNodes und DAGOutNodes zurück. |
Depth(*args, **kwargs) | Berechnen Sie die Tiefe einer DAG-Schaltung. |
NumTensorFactors(*args, **kwargs) | Berechnen Sie die Anzahl der Tensorfaktoren einer DAG-Schaltung. |
ResourceEstimation(*args, **kwargs) | Fordern Sie automatisch Analysedurchgänge für die Ressourcenschätzung an. |
Size(*args, **kwargs) | Berechnen Sie die Größe einer DAG-Schaltung. |
Width(*args, **kwargs) | Berechnen Sie die Breite einer DAG-Schaltung. |
Synthese
Die Dokumentation des Synthese-Transpiler-Plugins finden Sie auf der qiskit.transpiler.passes.synthesis.plugin seite.
Kolumne „ 1 “ | Kolumne „ 2 “ |
|---|---|
HLSConfig( [use_default_on_unspecified,...] ) | Die Konfiguration für die High-Level-Synthese ermöglicht es, eine Liste von „Methoden“ anzugeben, die vom HighLevelSynthesis Transformationsdurchlauf verwendet werden, um verschiedene Arten von Objekten höherer Ebene zu synthetisieren. |
HighLevelSynthesis(*args, **kwargs) | Synthese von Objekten auf höherer Ebene und Abrollen von benutzerdefinierten Definitionen. |
LinearFunctionsToPermutations(*args, **kwargs) | Fördert lineare Funktionen zu Permutationen, wenn möglich. |
SolovayKitaev(*args, **kwargs) | Näherungsweise Zerlegung der 1q Gatter in eine diskrete Basis mit Hilfe des Solovay-Kitaev-Algorithmus. |
SynthesizeRZRotations(*args, **kwargs) | Ersetze RZ-Gatter durch Clifford-T-Zerlegungen. |
UnitarySynthesis(*args, **kwargs) | Synthese von Gattern entsprechend ihren Basisgattern. |
Beitrags-Layout
Diese sind nach der Qubit-Auswahl.
Kolumne „ 1 “ | Kolumne „ 2 “ |
|---|---|
VF2PostLayout(*args, **kwargs) | Ein Durchgang zur Verbesserung eines bestehenden Layouts nach der Transpilierung eines Schaltkreises auf einen Kopplungsgraphen, als ein Untergraphen-Isomorphismus-Problem, gelöst von VF2++. |
Zusätzliche Pässe
Kolumne „ 1 “ | Kolumne „ 2 “ |
|---|---|
BarrierBeforeFinalMeasurements(*args, **kwargs) | Fügen Sie vor den endgültigen Messungen eine Sperre hinzu. |
CheckGateDirection(*args, **kwargs) | Prüfen Sie, ob die Zwei-Qubit-Tore in Bezug auf die Kopplungskarte die richtige Richtung haben. |
CheckMap(*args, **kwargs) | Prüfen Sie, ob eine DAG-Schaltung bereits auf eine Kopplungskarte abgebildet ist. |
ContainsInstruction(*args, **kwargs) | Ein Analysedurchlauf, um festzustellen, ob die DAG eine bestimmte Anweisung enthält. |
DAGFixedPoint(*args, **kwargs) | Prüfen Sie, ob die DAG einen Fixpunkt erreicht hat. |
Error(*args, **kwargs) | Fehlerpass, der bei einem Fehler aufgerufen wird. |
FilterOpNodes(*args, **kwargs) | Alle Vorgänge entfernen, die einer Filterfunktion entsprechen |
FixedPoint(*args, **kwargs) | Prüfen, ob eine Eigenschaft einen Fixpunkt erreicht hat. |
GateDirection(*args, **kwargs) | Ändern Sie asymmetrische Gatter so, dass sie der Kopplungsrichtung der Hardware entsprechen. |
GatesInBasis(*args, **kwargs) | Prüfen, ob alle Gatter in einem DAG in einer bestimmten Menge von Gattern enthalten sind |
MergeAdjacentBarriers(*args, **kwargs) | Geben Sie einen Schaltkreis zurück, bei dem alle benachbarten Barrieren zusammengefügt sind. |
MinimumPoint(*args, **kwargs) | Prüfen, ob die DAG in den vorangegangenen Läufen einen relativen semi-stabilen Punkt erreicht hat |
RemoveBarriers(*args, **kwargs) | Geben Sie einen Stromkreis mit entfernter Barriere zurück. |
RemoveFinalMeasurements(*args, **kwargs) | Entfernen Sie am Ende eines Stromkreises die letzten Messungen und Schranken. |
UnrollForLoops(*args, **kwargs) | UnrollForLoops transpilationsdurchgang rollt for-Schleifen nach Möglichkeit ab. |
WrapAngles(*args, **kwargs) | Umfalten von Winkeln außerhalb der im Ziel angegebenen Grenze. |
Zusätzliche Daten
qiskit.transpiler.passes.utils.wrap_angles.WRAP_ANGLE_REGISTRY
Ein historischer Standort für WrapAngles.DEFAULT_REGISTRY. Dieser Pfad sollte nur verwendet werden, wenn vollständige Kompatibilität mit Qiskit 2.2 erforderlich ist.
War diese Seite hilfreich?
Melden Sie auf GitHub einen Fehler, einen Tippfehler oder fordern Sie Inhalte an.