Arahan yang ditentukur khas
Secara lalai, gate kuantum dan operasi bacaan pada komputer kuantum IBM® ditentukur untuk prestasi optimum merentasi kes penggunaan umum. Namun, sesetengah beban kerja mendapat manfaat daripada arahan yang parameternya ditala secara berbeza. Contohnya, MidCircuitMeasure (measure_2) ialah operasi bacaan yang dirancang untuk pengukuran di pertengahan litar, dan gate cz yang lebih perlahan boleh memperbaik hasil sesetengah aliran kerja mitigasi ralat.
Arahan yang ditentukur khas terdapat dalam dua bentuk, dan anda mengaksesnya dengan cara yang berbeza:
-
Arahan dengan tandatangan berbeza ditentukur bersama arahan standard dalam penentukuran lalai, jadi anda menambahkannya pada litar anda seperti arahan lain. Arahan ini biasanya dikenal pasti melalui akhiran, seperti
measure_2. -
Penentukuran alternatif menggantikan sebahagian daripada penentukuran lalai dengan parameter yang ditala secara berbeza. Anda memilih satu dengan menghantar
calibration_idapabila anda mendapatkan backend.
Untuk mengetahui cara komputer kuantum IBM ditentukur, lihat Pantau, tentukur dan tanda aras.
Arahan dengan tandatangan berbeza
Arahan ini ditentukur bersama set arahan standard, jadi anda tidak perlu melakukan apa-apa yang khas untuk mendapatkan backend yang menyokongnya. Untuk menggunakannya, tambahkan arahan qiskit-ibm-runtime yang sepadan pada litar anda.
| Arahan | Penerangan | Kes penggunaan tipikal | Penggunaan dalam Qiskit | Keluarga pemproses |
|---|---|---|---|---|
measure_2 | Denyutan pengukuran yang lebih singkat | Pengukuran pertengahan litar | MidCircuitMeasure (v0.43.0 atau lebih baharu) | Heron, Nighthawk r2 |
reset_2 | Denyutan set semula bersyarat yang lebih singkat yang menggunakan measure_2 | Set semula qubit pertengahan litar | MidCircuitReset (v0.49.0 atau lebih baharu) | Heron |
measure_reset | Pengukuran seperti measure yang turut menetapkan semula qubit* | Ukur dan tetapkan semula qubit | MeasureReset (v0.50.0 atau lebih baharu) | Heron, Nighthawk r2 |
measure_reset_2 | Pengukuran yang lebih singkat seperti measure_2 yang turut menetapkan semula qubit* | Ukur dan tetapkan semula qubit di pertengahan litar | Mulakan MeasureReset dengan name="measure_reset_2" (v0.50.0 atau lebih baharu) | Heron, Nighthawk r2 |
xslow | Gate balik-bit (X) dengan tempoh dilanjutkan | Pasca-pemilihan dan mitigasi ralat. Ia ialah nilai lalai pilihan x_pulse_type dalam laluan pasca-pemilihan | Semua |
. | XSlowGate (v0.50.0 atau lebih baharu) | Semua |
* Pada pemproses Heron, set semula bergantung pada keputusan pengukuran. Pada pemproses Nighthawk r2, set semula adalah tanpa syarat.
Oleh sebab arahan ini tidak disokong pada setiap backend, semak arahan yang disokong oleh backend sebelum anda menggunakannya:
from qiskit_ibm_runtime import QiskitRuntimeService
service = QiskitRuntimeService()
backend = service.backend("<backend_name>")
print(backend.supported_instructions)
Untuk mencari semua backend yang menyokong sesuatu arahan, gunakan:
service = QiskitRuntimeService()
backends = service.backends(filters=lambda b: "<instruction>" in b.supported_instructions)
Gunakan instruction_signatures untuk melihat tandatangan arahan yang ditentukur khas ini:
print(backend.configuration().instruction_signatures)
Penentukuran alternatif
Penentukuran alternatif menggantikan sebahagian daripada penentukuran lalai dengan parameter yang ditala secara berbeza. Setiap penentukuran alternatif mempunyai ID penentukuran, dan ketersediaannya bergantung pada QPU.
Untuk menggunakan penentukuran alternatif, hantar calibration_idnya apabila anda mendapatkan backend. Sasaran backend, dan oleh itu Transpiler, menggunakan sifat arahan daripada penentukuran tersebut, dan tugas primitif yang anda jalankan pada backend dilaksanakan dengannya.
from qiskit_ibm_runtime import QiskitRuntimeService
service = QiskitRuntimeService()
backend = service.backend("<backend_name>", calibration_id="<calibration_id>")
print(backend.calibration_id)
Penentukuran alternatif tidak tersedia pada semua QPU.
Penentukuran gate perlahan
Penentukuran gate perlahan menala gate cz supaya lebih perlahan daripada penentukuran lalai. Gate cz yang lebih perlahan mungkin meningkatkan prestasi bagi aliran kerja anggaran observable berskala besar dengan mitigasi ralat, tetapi ia juga menambah jumlah tempoh litar anda, yang menyebabkan sedikit dekoheren tambahan.
Pada pemproses Heron, penentukuran gate perlahan turut tersedia dengan dua mod kawalan pincang sistem dua tahap (TLS):
-
Pincang TLS DC dioptimumkan untuk prestasi seketika yang terbaik. Penentukuran lalai menggunakan pincang TLS DC.
-
Pincang TLS AC memodulasi pincang TLS untuk menstabilkan ralat peranti dari semasa ke semasa, yang memastikan model hingar peranti stabil sepanjang aliran kerja yang panjang. Lihat "Noise stabilization" dalam Observable Estimation in the Absence of Classical Verification untuk butiran.
Pemproses Nighthawk tidak menggunakan pincang TLS, jadi ia mempunyai satu penentukuran gate perlahan sahaja.
| ID penentukuran | Keluarga pemproses | Pincang TLS | Disyorkan untuk |
|---|---|---|---|
| Tiada (penentukuran lalai) | Semua | DC (Heron) | Kegunaan am. Amat disyorkan untuk beban kerja yang rentetan bitnya boleh disuling secara klasik, seperti litar berpuncak dan aliran kerja SQD atau SKQD, dan untuk beban kerja dengan pengesanan ralat. |
slow_gates_dc | Heron | DC | Aliran kerja anggaran observable berskala besar, terutamanya yang menggunakan mitigasi ralat heuristik seperti ekstrapolasi hingar sifar (ZNE). |
slow_gates_ac | Heron | AC | Aliran kerja yang memerlukan kadar ralat stabil sepanjang sesi yang panjang. Sangat disyorkan untuk aliran kerja yang melibatkan pembelajaran hingar, seperti penguatan ralat kebarangkalian (PEA) dan pembatalan ralat kebarangkalian (PEC). |
slow_gates | Nighthawk | Tidak berkenaan | Aliran kerja anggaran observable yang menggunakan mitigasi ralat, 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")
Apabila anda menggunakan slow_gates_ac, hantar semua tugas dalam aliran kerja ke satu Session supaya ia berjalan semasa hingar peranti kekal stabil.
Semak tempoh gate
Oleh sebab penentukuran gate perlahan menambah tempoh gate cz, bandingkan tempoh tersebut dengan penentukuran lalai untuk memahami kesannya pada litar anda. Gunakan sasaran backend untuk mencari tempoh, dalam saat, gate cz pada sepasang 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)
Oleh sebab sasaran mencerminkan penentukuran yang dipilih, transpil litar anda terhadap backend yang menggunakan calibration_id yang sama dengan yang anda rancang untuk dijalankan.
Langkah seterusnya
- Ketahui cara melaksanakan litar dinamik dengan pengukuran pertengahan litar.
- Gunakan pasca-pemilihan untuk menapis keputusan yang terjejas oleh hingar berkorelasi.
- Baca tentang cara komputer kuantum IBM dipantau, ditentukur dan ditanda aras.