ข้ามไปยังเนื้อหาหลัก

ขีดจำกัดของงาน

เมื่อส่งงานไปยัง IBM® QPU งานนั้นจะถูกส่งไปยังบริการตรวจสอบงานก่อน บริการนี้พยายามตรวจสอบว่างานจะสามารถรันบน QPU ได้ เพื่อให้ไม่ต้องรอคิวแล้วมีงานล้มเหลว การตรวจสอบเหล่านี้รวมถึงการบังคับใช้ขีดจำกัดต่อไปนี้ หากเกินขีดจำกัดเหล่านี้ workload นั้นจะไม่สามารถจัดการโดย quantum software stack ได้และมักจะล้มเหลว

หมายเหตุ
  • ตัวเลือก primitive บางอย่างเพิ่มขนาด Circuit ขีดจำกัดที่อธิบายจะถูกตรวจสอบ หลังจาก ขนาด Circuit เพิ่มขึ้นตามที่คาดไว้ โดยเฉพาะอย่างยิ่ง ตัวเลือกเหล่านี้เพิ่มขนาด Circuit:
  • ขีดจำกัดที่รายงานโดยฟิลด์ 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 จำนวนการประมวลผลทั้งหมดจะเป็น 4×2,000=8,0004 \times 2,000 = 8,000

โปรดทราบว่าหากเปิดใช้งาน 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 อย่างไรเมื่อคำนวณขีดจำกัดนี้

คำสั่งจำนวน
rz1
delay1
sx2
x2
cx5
cz5
ecr5
measure10
reset17
init50
หมายเหตุ

ตารางนี้แสดง 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 ระดับต่ำ

Source: IBM Quantum docs — updated 14 เม.ย. 2569
English version on doQumentation — updated 7 พ.ค. 2569
This translation based on the English version of 11 มี.ค. 2569