ขีดจำกัดของงาน
เมื่อส่งงานไปยัง IBM® QPU งานนั้นจะถูกส่งไปยังบริการตรวจสอบงานก่อน บริการนี้พยายามตรวจสอบว่างานจะสามารถรันบน QPU ได้ เพื่อให้ไม่ต้องรอคิวแล้วมีงานล้มเหลว การตรวจสอบเหล่านี้รวมถึงการบังคับใช้ขีดจำกัดต่อไปนี้ หากเกินขีดจำกัดเหล่านี้ workload นั้นจะไม่สามารถจัดการโดย quantum software stack ได้และมักจะล้มเหลว
- ตัวเลือก primitive บางอย่างเพิ่มขนาด Circuit ขีดจำกัดที่อธิบายจะถูกตรวจสอบ หลังจาก ขนาด Circuit เพิ่มขึ้นตามที่คาดไว้ โดยเฉพาะอย่างยิ่ง ตัวเลือกเหล่านี้เพิ่มขนาด Circuit:
- Dynamical decoupling และ gate-folding ZNE เพิ่ม Gate เพิ่มเติมที่รวมอยู่ในคำสั่งสำหรับขีดจำกัดจำนวนคำสั่งระดับต่ำสูงสุดต่อ Qubit
- Gate-folding ZNE เพิ่ม two-qubit Gate เพิ่มเติมที่เกี่ยวข้องกับขีดจำกัดจำนวน two-qubit Gate สูงสุดต่องาน จำนวน two-qubit Gate จะถูกคูณด้วยผลรวมของ noise factor ที่ขอใน gate-folding ZNE
- ขีดจำกัดที่รายงานโดยฟิลด์
backend.configuration()ได้แก่max_shotsและmax_experimentsไม่มีความเกี่ยวข้องหรือบังคับใช้อีกต่อไป ฟิลด์เหล่านี้จะถูกลบออกในอนาคตอันใกล้ - ขีดจำกัดเหล่านี้เป็นต่องาน ไม่ใช่ต่อ Primitive Unified Bloc (PUB)
การประมวลผลสูงสุด
อนุญาตการประมวลผลได้สูงสุด 10 ล้าน ครั้งสำหรับงาน Sampler (งาน Estimator สามารถแบ่งเป็นงานย่อยขนาดเล็กได้ ดังนั้นขีดจำกัดนี้จึงไม่บังคับใช้) จำนวนการประมวลผลคือจำนวน Circuit คูณกับจำนวน shot โดย Circuit คือ Circuit ที่สร้างขึ้นหลังจากองค์ประกอบ PUB ถูกกระจาย
ตัวอย่างเช่น หาก PUB มี Circuit หนึ่งตัวและพารามิเตอร์ที่มีรูปร่าง (4, 1) จะได้ Circuit 4 ตัว หากขอ 2,000 shot จำนวนการประมวลผลทั้งหมดจะเป็น
โปรดทราบว่าหากเปิดใช้งาน Pauli-twirling ในงาน Sampler จำนวน shot ทั้งหมดจะขึ้นอยู่กับค่า num_randomizations และ shots_per_randomization ดูรายละเอียดเพิ่มเติมที่ TwirlingOptions
จำนวนคำสั่งระดับต่ำสูงสุดต่อ Qubit
บริการอนุญาตคำสั่ง control-system ได้สูงสุด 26.8 ล้านคำสั่งต่อ Qubit เพื่อให้แน่ใจว่า user Circuit พอดีกับหน่วยความจำคำสั่งของ control system ตัวอย่างด้านล่างแสดงวิธีการ transpile Circuit และนับจำนวนคำสั่งแต่ละประเภท
ตารางต่อไปนี้อธิบายว่าระบบแปลคำสั่ง instruction set architecture (ISA) Circuit เป็นคำสั่ง control system อย่างไรเมื่อคำนวณขีดจำกัดนี้
| คำสั่ง | จำนวน |
|---|---|
rz | 1 |
delay | 1 |
sx | 2 |
x | 2 |
cx | 5 |
cz | 5 |
ecr | 5 |
measure | 10 |
reset | 17 |
init | 50 |
ตารางนี้แสดง heuristic ที่ใช้ในการตรวจสอบและไม่ได้สะท้อนจำนวนคำสั่งที่แน่นอนที่ใช้ในการดำเนินการ
ตัวอย่าง
กำหนด Circuit, transpile และนับจำนวน Gate ที่จะรัน
from qiskit import QuantumCircuit
from qiskit.transpiler import generate_preset_pass_manager
from qiskit_ibm_runtime import QiskitRuntimeService
num_qubits = 50
ghz = QuantumCircuit(num_qubits)
ghz.h(range(num_qubits))
ghz.cx(0, range(1, num_qubits))
op_counts = ghz.count_ops()
# Choose the least busy backend
service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)
pm = generate_preset_pass_manager(optimization_level=3, backend=backend)
transpiled_ghz = pm.run(ghz)
op_counts = transpiled_ghz.count_ops()
print(f"Post-Transpilation gates: {op_counts}")
สำหรับรายละเอียดทั้งหมด ดู Transpile against custom backends.
จำนวน single- และ two-qubit Gate สูงสุดต่อ Circuit
จำนวน single-qubit Gate สูงสุดมีดังนี้:
- RZ Gate 30 ล้านตัว
- SX Gate 20 ล้านตัว
จำนวน two-qubit Gate สูงสุดต่อ Circuit คือ 5 ล้านตัว เพื่อให้แน่ใจว่างานสามารถจัดการได้ภายในขีดจำกัดหน่วยความจำของ software stack ระดับต่ำ