Instruksi dengan kalibrasi khusus
Secara default, gate kuantum dan operasi readout pada komputer kuantum IBM® dikalibrasi untuk performa optimal di berbagai kasus penggunaan umum. Namun, beberapa beban kerja diuntungkan oleh instruksi dengan parameter yang disetel secara berbeda. Misalnya, MidCircuitMeasure (measure_2) adalah operasi readout yang dirancang untuk pengukuran di tengah circuit, dan gate cz yang lebih lambat dapat meningkatkan hasil dari beberapa alur kerja mitigasi error.
Instruksi dengan kalibrasi khusus hadir dalam dua bentuk, dan cara mengaksesnya berbeda:
-
Instruksi dengan signature berbeda dikalibrasi bersama instruksi standar dalam kalibrasi default, jadi kamu menambahkannya ke circuit seperti instruksi lainnya. Biasanya instruksi ini ditandai dengan sufiks, seperti
measure_2. -
Kalibrasi alternatif menggantikan sebagian kalibrasi default dengan parameter yang disetel secara berbeda. Kamu memilihnya dengan memberikan
calibration_idsaat mengambil backend.
Untuk mempelajari cara komputer kuantum IBM dikalibrasi, lihat Pantau, kalibrasi, dan benchmark.
Instruksi dengan signature berbeda
Instruksi ini dikalibrasi bersama set instruksi standar, jadi kamu tidak perlu melakukan hal khusus untuk mengambil backend yang mendukungnya. Untuk menggunakannya, tambahkan instruksi qiskit-ibm-runtime yang sesuai ke circuit kamu.
| Instruksi | Deskripsi | Kasus penggunaan umum | Penggunaan di Qiskit | Keluarga prosesor |
|---|---|---|---|---|
measure_2 | Pulsa pengukuran yang lebih singkat | Pengukuran mid-circuit | MidCircuitMeasure (v0.43.0 atau lebih baru) | Heron, Nighthawk r2 |
reset_2 | Pulsa reset kondisional yang lebih singkat yang menggunakan measure_2 | Reset qubit mid-circuit | MidCircuitReset (v0.49.0 atau lebih baru) | Heron |
measure_reset | Pengukuran seperti measure yang juga me-reset qubit* | Mengukur dan me-reset qubit | MeasureReset (v0.50.0 atau lebih baru) | Heron, Nighthawk r2 |
measure_reset_2 | Pengukuran yang lebih singkat seperti measure_2 yang juga me-reset qubit* | Mengukur dan me-reset qubit di tengah circuit | Inisialisasi MeasureReset dengan name="measure_reset_2" (v0.50.0 atau lebih baru) | Heron, Nighthawk r2 |
xslow | Gate bit-flip (X) dengan durasi yang diperpanjang | Postselection dan mitigasi error. Ini adalah nilai default opsi x_pulse_type di postselection pass | Semua |
. | XSlowGate (v0.50.0 atau lebih baru) | Semua |
* Pada prosesor Heron, reset bersifat kondisional terhadap hasil pengukuran. Pada prosesor Nighthawk r2, reset bersifat tanpa syarat.
Karena instruksi ini tidak didukung di setiap backend, periksa instruksi yang didukung backend sebelum menggunakannya:
from qiskit_ibm_runtime import QiskitRuntimeService
service = QiskitRuntimeService()
backend = service.backend("<backend_name>")
print(backend.supported_instructions)
Untuk menemukan semua backend yang mendukung suatu instruksi, gunakan:
service = QiskitRuntimeService()
backends = service.backends(filters=lambda b: "<instruction>" in b.supported_instructions)
Gunakan instruction_signatures untuk melihat signature dari instruksi dengan kalibrasi khusus ini:
print(backend.configuration().instruction_signatures)
Kalibrasi alternatif
Kalibrasi alternatif menggantikan sebagian kalibrasi default dengan parameter yang disetel secara berbeda. Setiap kalibrasi alternatif memiliki ID kalibrasi, dan ketersediaannya bergantung pada QPU.
Untuk menggunakan kalibrasi alternatif, berikan calibration_id-nya saat mengambil backend. Target backend, dan karenanya transpiler, memakai properti instruksi dari kalibrasi tersebut, dan job primitive yang kamu jalankan di backend dieksekusi dengan kalibrasi itu.
from qiskit_ibm_runtime import QiskitRuntimeService
service = QiskitRuntimeService()
backend = service.backend("<backend_name>", calibration_id="<calibration_id>")
print(backend.calibration_id)
Kalibrasi alternatif tidak tersedia di semua QPU.
Kalibrasi gate lambat
Kalibrasi gate lambat menyetel gate cz agar lebih lambat daripada kalibrasi default. Gate cz yang lebih lambat dapat meningkatkan performa untuk alur kerja estimasi observable skala besar dengan mitigasi error, tetapi juga menambah total durasi circuit kamu, yang menyebabkan sedikit dekoherensi tambahan.
Pada prosesor Heron, kalibrasi gate lambat juga tersedia dengan dua mode kontrol bias two-level system (TLS):
-
DC TLS bias dioptimalkan untuk performa sesaat terbaik. Kalibrasi default menggunakan DC TLS bias.
-
AC TLS bias memodulasi bias TLS untuk menstabilkan error perangkat dari waktu ke waktu, sehingga model noise perangkat tetap stabil selama alur kerja yang panjang. Lihat "Noise stabilization" di Observable Estimation in the Absence of Classical Verification untuk detailnya.
Prosesor Nighthawk tidak menggunakan bias TLS, jadi hanya memiliki satu kalibrasi gate lambat.
| ID kalibrasi | Keluarga prosesor | Bias TLS | Direkomendasikan untuk |
|---|---|---|---|
| None (kalibrasi default) | Semua | DC (Heron) | Penggunaan umum. Terutama direkomendasikan untuk beban kerja yang bitstring-nya dapat didistilasi secara klasik, seperti circuit berpuncak (peaked) dan alur kerja SQD atau SKQD, serta untuk beban kerja dengan deteksi error. |
slow_gates_dc | Heron | DC | Alur kerja estimasi observable skala besar, terutama yang menggunakan mitigasi error heuristik seperti zero-noise extrapolation (ZNE). |
slow_gates_ac | Heron | AC | Alur kerja yang membutuhkan tingkat error stabil selama session yang panjang. Sangat direkomendasikan untuk alur kerja yang melibatkan noise learning, seperti probabilistic error amplification (PEA) dan probabilistic error cancellation (PEC). |
slow_gates | Nighthawk | Tidak berlaku | Alur kerja estimasi observable yang menggunakan mitigasi error, seperti ZNE, PEA, dan PEC. |
Contohnya:
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")
Saat kamu menggunakan slow_gates_ac, kirim semua job dalam alur kerja ke satu session agar job berjalan selama noise perangkat tetap stabil.
Periksa durasi gate
Karena kalibrasi gate lambat menambah durasi gate cz, bandingkan durasinya dengan kalibrasi default untuk memahami efeknya pada circuit kamu. Gunakan target backend untuk mengetahui durasi, dalam detik, gate cz pada pasangan qubit tertentu:
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)
Karena target mencerminkan kalibrasi yang dipilih, transpile circuit kamu terhadap backend yang menggunakan calibration_id yang sama dengan yang akan kamu jalankan.
Langkah berikutnya
- Pelajari cara mengeksekusi circuit dinamis dengan pengukuran mid-circuit.
- Gunakan postselection untuk menyaring hasil yang terpengaruh noise berkorelasi.
- Baca tentang bagaimana komputer kuantum IBM dipantau, dikalibrasi, dan di-benchmark.