SetIOLatency
class qiskit.transpiler.passes.SetIOLatency(*args, **kwargs)
Basen: AnalysisPass
Legen Sie die IOLatenz-Informationen für den Eingangskreis fest.
Die Seiten clbit_write_latency und conditional_latency werden in den Eigenschaftssatz des Passmanagers aufgenommen. Diese Informationen können zwischen den Pässen ausgetauscht werden, die das Scheduling für Anweisungen durchführen, die auf klassische Register wirken.
Sobald diese Latenzen dem Eigenschaftssatz hinzugefügt wurden, werden diese Informationen auch als geschützte Attribute in das Objekt der Ausgabeschaltung kopiert, so dass sie außerhalb der Transpilierung verwendet werden können, z. B. kann die Visualisierung der Zeitleiste die Latenz verwenden, um die Zeit, die die Anweisungen in den klassischen Registern beanspruchen, genau anzuzeigen.
Pass mit Latenzinformationen erstellen.
Parameter
- clbit_write_latency – Eine Einschränkung des Kontrollflusses. Da herkömmliche supraleitende Quantenprozessoren eine dispersive QND-Auslesung verwenden, erfolgt die eigentliche Datenübertragung zum Clbit erst, nachdem das Hin- und Rücklauf-Stimulus-Signal gepuffert und in einen Quantenzustand umgewandelt wurde. Das Intervall
[t0, t0 + clbit_write_latency]gilt als Leerlaufzeit für die Clbits, die mit dem Messbefehl verbunden sind. Der Standardwert ist 0 dt, was dem Qiskit-Pulse-Scheduler entspricht. - conditional_latency – Eine Einschränkung des Kontrollflusses. Dieser Wert gibt die Latenzzeit beim Lesen eines klassischen Registers für die bedingte Operation an. Nach dieser Verzögerungszeit erfolgt die Schaltoperation. Dies äußert sich in einer Verzögerung vor dem Gate- DAGOpNode. Der Standardwert ist 0 dt.
Attribute
is_analysis_pass
Prüfen Sie, ob der Pass ein Analysepass ist.
Wenn der Pass ein AnalysisPass, ist, bedeutet dies, dass der Pass die DAG analysieren und die Ergebnisse dieser Analyse in den Eigenschaftssatz schreiben kann. Änderungen an der DAG sind bei dieser Art von Pass nicht zulässig.
is_transformation_pass
Prüfen Sie, ob der Pass ein Transformationspass ist.
Wenn es sich bei dem Pass um TransformationPass, handelt, bedeutet dies, dass der Pass die DAG manipulieren kann, aber den Eigenschaftssatz nicht ändern kann (aber er kann gelesen werden).
Methoden
execute
execute(passmanager_ir, state, callback=None)
Ausführen der Optimierungsaufgabe für die Eingabe Qiskit IR.
Parameter
- passmanager_ir (IR) – Qiskit IR zur Optimierung.
- state (PassManagerState) – Status, der mit der Workflow-Ausführung durch den Passmanager selbst verbunden ist.
- callback (Callable[[Task, IR_OUT, PropertySet, float, int], None] | None) – Eine Callback-Funktion, die bei jeder Ausführung einer Optimierungsaufgabe aufgerufen wird.
Rückgabe
Optimierte Qiskit IR und Stand des Workflows.
Rückgabetyp
Tupel [ IR_OUT, PassManagerState ]
name
run
run(dag)
Hinzufügen von Informationen zur IO-Latenzzeit.
Parameter
dag (DAGCircuit) – Eingang DAG-Schaltung.
update_status
update_status(state, run_state)
Aktualisieren Sie den Workflow-Status.
Parameter
- state (PassManagerState) – Übergeben Sie den Status des Managers zur Aktualisierung.
- run_state (RunState) – Erledigungsstatus der aktuellen Aufgabe.
Rückgabe
Aktualisierter Status des Passmanagers.
Rückgabetyp