ข้ามไปยังเนื้อหาหลัก
โครงการนี้อยู่ในช่วงเบต้า พบข้อผิดพลาด? สร้าง GitHub Issue มีคำถามหรือไอเดีย? ถามใน Discussions — ยินดีรับฟังความคิดเห็น!
คุณภาพการแปลในหน้านี้เป็นอย่างไร?

ดูรายละเอียด Backend

Package versions

โค้ดในหน้านี้ถูกพัฒนาโดยใช้ข้อกำหนดต่อไปนี้ เราแนะนำให้ใช้เวอร์ชันเหล่านี้หรือใหม่กว่า

qiskit-ibm-runtime~=0.49.0

หน้านี้อธิบายวิธีค้นหาข้อมูลเกี่ยวกับ backend ที่คุณสามารถใช้งานได้

แสดงรายการหรือกรอง Backend​

แสดงรายการ Backend ที่มีให้ใช้งาน​

คุณสามารถใช้ Qiskit หรือ IBM Quantum Platform เพื่อดูรายการ Backend ที่มีให้ใช้งาน หรือค้นหา Backend เฉพาะได้

ชื่อ QPU

QPU ที่โฮสต์บน IBM Cloud® มีชื่อที่ขึ้นต้นด้วย ibm_* QPU ทุกตัวได้รับชื่อเมือง เช่น ibm_kingston ชื่อนี้ไม่ได้บ่งบอกว่า QPU จริงๆ อยู่ที่ไหน

ใช้เมธอด QiskitRuntimeService.backends() ตามที่แสดงในบล็อกโค้ดถัดไป เมธอดนี้จะ return รายการ instance ของ IBMBackend

ในการรันโค้ดต่อไปนี้ ตรวจสอบให้แน่ใจว่ายืนยันตัวตนกับ service แล้ว ดู ตั้งค่าบัญชี IBM Cloud ของคุณ สำหรับรายละเอียดเพิ่มเติม

ในการค้นหา Backend เฉพาะ ใช้เมธอด QiskitRuntimeService.backend() (โปรดสังเกตว่าเป็นรูปเอกพจน์: backend) ซึ่งรับชื่อของ Backend เป็น input parameter และ return instance ของ IBMBackend ที่แทน Backend นั้น:

# Added by doQumentation — installs the packages this notebook needs if they are missing
import importlib.util

_needed = {"qiskit_ibm_runtime": "qiskit-ibm-runtime"}
_missing = [pip for module, pip in _needed.items()
if importlib.util.find_spec(module) is None]
# One at a time, so a package that fails to install does not block the others
for _pip in _missing:
%pip install -q {_pip}
if not _missing:
print("\u2713 All required packages are installed")
# Initialize your account
from qiskit_ibm_runtime import QiskitRuntimeService

service = QiskitRuntimeService()

service.backends()
[<IBMBackend('ibm_boston')>,
<IBMBackend('ibm_fez')>,
<IBMBackend('ibm_kingston')>,
<IBMBackend('ibm_marrakesh')>,
<IBMBackend('ibm_miami')>,
<IBMBackend('ibm_phoenix')>,
<IBMBackend('ibm_pittsburgh')>]
service.backend("ibm_fez")
<IBMBackend('ibm_fez')>
# Optionally pass in an instance, region, or both, to
# further filter the backends.
service = QiskitRuntimeService()

service.backends(simulator=False, operational=True, min_num_qubits=100)
[<IBMBackend('ibm_boston')>,
<IBMBackend('ibm_fez')>,
<IBMBackend('ibm_kingston')>,
<IBMBackend('ibm_marrakesh')>,
<IBMBackend('ibm_miami')>,
<IBMBackend('ibm_phoenix')>,
<IBMBackend('ibm_pittsburgh')>]
หมายเหตุ

หากคุณลงชื่อเข้าใช้ instance หรือ region เฉพาะ หรือหากคุณเริ่มต้น service ด้วย instance หรือ region เฉพาะโดยใช้ QiskitRuntimeService() ระบบจะ return เฉพาะ Backend ที่มีให้ใช้งานใน instance หรือ region นั้น

กรอง Backend​

คุณสามารถกรอง Backend ที่มีให้ใช้งานตาม configuration หรือ status สำหรับตัวกรองทั่วไป ตั้งค่า argument filters เป็นฟังก์ชันที่รับ Backend object และ return True หากตรงตามเกณฑ์ของคุณ ดู เอกสาร API สำหรับรายละเอียดเพิ่มเติม

โค้ดต่อไปนี้จะ return เฉพาะ Backend ที่ตรงตามเกณฑ์เหล่านี้และมีให้ใช้งาน ใน instance ที่เลือกอยู่ในปัจจุบัน:

  • เป็นอุปกรณ์ quantum จริง (simulator=False)

  • ใช้งานได้อยู่ (operational=True)

  • มีอย่างน้อยหนึ่งร้อย Qubit (min_num_qubits=100)

เมธอดที่คล้ายกันคือ QiskitRuntimeService.least_busy() ซึ่งรับตัวกรองเดียวกับ backends() แต่ return Backend ที่ตรงกับตัวกรองและมีจำนวนงานที่รอในคิวน้อยที่สุด:

service.least_busy(operational=True, min_num_qubits=100)
<IBMBackend('ibm_fez')>

อุปกรณ์จำลอง​

Mock devices คือทรัพยากรบน cloud ที่รัน dry-run jobs mock device จะตรวจสอบ job และรายงานการใช้งานที่ QPU จริงจะคิดค่าใช้จ่าย โดยไม่ใช้เวลา QPU เลย Mock devices ใช้ได้กับแผน Flex, Premium และ On-Prem และถูกซ่อนโดยค่าเริ่มต้นทั้งใน Platform interface และ Python API:

  • ในหน้า Compute resources mock devices จะถูกซ่อนจนกว่าจะเปิด toggle เพื่อแสดง

  • ในหน้า Workloads jobs จาก mock devices จะถูกซ่อนจนกว่าจะเลือกในตัวกรองไอคอนรูปกรวย

  • service.backends() และ service.jobs() ไม่รวม mock devices เว้นแต่จะเรียกด้วย include_mocks=True

  • IBMBackend.is_mock ระบุว่า backend เป็น mock device หรือไม่

  • service.least_busy() จะไม่คืน mock device

หากต้องการเลือก mock device โดยตรง ให้ส่งชื่อของมันให้ service.backend() เช่น service.backend("mock_phoenix")

ข้อมูล Backend แบบ Static​

ข้อมูลบางอย่างเกี่ยวกับ Backend ไม่เปลี่ยนแปลงบ่อย เช่น ชื่อ เวอร์ชัน จำนวน Qubit ที่มี processor type (ชื่อตระกูล bird ซึ่งบ่งบอกถึง topology และจำนวน Qubit โดยประมาณ) และประเภทของคุณสมบัติที่รองรับ ข้อมูลนี้มีให้เป็น attributes ของ object backend สำหรับรายการ attributes ทั้งหมด ดู เอกสาร API ของ IBMBackend ดูข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดเวอร์ชันในส่วน การกำหนดเวอร์ชัน QPU ด้านล่าง

region ของ Backend (ตำแหน่งของศูนย์ข้อมูลที่ข้อมูลและการทดลองของคุณจะถูกโฮสต์และประมวลผล) แสดงอยู่ในการ์ดข้อมูลรายละเอียดบน หน้า Compute resources บน IBM Quantum Platform

backend = service.least_busy(operational=True, simulator=False)

print(
f"Name: {backend.name}\n"
f"Version: {backend.backend_version}\n"
f"No. of programmable qubits: {backend.num_qubits}\n"
f"Processor type: {backend.processor_type}\n"
)
Name: ibm_fez
Version: 1.3.37
No. of programmable qubits: 156
Processor type: {'family': 'Heron', 'revision': '2'}

การกำหนดเวอร์ชัน QPU​

QPU แต่ละตัวมีหมายเลขเวอร์ชันในรูปแบบ X.Y.Z (major.minor.revision) Circuit ที่คอมไพล์สำหรับหมายเลขเวอร์ชันที่กำหนดรับประกันว่าจะทำงานบน QPU นั้น หากหมายเลข revision เปลี่ยนแปลง Circuit จะยังคงทำงานได้ต่อ หากหมายเลข major หรือ minor เปลี่ยนแปลง ไม่รับประกันว่า Circuit จะทำงานได้ แม้ว่าอาจเป็นเช่นนั้นก็ตาม

หมายเลขเวอร์ชัน revision จะเพิ่มขึ้นสำหรับการแก้ไขที่ไม่ทำให้ Circuit ที่คอมไพล์ไว้แล้วหยุดทำงาน

ตัวอย่างโค้ดก่อนหน้าใน ส่วนนี้ แสดงวิธีค้นหาเวอร์ชันของ Backend บน IBM Quantum Platform คุณสามารถดูเวอร์ชันในการ์ดข้อมูลรายละเอียดของ QPU (คลิกชื่อ QPU ในตาราง Compute resources เพื่อเปิดการ์ด)

เงื่อนไขที่หมายเลขเวอร์ชันหรือ revision อาจเปลี่ยนแปลงแสดงไว้ในตารางต่อไปนี้

เวอร์ชัน Majorเวอร์ชัน Minorเวอร์ชัน Revision
การเปลี่ยน Sampleรอบ warm-up / cool-downการอัปเดตซอฟต์แวร์ QPU
การเปลี่ยนแปลงครั้งใหญ่ในอุปกรณ์อิเล็กทรอนิกส์ควบคุมการเปลี่ยนอุปกรณ์อิเล็กทรอนิกส์บางส่วน หากการเปลี่ยนทดแทนส่งผลต่อการทำงานอย่างเห็นได้ชัดการสอบเทียบด้วยตนเองเพื่อปรับปรุง fidelities
การย้าย QPU ไปยังตำแหน่งใหม่ หากส่งผลให้พฤติกรรมเปลี่ยนแปลงอย่างมีนัยสำคัญการนำ Gate ออกชั่วคราวเนื่องจากปัญหาการสอบเทียบ และไม่สามารถแก้ไขได้ง่ายในซอฟต์แวร์การเปลี่ยนแปลงอุปกรณ์อิเล็กทรอนิกส์เล็กน้อยที่ไม่ส่งผลต่อการทำงาน
การเปลี่ยนทิศทางของ Gate CNOT

คำสั่งที่รองรับ​

ตระกูล processor แต่ละตระกูลรองรับชุดคำสั่งจำกัดโดยกำเนิด ชุดนี้รวมถึง single- และ two-qubit gates รวมถึงการดำเนินการที่ไม่ใช่ unitary เช่น measure และ reset Gate ทุกตัวใน Circuit ต้องถูกแปล (โดย Transpiler) ไปเป็นองค์ประกอบของชุดคำสั่งที่รองรับของ QPU ก่อนที่จะรันบน QPU ได้

คุณสามารถดูชุดคำสั่งที่รองรับสำหรับ QPU ด้วย Qiskit หน้า Compute resources ของ IBM Quantum Platform แสดงเฉพาะ unitary gates ที่รองรับ (basis gates) สำหรับ QPU

ตารางคำสั่งที่รองรับ​

หมวดหมู่การดำเนินการชื่อ
Single-qubit gatesRZ, SX, X, XSlow, ID, delay
Two-qubit gatesCZ, ECR
Fractional gatesRX (single-qubit), RZZ (two-qubit)
Non-unitary instructionsmeasure, reset, measure_*, reset_*, measure_reset*, delay
Control flowif_else (classical feedforward)
from qiskit_ibm_runtime import QiskitRuntimeService

service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)

print(f"Backend: {backend.name}")
print(f" Processor type: {backend.processor_type}")
print(f" Supported instructions: {backend.supported_instructions}")
Backend: ibm_fez
Processor type: {'family': 'Heron', 'revision': '2'}
Supported instructions: ['cz', 'id', 'delay', 'measure', 'measure_reset', 'measure_2', 'measure_reset_2', 'reset', 'reset_2', 'rz', 'sx', 'x', 'if_else', 'store', 'xslow']

ข้อมูล Backend แบบ Dynamic​

Backend ยังมีคุณสมบัติที่รายงานเมตริก characterization และ benchmark เช่น อายุ (lifetime) ของ qubit และอัตราข้อผิดพลาดของการดำเนินการ คุณสมบัติของ backend เหล่านี้ถูกอัปเดตจากงาน benchmarking และ characterization ตามรอบ คุณสมบัติเหล่านี้สามารถใช้เมื่อ optimize circuit ควอนตัม หรือเพื่อสร้าง noise model สำหรับ classical simulator ดูคู่มือ Monitor, calibrate, and benchmark สำหรับข้อมูลเพิ่มเติม

บน IBM Quantum Platform คุณสามารถดาวน์โหลดข้อมูลการสอบเทียบเป็นไฟล์ CSV คลิก QPU บน หน้า Compute resources เพื่อดูการ์ดข้อมูลรายละเอียด แล้วคลิกไอคอนดาวน์โหลดที่มุมขวาบนของส่วนข้อมูลการสอบเทียบ

ดึงข้อมูลย้อนหลัง

คุณสามารถดึงข้อมูลคุณสมบัติ Backend ในอดีตใน Qiskit ด้วยโค้ดต่อไปนี้:

backend.properties(datetime=<datetime>)

คุณสมบัติของ Qubit​

ข้ามไปยังรายการคุณสมบัติของ Qubit

backend.properties().qubit_property() จะ return ข้อมูลเกี่ยวกับ attribute ทางกายภาพของ qubit มี dictionary ของคุณสมบัติต่างๆ ของ qubit แต่ละอย่างคู่กับค่าและวันที่และเวลาที่วัดค่านั้นระหว่าง benchmarking หรือ characterization

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีแสดงรายการคุณสมบัติทั้งหมด หรือดึงคุณสมบัติเฉพาะของ Qubit ที่เลือก

ดูคุณสมบัติของ Qubit​

T1 (Relaxation time)

เวลา T1T_1 แสดงถึงระยะเวลาเฉลี่ยที่ Qubit อยู่ใน excited state ∣1⟩|1\rangle ก่อนสลายตัวไปยัง ground state ∣0⟩|0\rangle เนื่องจาก energy relaxation พารามิเตอร์นี้ใช้เพื่อระบุลักษณะพฤติกรรม energy relaxation ของ Qubit และแสดงเป็นหน่วยวินาที (s)

View with Qiskitbackend.properties().t1(<qubit>)
View on IBM Quantum Platformส่วนข้อมูลการสอบเทียบ เมนูดรอปดาวน์ Qubit; ดูค่า T1T_1 median ในส่วน Details
T2 (Dephasing time)

เวลา T2T_2 แสดงถึงระยะเวลาที่ Qubit รักษา phase coherence ของ superposition ระหว่างสถานะ ∣0⟩|0\rangle และ ∣1⟩|1\rangle รวมทั้ง energy relaxation และกระบวนการ pure dephasing ให้ข้อมูลเชิงลึกเกี่ยวกับคุณสมบัติ coherence ของ Qubit T2T_2 รายงานจากลำดับ Hahn echo

View with Qiskitbackend.properties().t2(<qubit>)
View on IBM Quantum Platformส่วนข้อมูลการสอบเทียบ เมนูดรอปดาวน์ Qubit; ดูค่า T2T_2 median ในส่วน Details
# fundamental physical properties of qubit 1

backend = service.least_busy(operational=True, simulator=False)

backend.qubit_properties(1)
QubitProperties(t1=0.00020767005851570053, t2=0.00024611061935095297, frequency=None)
# Retrieve qubit properties
qubit_index = backend.num_qubits - 1 # Replace with your qubit index
qubit_props = backend.properties().qubit_property(qubit_index)

# Access specific properties
t1 = qubit_props.get("T1", (None,))[0]
t2 = qubit_props.get("T2", (None,))[0]
readout_error = qubit_props.get("readout_error", (None,))[0]
prob_meas0_prep1 = qubit_props.get("prob_meas0_prep1", (None,))[0]
prob_meas1_prep0 = qubit_props.get("prob_meas1_prep0", (None,))[0]
readout_length = qubit_props.get("readout_length", (None,))[0]

print(f"Qubit {qubit_index} Properties:")
print(f" T1: {t1} seconds")
print(f" T2: {t2} seconds")
print(f" Readout Error: {readout_error}")
print(f" P(0 | 1): {prob_meas0_prep1}")
print(f" P(1 | 0): {prob_meas1_prep0}")
print(f" Readout Length: {readout_length} seconds")
Qubit 155 Properties:
T1: 0.00010862150948881618 seconds
T2: 2.0093258086464474e-05 seconds
Readout Error: 0.4185791015625
P(0 | 1): 0.76611328125
P(1 | 0): 0.071044921875
Readout Length: 1.66e-06 seconds

คุณสมบัติของคำสั่ง​

ข้ามไปยังรายการคุณสมบัติของคำสั่ง

Attribute backend.target เป็น object qiskit.transpiler.Target: object ที่มีข้อมูลทั้งหมดที่จำเป็นสำหรับการ transpile Circuit สำหรับ Backend นั้น ซึ่งรวมถึงข้อผิดพลาดและระยะเวลาของคำสั่ง ตัวอย่างเช่น cell ต่อไปนี้ดึงคุณสมบัติสำหรับ Gate cz ที่ทำงานระหว่างคู่ Qubit ที่เชื่อมต่อกัน

cell ต่อไปนี้แสดงคุณสมบัติสำหรับการดำเนินการ measurement (รวมถึง readout error) บน Qubit 0

ดูคุณสมบัติของคำสั่ง​

prob-meas0-prep1

พารามิเตอร์นี้บ่งชี้ความน่าจะเป็นของการวัด Qubit ในสถานะ ∣0⟩|0\rangle เมื่อตั้งใจเตรียมในสถานะ ∣1⟩|1\rangle แสดงเป็น P(0∣1)P(0 | 1) สะท้อนถึงข้อผิดพลาดในการเตรียมสถานะและการวัด (SPAM) โดยเฉพาะ measurement errors ใน superconducting qubits

ดูด้วย Qiskitbackend.properties().qubit_property(<qubit>, 'prob_meas0_prep1')
ดูบน IBM Quantum Platformส่วนข้อมูลการสอบเทียบ: เมนูดรอปดาวน์ Qubit
prob-meas1-prep0

ในทำนองเดียวกัน พารามิเตอร์นี้แสดงความน่าจะเป็นของการวัด Qubit ในสถานะ ∣1⟩|1\rangle เมื่อตั้งใจเตรียมในสถานะ ∣0⟩|0\rangle แสดงเป็น P(1∣0)P(1 | 0) เหมือน prob_meas0_prep1 สะท้อนถึงข้อผิดพลาด SPAM โดย measurement errors เป็นตัวแปรหลักใน superconducting qubits

ดูด้วย Qiskitbackend.properties().qubit_property(<qubit>, 'prob_meas0_prep0')
ดูบน IBM Quantum Platformส่วนข้อมูลการสอบเทียบ: เมนูดรอปดาวน์ Qubit
2Q error (Heron และ Nighthawk: CZ, Eagle: ECR)

ข้อผิดพลาด two-qubit ต่อ edge จากชุดการวัดเดียวกันที่ใช้คำนวณ 2Q median 2Q error (best) หมายถึงข้อผิดพลาด two-qubit ต่ำสุดบน edge ใดก็ตามของอุปกรณ์ จากชุดการวัดชุดเดียวกันด้วย

View with Qiskitbackend.target['<instruction>'][<qubit 1>, <qubit 2>]
View on IBM Quantum Platformส่วนการสอบเทียบ: วางเมาส์เหนือการเชื่อมต่อ Qubit ใน Map view หรือดูค่าใน Table view ภายใต้คอลัมน์ CZ error (Heron and Nighthawk) หรือ ECR error (Eagle); ดูค่า 2Q error (best) ในส่วน Details
ข้อผิดพลาด 2Q มัธยฐาน (Heron: CZ, Eagle: ECR)

Average gate fidelity ของ two-qubit operation จาก randomized benchmarking วัดใน "isolation": ชุดที่มีระยะห่างขั้นต่ำสอง Qubit ระหว่าง edges randomized benchmarking นี้ใช้เลเยอร์สลับกันของ single-qubit Cliffords และ two-qubit gates ดังนั้นค่าข้อผิดพลาด 2Q สุดท้ายรวมถึงข้อผิดพลาดของเลเยอร์ single-qubit Cliffords

Calculate with Qiskitทำตามตัวอย่างใน notebook ของ Qiskit Community GitHub
View on IBM Quantum Platformส่วน Details; ดูข้อมูลต่อ edge ในส่วนข้อมูลการสอบเทียบด้วย
2Q error (layered)

ค่าเฉลี่ยของข้อผิดพลาดต่อ layered gate (EPLG) ในลูกโซ่ 100 Qubit EPLG เฉลี่ยวัดค่าเฉลี่ยของข้อผิดพลาด Gate ในลูกโซ่แบบเลเยอร์ของ NN Qubit (NN=100 ที่นี่) มาจากปริมาณที่คล้ายกันที่เรียกว่า layer fidelity (LF) โดย EPLG100_{100} = 4/5(1-LF199^{\frac{1}{99}}) และ layer fidelity คือ process fidelity ของลูกโซ่แบบเลเยอร์ของ NN Qubit สำหรับรายละเอียด ดูบทความ Benchmarking quantum processor performance at scale โปรดทราบว่าในบทความ EPLG ถูกกำหนดสำหรับ process error แต่เพื่อความสอดคล้องกับข้อผิดพลาด Gate ที่รายงานแยกกัน จึงอ้างอิงสำหรับ average gate error ดังนั้นจึงมีตัวประกอบ 4/5

บน IBM Quantum Platform การ์ดข้อมูลรายละเอียดของแต่ละ QPU มีส่วนที่เรียกว่า Two-qubit gate error (layered) ซึ่งให้ view ที่ขยายของ two-qubit gate error (layered) ต่ำสุดที่วัดเป็นฟังก์ชันของจำนวน Qubit ในลูกโซ่ ค่าสุดท้ายที่ความยาวลูกโซ่ 100 คือค่าที่นำเสนอในส่วน Details ในทางปฏิบัติ ลูกโซ่ 100 Qubit จำนวนหก (คัดเลือกล่วงหน้าตามประสิทธิภาพที่คาดว่าเหมาะสมที่สุด) จะถูกวัด และค่าที่รายงานสำหรับจำนวน Qubit N คือข้อผิดพลาดต่ำสุดที่พบใน subset ความยาว N ที่ค้นหาจากลูกโซ่ 100 Qubit ทั้งหก

Calculate with Qiskitทำตามตัวอย่างใน notebook ของ Qiskit Community GitHub
View on IBM Quantum Platformส่วน Details และ view ที่ขยายในส่วน Two-qubit gate error (layered)
RZZ error (Heron)

ข้อผิดพลาดของ Gate RZZ ที่เฉลี่ยครอบคลุม RZZ angles ต่างๆ โดยใช้ randomized benchmarking รูปแบบหนึ่งที่ดัดแปลงสำหรับ arbitrary unitaries

ดูด้วย Qiskitสำคัญ: ตรวจสอบให้แน่ใจว่าตั้งค่า use_fractional_gates=True เมื่อโหลด Backend แล้วจึงใช้ backend.target['rzz'][<qubit 1>, <qubit 2>]
ดูบน IBM Quantum Platformส่วนการสอบเทียบ: เลือก RZZ ในเมนูดรอปดาวน์ Connection และวางเมาส์เหนือการเชื่อมต่อ Qubit ใน Map view คุณยังสามารถเลือก RZZ error ในเมนูดรอปดาวน์ Graph output ใน Graph view หรือดูค่าใน Table view ภายใต้คอลัมน์ RZZ error
ข้อผิดพลาด ID / ข้อผิดพลาด √x (sx) / ข้อผิดพลาด Pauli-X / ข้อผิดพลาด RX

ข้อผิดพลาดใน Gate one-qubit แบบ finite-duration discrete วัดจาก randomized benchmarking ลำดับ randomized benchmarking ประกอบด้วย Gate SX, ID และ X และสมมติว่าข้อผิดพลาดของ Gate เหล่านี้เท่ากัน Gate ID คือ delay ที่มีระยะเวลาเท่ากับระยะเวลาของ Gate √X และ X Gate RX ยังมีระยะเวลาเดียวกับ Gate √X และ X ด้วย amplitude แบบแปรผัน ดังนั้นจึงรายงานว่ามีข้อผิดพลาดเหมือน Gate เหล่านี้

ดูด้วย Qiskitbackend.target['<instruction>'][<qubit 1>, ]
ดูบน IBM Quantum Platformส่วนการสอบเทียบ: เมนูดรอปดาวน์ Qubit
SX error (ค่ามัธยฐาน)

Average gate fidelity ของ Gate √X (SX) จาก randomized benchmarking วัดพร้อมกันบน Qubit ทั้งหมด ลำดับ randomized benchmarking ประกอบด้วย Gate SX, ID และ X และสมมติว่าข้อผิดพลาดของ Gate เหล่านี้เท่ากัน

View on IBM Quantum Platformส่วน Details
ข้อผิดพลาดการหมุนรอบแกน Z (RZ)

ข้อผิดพลาดใน virtual RZ gate รายงานเป็น 0 ทั้งหมดเนื่องจากดำเนินการในซอฟต์แวร์

View with Qiskit backend.target['<instruction>'][<qubit 1>, ]
View on IBM Quantum Platformส่วนการสอบเทียบ: เมนูดรอปดาวน์ Connection
Readout error

readout error วัดความน่าจะเป็นเฉลี่ยของการวัดสถานะ Qubit ผิดพลาด โดยทั่วไปคำนวณเป็นค่าเฉลี่ยของ prob_meas0_prep1 และ prob_meas1_prep0 ให้ค่าเดียวสำหรับ measurement fidelity

View with Qiskitbackend.properties().readout_error(<qubit>)
View on IBM Quantum Platformส่วนข้อมูลการสอบเทียบ เมนูดรอปดาวน์ Qubit
Readout error (median)

Fidelity ของการดำเนินการ readout readout error วัดโดยเตรียม Qubit ในสถานะ ∣0⟩|0\rangle (∣1⟩|1\rangle) และวัดความน่าจะเป็นของ output ในสถานะ ∣1⟩|1\rangle (∣0⟩|0\rangle) ค่าที่รายงานเป็นค่าเฉลี่ยของข้อผิดพลาดสองค่านี้ โดยนำ median จาก Qubits ทั้งหมด

View on IBM Quantum Platformส่วนข้อมูลการสอบเทียบ ส่วน Details
Single-qubit gate length

ระยะเวลาของการดำเนินการ single-qubit gate โปรดทราบว่าค่าที่แสดงบน IBM Quantum Platform เป็นหน่วยนาโนวินาที ค่าที่ return ใน Qiskit เป็นหน่วยวินาที

ดูด้วย Qiskitbackend.target['<instruction>'][<qubit 1>, ].duration
ดูบน IBM Quantum Platformส่วนการสอบเทียบ: เมนูดรอปดาวน์ Qubit
ความยาวของ Gate (2Q gates)

ระยะเวลาของการดำเนินการ two-qubit gate โปรดทราบว่าค่าที่แสดงบน IBM Quantum Platform มีหน่วยเป็นนาโนวินาที ค่าที่ return ใน Qiskit มีหน่วยเป็นวินาที

View with Qiskitbackend.target['<instruction>'][<qubit 1>, <qubit 2> ].duration
View on IBM Quantum Platformส่วนการสอบเทียบ: เมนูดรอปดาวน์ Qubit
Readout length

readout_length ระบุระยะเวลาของการดำเนินการ readout สำหรับ Qubit วัดเวลาตั้งแต่เริ่มการส่ง measurement pulse จนเสร็จสิ้นการแปลงสัญญาณเป็นดิจิทัล หลังจากนั้นระบบพร้อมสำหรับการดำเนินการถัดไป การเข้าใจพารามิเตอร์นี้สำคัญมากสำหรับการ optimize การ execute Circuit โดยเฉพาะเมื่อรวม mid-circuit measurements

View with Qiskit
  • สำหรับ measure: backend.properties().readout_length(<qubit>)
  • สำหรับ measure_2: backend.target['measure_2'][<qubit 1>, ].duration
View on IBM Quantum Platformส่วนข้อมูลการสอบเทียบ เมนูดรอปดาวน์ Qubit
Initialization error

initialization error วัดเปอร์เซ็นต์ของประชากรในสถานะ ∣1⟩|1\rangle หลัง rep-delay เริ่มต้นและกระบวนการเตรียม qubit เมื่อการทดลองก่อนหน้าเตรียม qubit ไว้ในสถานะ ∣1⟩|1\rangle โปรดทราบว่าสิ่งนี้แตกต่างเล็กน้อยจากปริมาณ prob_meas1_prep0 ซึ่งวัดเปอร์เซ็นต์ของการวัดที่ถูกกำหนดให้เป็นสถานะ ∣1⟩|1\rangle อย่างหลังเป็นการวัดทั้ง initialization error และกระบวนการแยกแยะระหว่างสถานะ ∣0⟩|0\rangle และ ∣1⟩|1\rangle ในขีดจำกัดของการวัดที่สมบูรณ์แบบ ปริมาณทั้งสองจะเท่ากัน

View with Qiskitbackend.properties().qubit_property(<qubit>, 'init_error')
View on IBM Quantum Platformส่วนข้อมูลการสอบเทียบ เมนูดรอปดาวน์ Qubit
# Get the cz gate properties for a connected pair of qubits
# (the first edge in this backend's coupling map)
edge = next(iter(backend.target["cz"]))
backend.target["cz"][edge]
InstructionProperties(duration=6.8e-08, error=0.007694157330164875)
backend.target["measure"][(0,)]
InstructionProperties(duration=1.66e-06, error=0.068359375)

คุณสมบัติเพิ่มเติม​

จำนวน circuit สูงสุดต่อวินาที (MCPS)

Maximum circuits per second (MCPS) รวมถึงการวัด การรีเซ็ต และการเริ่มต้นใหม่ของ Circuit ที่มี Gate Hadamard และการวัดหนึ่งครั้ง

View with Qiskitmcps = backend.configuration().mcps
View on IBM Quantum Platformส่วน Details
CLOPS (or CLOPS_h)

Circuit layer operations per second (CLOPS) เป็นการวัดว่า QPU สามารถ execute เลเยอร์ของ Circuit 100x100 (hardware-aware circuit) ได้กี่เลเยอร์ต่อหน่วยเวลา

Calculate with Qiskitดู โค้ด CLOPS ใน Qiskit Community GitHub
View on IBM Quantum Platformส่วน Details
Status

ด้วย BackendStatus คุณสามารถดูสถานะ QPU (เช่น Active, Paused, Offline) รวมถึงจำนวนงานที่รออยู่

ดูด้วย Qiskitprint(backend.status().status_msg), print(backend.status().pending_jobs)
ดูบน IBM Quantum Platformส่วน Details
แผนภาพ topology หรือ coupling map

แผนภาพที่แสดง Qubit คู่ที่รองรับการดำเนินการ two-qubit gate ระหว่างกัน เรียกอีกชื่อว่า coupling map หรือ connectivity Qubit แทนด้วยวงกลม และการดำเนินการ two-qubit gate ที่รองรับแสดงเป็นเส้นที่เชื่อม Qubit

View with Qiskitfrom qiskit.visualization import plot_gate_map then plot_gate_map(backend)
View on IBM Quantum Platformส่วนข้อมูลการสอบเทียบ; คลิก Expand เพื่อดู view ที่ใหญ่ขึ้น
ความหมายของ `error = 1` คืออะไร?

หาก benchmarking ของ Qubit หรือ edge ไม่สำเร็จในช่วงหลายวัน ไม่ว่าจะเนื่องจากคุณภาพข้อมูลต่ำหรือปัจจัยภายในอื่นๆ ค่าข้อผิดพลาดที่รายงานจะถือว่าล้าสมัยและจะถูกรายงานเป็น 1 ค่านี้ไม่ได้หมายความว่า Qubit หรือ edge นั้นเสียใช้งานไม่ได้เสมอไป หรือข้อผิดพลาดเป็น 1 แต่ถือว่าข้อผิดพลาดไม่ได้กำหนดและควรดำเนินการด้วยความระมัดระวังเมื่อใช้งาน Qubit หรือ Gate นั้น

ขั้นตอนถัดไป​

คำแนะนำ