Přeskočit na hlavní obsah
Tento projekt je v betě. Našel jsi chybu? Otevřít issue na GitHubu. Máš otázku nebo nápad? Zeptej se v Discussions — rádi si poslechneme tvou zpětnou vazbu!
Jaká je kvalita překladu na této stránce?

Speciálně kalibrované instrukce

Ve výchozím nastavení jsou kvantová hradla a operace čtení na kvantových počítačích IBM® kalibrovány pro optimální výkon napříč běžnými případy použití. Některé úlohy však těží z instrukcí s jinak vyladěnými parametry. Například MidCircuitMeasure (measure_2) je operace čtení určená pro měření uprostřed obvodu a pomalejší hradla cz mohou zlepšit výsledky některých pracovních postupů zmírnění chyb.

Speciálně kalibrované instrukce existují ve dvou podobách a přistupuje se k nim různě:

  • Instrukce s odlišnými signaturami jsou kalibrovány spolu se standardními instrukcemi ve výchozí kalibraci, takže je do svých obvodů přidáváš jako jakoukoli jinou instrukci. Obvykle se rozpoznají podle přípony, například measure_2.

  • Alternativní kalibrace nahrazují části výchozí kalibrace jinak vyladěnými parametry. Vybereš ji tak, že při načítání backendu předáš calibration_id.

Jak se kvantové počítače IBM kalibrují, se dozvíš v části Monitoruj, kalibruj a provádějte benchmarking.

Instrukce s odlišnými signaturami​

Tyto instrukce jsou kalibrovány spolu se standardní sadou instrukcí, takže k získání backendu, který je podporuje, nemusíš dělat nic zvláštního. Chceš-li některou použít, přidej do svého obvodu odpovídající instrukci z qiskit-ibm-runtime.

InstrukcePopisTypický případ použitíPoužití v QiskitRodina procesorů
measure_2Kratší měřicí pulsMěření uprostřed obvoduMidCircuitMeasure (v0.43.0 nebo novější)Heron, Nighthawk r2
reset_2Kratší podmíněný resetovací puls využívající measure_2Reset qubitu uprostřed obvoduMidCircuitReset (v0.49.0 nebo novější)Heron
measure_resetMěření jako measure, které také resetuje qubit*Změř a resetuj qubitMeasureReset (v0.50.0 nebo novější)Heron, Nighthawk r2
measure_reset_2Kratší měření jako measure_2, které také resetuje qubit*Změř a resetuj qubit uprostřed obvoduInicializuj MeasureReset s name="measure_reset_2" (v0.50.0 nebo novější)Heron, Nighthawk r2
xslowHradlo překlopení bitu (X) s prodlouženou dobou trváníPostselekce a zmírnění chyb. Je to výchozí hodnota volby x_pulse_type v průchodech postselekceVšechny

. | XSlowGate (v0.50.0 nebo novější) | Všechny |

* U procesorů Heron je reset podmíněn výsledkem měření. U procesorů Nighthawk r2 je reset nepodmíněný.

Protože tyto instrukce nejsou podporovány na každém backendu, před jejich použitím zkontroluj podporované instrukce backendu:

from qiskit_ibm_runtime import QiskitRuntimeService

service = QiskitRuntimeService()
backend = service.backend("<backend_name>")

print(backend.supported_instructions)

Chceš-li najít všechny backendy, které danou instrukci podporují, použij:

service = QiskitRuntimeService()
backends = service.backends(filters=lambda b: "<instruction>" in b.supported_instructions)

Pomocí instruction_signatures zobrazíš signatury těchto speciálně kalibrovaných instrukcí:

print(backend.configuration().instruction_signatures)

Alternativní kalibrace​

Alternativní kalibrace nahrazují části výchozí kalibrace jinak vyladěnými parametry. Každá alternativní kalibrace má ID kalibrace a její dostupnost závisí na QPU.

Chceš-li použít alternativní kalibraci, předej její calibration_id při načítání backendu. Target backendu, a tedy i transpilátor, pak používá vlastnosti instrukcí z této kalibrace a úlohy primitiv, které na backendu spustíš, se s ní provádějí.

from qiskit_ibm_runtime import QiskitRuntimeService

service = QiskitRuntimeService()
backend = service.backend("<backend_name>", calibration_id="<calibration_id>")

print(backend.calibration_id)
poznámka

Alternativní kalibrace nejsou dostupné na všech QPU.

Kalibrace pomalých hradel​

Kalibrace pomalých hradel ladí hradlo cz tak, aby bylo pomalejší než ve výchozí kalibraci. Pomalejší hradla cz mohou zlepšit výkon rozsáhlých pracovních postupů odhadu pozorovatelných se zmírněním chyb, ale také prodlužují celkovou dobu trvání obvodu, což způsobuje další dekoherenci.

Na procesorech Heron jsou kalibrace pomalých hradel dostupné také se dvěma režimy řízení předpětí dvouúrovňového systému (TLS):

  • DC předpětí TLS je optimalizováno pro nejlepší okamžitý výkon. Výchozí kalibrace používá DC předpětí TLS.

  • AC předpětí TLS moduluje předpětí TLS, aby stabilizovalo chyby zařízení v čase, což udržuje model šumu zařízení stabilní během zdlouhavých pracovních postupů. Podrobnosti najdeš v části „Noise stabilization“ v Observable Estimation in the Absence of Classical Verification.

Procesory Nighthawk předpětí TLS nepoužívají, a mají proto jedinou kalibraci pomalých hradel.

ID kalibraceRodina procesorůPředpětí TLSDoporučeno pro
Žádné (výchozí kalibrace)VšechnyDC (Heron)Obecné použití. Zvláště doporučeno pro úlohy, jejichž bitové řetězce lze klasicky destilovat, například vrcholové obvody a pracovní postupy SQD nebo SKQD, a pro úlohy s detekcí chyb.
slow_gates_dcHeronDCRozsáhlé pracovní postupy odhadu pozorovatelných, zejména ty, které využívají heuristické zmírnění chyb, například extrapolaci k nulovému šumu (ZNE).
slow_gates_acHeronACPracovní postupy, které vyžadují stabilní míru chyb po dlouhé sezení. Důrazně doporučeno pro pracovní postupy zahrnující učení šumu, například pravděpodobnostní zesílení chyb (PEA) a pravděpodobnostní zrušení chyb (PEC).
slow_gatesNighthawkNelze použítPracovní postupy odhadu pozorovatelných, které používají zmírnění chyb, například ZNE, PEA a PEC.

Například:

from qiskit_ibm_runtime import QiskitRuntimeService

service = QiskitRuntimeService()
# On a Heron QPU
backend = service.backend("ibm_kingston", calibration_id="slow_gates_ac")
# backend = service.backend("ibm_kingston", calibration_id="slow_gates_dc")

# On a Nighthawk QPU
backend = service.backend("ibm_phoenix", calibration_id="slow_gates")
tip

Když používáš slow_gates_ac, odesílej všechny úlohy pracovního postupu do jedné session, aby se spouštěly, dokud je šum zařízení stabilní.

Zkontroluj doby trvání hradel​

Protože kalibrace pomalých hradel prodlužují doby trvání hradla cz, porovnej tyto doby s výchozí kalibrací, abys pochopil(a) dopad na svůj obvod. Pomocí targetu backendu zjistíš dobu trvání hradla cz v sekundách na konkrétní dvojici qubitů:

default_backend = service.backend("<backend_name>")
slow_backend = service.backend(
"<backend_name>", calibration_id="slow_gates_ac"
) # Or slow_gates_dc, or slow_gates on Nighthawk

qubits = (0, 1) # Replace with a connected qubit pair on the backend
print(default_backend.target["cz"][qubits].duration)
print(slow_backend.target["cz"][qubits].duration)

Protože target odráží vybranou kalibraci, transpiluj své obvody pro backend, který používá stejné calibration_id, na kterém je plánuješ spouštět.

Další kroky​

Doporučení