interop 패키지

클래스

PeakUsageGreedyQubitManager

컴퓨팅 및 메모리 큐비트를 별도로 추적하는 큐비트 관리자입니다.

각 큐비트 유형에 대한 두 개의 독립적인 큐비트 관리자로 구성됩니다. 각 관리자는 .에서 cirq.GreedyQubitManager욕심 할당 전략을 사용합니다.

해제된 후 한 형식의 큐비트는 다른 형식의 큐비트로 다시 사용할 수 없습니다. 따라서 피크 큐비트 수는 각 형식에 대한 피크 큐비트 수의 합계와 같습니다.

PeakUsageGreedyQubitManager를 초기화합니다.

PopBlock

추적에서 현재 반복된 블록의 끝을 신호로 표시합니다.

PushBlock

추적에서 반복되는 블록의 시작을 신호로 표시합니다.

ReadFromMemoryGate

메모리 레지스터에서 COMPUTE 레지스터로 큐비트 상태를 이동합니다.

COMPUTE 큐비트가 0 상태로 준비된다고 가정합니다. 메모리 큐비트를 0 상태로 둡니다.

ReadFromMemoryGate를 초기화합니다.

TypedQubit

형식이 있는 큐비트입니다.

형식화된 큐비트를 초기화합니다.

WriteToMemoryGate

COMPUTE 레지스터에서 메모리 레지스터로 큐비트 상태를 이동합니다.

메모리 큐비트가 0 상태로 준비된다고 가정합니다. COMPUTE 큐비트를 0 상태로 유지합니다.

WriteToMemoryGate를 초기화합니다.

열거형

QubitType

큐비트 형식입니다.

각 논리 큐비트는 컴퓨팅 또는 메모리 큐비트일 수 있습니다. 컴퓨팅 큐비트는 일반적으로 사용할 수 있습니다.

메모리 큐비트에는 게이트를 적용할 수 없는 제한이 있습니다. 메모리 큐비트에서 허용되는 작업은 읽기/쓰기뿐이며, 여기서 상태는 메모리에서 컴퓨팅 게이트로 또는 컴퓨팅에서 메모리 게이트로 이동됩니다.

오류 수정이 적용될 때 메모리 큐비트는 리소스를 적게 요구하지만 게이트 애플리케이션을 허용하지 않는 보다 효율적인 오류 수정 체계(예: Yoked 표면 코드)로 인코딩된다고 가정합니다 https://arxiv.org/abs/2312.04522.

함수

assert_qubits_type

큐비트가 형식을 지정했지만 TypedQubits인 경우에만 어설션합니다.

assert_qubits_type(qs: Sequence[Qid], qubit_type: QubitType) -> None

매개 변수

Name Description
qs
필수
qubit_type
필수

read_from_memory

메모리에서 큐비트를 읽는 작업입니다.

read_from_memory(memory_qubits: Sequence[Qid], compute_qubits: Sequence[Qid]) -> Operation

매개 변수

Name Description
memory_qubits
필수
compute_qubits
필수

trace_from_cirq

Cirq 회로를 리소스 예측 추적으로 변환합니다.

회로의 모든 순간 및 작업을 반복하여 각 게이트를 추적 작업으로 변환합니다. 메서드가 있는 _to_trace 게이트는 직접 변환되고, 다른 게이트는 Cirq _decompose_with_context_ 또는 _decompose_ 프로토콜을 통해 재귀적으로 분해됩니다.

trace_from_cirq(circuit: cirq.CIRCUIT_LIKE, *, classical_control_probability: float = 0.5, rotation_threshold: float = 1e-06, track_memory_qubits: bool = True) -> Trace

매개 변수

Name Description
circuit
필수

변환할 Cirq 회로입니다.

classical_control_probability
필수

고전적으로 제어되는 작업이 추적에 포함될 확률입니다. 기본값은 0.5입니다.

rotation_threshold
필수

절대값이 이 임계값 미만인 회전 지수는 ID로 처리되고 추적에서 생략됩니다. 이는 단일 큐비트 회전(RX, RY, RZ)뿐만 아니라 제어된 Z 분해의 회전 구성 요소에도 적용됩니다. 기본값은 1e-6입니다.

track_memory_qubits
필수

True이면 메모리 큐비트가 컴퓨팅 큐비트와 별도로 추적됩니다. False이면 모든 큐비트가 컴퓨팅 큐비트로 처리됩니다. 또한 True이면 메모리에서 읽기 및 쓰기-메모리 명령이 추적에 유지되고, 그렇지 않으면 SWAP 및 RESET 명령으로 분해됩니다. 기본값은 True입니다.

키워드 전용 매개 변수

Name Description
classical_control_probability
Default value: 0.5
rotation_threshold
Default value: 1e-06
track_memory_qubits
Default value: True

반품

형식 Description

회로의 실행 프로필을 나타내는 추적입니다.

trace_from_entry_expr

Q# 항목 식을 리소스 예측 추적으로 변환합니다.

항목 식을 평가하여 논리 개수를 가져온 다음 해당 양자 연산을 포함하는 추적을 작성합니다.

trace_from_entry_expr(entry_expr: str | Callable | LogicalCounts, *args) -> Trace

매개 변수

Name Description
entry_expr
필수
<xref:<xref:qdk.qre.interop.str | Callable | LogicalCounts>>

Q# 항목 식 문자열, 호출 가능 또는 미리 계산된 논리 개수입니다.

*args
필수

호출 가능으로 전달할 인수(제공된 경우)입니다.

반품

형식 Description

프로그램의 리소스 프로필을 나타내는 추적입니다.

trace_from_entry_expr_cached

선택적 캐싱을 사용하여 Q# 항목 식을 추적으로 변환합니다.

cache_path 제공되고 있는 경우 디스크에서 추적이 로드됩니다. 그렇지 않으면 추적을 통해 trace_from_entry_expr 계산되고 필요에 따라 cache_path 기록됩니다.

trace_from_entry_expr_cached(entry_expr: str | Callable | LogicalCounts, cache_path: Path | None, *args) -> Trace

매개 변수

Name Description
entry_expr
필수
<xref:<xref:qdk.qre.interop.str | Callable | LogicalCounts>>

Q# 항목 식 문자열, 호출 가능 또는 미리 계산된 논리 개수입니다.

cache_path
필수
<xref:Optional>[<xref:Path>]

캐시된 추적을 읽거나 쓰는 경로입니다. None이면 캐싱을 사용할 수 없습니다.

반품

형식 Description

프로그램의 리소스 프로필을 나타내는 추적입니다.

trace_from_qir

QIR 프로그램을 리소스 예측 추적으로 변환합니다.

QIR 모듈을 구문 분석하고, 양자 게이트를 추출하고, 리소스 추정에 사용할 수 있는 추적을 빌드합니다. 조건부 분기는 항상 잘못된 경로를 따라 확인됩니다(측정 결과가 0이라고 가정).

trace_from_qir(input: str | bytes) -> Trace

매개 변수

Name Description
input
필수

QIR 입력을 LLVM IR 텍스트(str) 또는 비트코드(바이트)로 입력합니다.

반품

형식 Description

QIR 프로그램의 양자 연산을 포함하는 추적입니다.

write_to_memory

메모리에 큐비트를 쓰는 작업입니다.

write_to_memory(memory_qubits: Sequence[Qid], compute_qubits: Sequence[Qid]) -> Operation

매개 변수

Name Description
memory_qubits
필수
compute_qubits
필수