작업 한계
IBM® 의 QPU로 작업을 전송하면, 먼저 해당 작업이 QPU에서 실행 가능한지 확인하는 검증 과정을 거칩니다. 이는 사용자가 큐를 통과할 때까지 기다린 후 작업이 실패할 가능성을 줄이기 위함입니다. 이러한 점검에는 아래에 설명된 제한 사항을 준수하도록 하는 것이 포함됩니다. 이러한 한도를 초과할 경우, 해당 워크로드는 양자 소프트웨어 스택에서 처리할 수 없으며 대개 실패하게 됩니다.
- 특정 기본 옵션은 회로 크기를 증가시킵니다. 설명된 제한은 회로 크기가 예상되는 증가 후에 확인됩니다. 특히 이러한 옵션은 회로 크기를 증가시킵니다:
- 동적 디커플링 및 게이트 폴딩 ZNE는 큐비트당 최대 저수준 명령어 수 제한에 대한 명령어에 포함되는 추가 게이트를 도입합니다.
- 게이트 폴딩 ZNE는 작업당 최대 2큐비트 게이트 수 제한과 관련된 추가 2큐비트 게이트를 도입합니다. 2큐비트 게이트의 수에는 게이트 폴딩 ZNE에서 요청된 노이즈 계수의 합이 곱해집니다.
backend.configuration()필드(max_shots및max_experiments)에서 보고된 제한은 더 이상 관련성이 없거나 시행되지 않습니다. 이러한 필드는 가까운 시일 내에 제거될 예정입니다.- 이러한 제한은 작업당 적용되며, 개별 원시 통합 블록( PUB )당 적용되는 것이 아닙니다.
최대 실행 횟수
출력 크기 제한으로 인해 샘플러 작업의 실행 횟수는 최대 1,000만 회로 제한됩니다. 실행 횟수는 회로 수에 샷 수를 곱한 값이며, 여기서 회로란 PUB 요소가 전송된 후 생성되는 회로를 의미합니다.
예를 들어, 하나의 회로와 (4, 1) 형태의 매개변수를 가진 가 PUB 있다면, 이는 4개의 회로를 생성합니다. 2,000샷을 요청했다면, 총 실행 횟수는 입니다 .
샘플러 작업에서 파울리 트위링을 활성화할 경우, 총 샷 수는 및 shots_per_randomization num_randomizations 값을 기준으로 합니다. 자세한 내용은 를 TwirlingOptions 참조하십시오.
큐비트당 최대 저수준 명령어 수
이 서비스는 큐비트당 최대 26.8 백만 개의 제어 시스템 명령어를 허용합니다. 이를 통해 사용자 회로가 제어 시스템의 명령어 메모리 내에 수용되도록 보장합니다. 아래 예제는 회로를 트랜스파일하고 각 명령어의 개수를 계산하는 방법을 보여줍니다.
다음 표는 시스템이 이 한계를 계산할 때 명령어 집합 아키텍처(ISA) 회로 명령어를 제어 시스템 명령어로 변환하는 방식을 설명합니다.
명령어 | 개수 |
|---|---|
rz | 1 |
delay | 1 |
sx | 2 |
x | 2 |
cx | 5 |
cz | 5 |
ecr | 5 |
measure | 1,000만 |
reset | 17 |
init | 50 |
이 표는 유효성 검사에 사용된 휴리스틱을 캡처한 것으로, 연산을 구현하는 데 사용된 정확한 명령어 수를 반영하지는 않습니다.
예
회로를 정의하고, 트랜스파일하며, 실행될 게이트 수를 계산합니다.
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의 커스텀 백엔드 사용을 참조하십시오.
회로당 단일 큐비트 및 2큐비트 게이트의 최대 개수
단일 큐비트 게이트의 최대 개수는 다음과 같습니다:
- 3,000만 RZ 게이트
- 2,000만 SX 게이트
회로당 2큐비트 게이트의 최대 개수는 500만 개입니다. 이렇게 하면 저수준 소프트웨어 스택의 메모리 제한 내에서 작업을 조작할 수 있습니다.