Langkau ke kandungan utama
Projek ini dalam fasa beta. Jumpa pepijat? Buat isu GitHub. Ada soalan atau idea? Tanya dalam Discussions — kami suka dengar maklum balas anda!
Bagaimana kualiti terjemahan pada halaman ini?

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_id apabila 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.

ArahanPeneranganKes penggunaan tipikalPenggunaan dalam QiskitKeluarga pemproses
measure_2Denyutan pengukuran yang lebih singkatPengukuran pertengahan litarMidCircuitMeasure (v0.43.0 atau lebih baharu)Heron, Nighthawk r2
reset_2Denyutan set semula bersyarat yang lebih singkat yang menggunakan measure_2Set semula qubit pertengahan litarMidCircuitReset (v0.49.0 atau lebih baharu)Heron
measure_resetPengukuran seperti measure yang turut menetapkan semula qubit*Ukur dan tetapkan semula qubitMeasureReset (v0.50.0 atau lebih baharu)Heron, Nighthawk r2
measure_reset_2Pengukuran yang lebih singkat seperti measure_2 yang turut menetapkan semula qubit*Ukur dan tetapkan semula qubit di pertengahan litarMulakan MeasureReset dengan name="measure_reset_2" (v0.50.0 atau lebih baharu)Heron, Nighthawk r2
xslowGate balik-bit (X) dengan tempoh dilanjutkanPasca-pemilihan dan mitigasi ralat. Ia ialah nilai lalai pilihan x_pulse_type dalam laluan pasca-pemilihanSemua

. | 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)
nota

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 penentukuranKeluarga pemprosesPincang TLSDisyorkan untuk
Tiada (penentukuran lalai)SemuaDC (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_dcHeronDCAliran kerja anggaran observable berskala besar, terutamanya yang menggunakan mitigasi ralat heuristik seperti ekstrapolasi hingar sifar (ZNE).
slow_gates_acHeronACAliran 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_gatesNighthawkTidak berkenaanAliran 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")
petua

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​

Cadangan