Rigetti 공급자

처음 사용자는 참여하는 각 양자 하드웨어 공급자와 함께 사용할 수 있는 무료 $500(USD)Azure Quantum 크레딧 을 자동으로 받습니다. 크레딧을 모두 사용했는데 더 필요한 경우 Azure Quantum Credits 프로그램에 신청할 수 있습니다.

Rigetti 양자 프로세서는 튜닝 가능한 초전도 큐비트를 기반으로 하는 범용 게이트 모델 머신입니다. 시스템 기능 및 디바이스 특성에는 향상된 판독 기능, 양자 처리 시간의 속도 향상, 여러 얽힌 게이트 제품군에 대한 빠른 게이트 시간, 활성 레지스터 재설정을 통한 빠른 샘플링 및 파라메트릭 제어가 포함됩니다.

  • 게시자: Rigetti
  • 공급자 ID: rigetti

Rigetti 공급자는 다음 targets 을 사용할 수 있습니다.

대상 이름 대상 ID 큐비트 수 설명
QVM(Quantum Virtual Machine) rigetti.sim.qvm - Quil, Q#및 Qiskit 프로그램에 대한 오픈 소스 시뮬레이터입니다. 무료입니다.
Ankaa-2 rigetti.qpu.ankaa-2 84큐비트 Rigetti의 가장 강력한 사용 가능한 양자 프로세서입니다.

참고

Rigetti 시뮬레이터 및 하드웨어 targets 는 Cirq 프로그램을 지원하지 않습니다.

Rigetti는 targets 프로필에 No Control Flow 해당합니다. 이 target 프로필 및 해당 제한 사항에 대한 자세한 내용은 Azure Quantum의 프로필 유형 이해를 target 참조하세요.

시뮬레이터

QVM(Quantum Virtual Machine)Quil을 위한 오픈 소스 시뮬레이터입니다. 는 rigetti.sim.qvmtargetQuil 프로그램을 텍스트로 수락하고 클라우드에서 호스트되는 QVM에서 해당 프로그램을 실행하여 시뮬레이션된 결과를 반환합니다.

  • 작업 유형: Simulation
  • 데이터 형식: rigetti.quil.v1, rigetti.qir.v1
  • 대상 ID: rigetti.sim.qvm
  • 대상 실행 프로필: No Control Flow
  • 가격 책정: 무료(0달러)

양자 컴퓨터

공개적으로 사용 가능한 Rigetti의 모든 QPU는 Azure Quantum을 통해 사용할 수 있습니다. 이 목록은 사전 통지 없이 변경될 수 있습니다.

Ankaa-2

다른 Rigetti QPU보다 2.5배 성능 향상을 제공하는 다중 칩 84큐비트 프로세서입니다.

  • 작업 유형: Quantum Program
  • 데이터 형식: rigetti.quil.v1, rigetti.qir.v1
  • 대상 ID: rigetti.qpu.ankaa-2
  • 대상 실행 프로필: No Control Flow

가격 책정

Rigetti 청구 플랜을 보려면 Azure Quantum 가격 책정을 방문하세요.

입력 형식

모든 Rigetti targets 는 현재 다음 두 가지 형식을 허용합니다.

  • rigetti.quil.v1, Quil 프로그램의 텍스트입니다.
  • rigetti.qir.v1, QIR Bitcode입니다.

또한 모두 targets 실행할 샷 수를 정의하기 위한 선택적 count 정수 매개 변수를 사용합니다. 생략하면 프로그램이 한 번만 실행됩니다.

Quil

모든 Rigetti targets 는 양자 명령 언어를 의미하는 Quil 프로그램의 텍스트인 입력 형식을 허용 rigetti.quil.v1 합니다. 기본적으로 프로그램은 실행하기 전에 quilc 를 사용하여 컴파일됩니다. 그러나 quilc는 펄스 수준 제어 기능(Quil-T)을 지원하지 않으므로 이러한 기능을 사용하려면 네이티브 Quil 프로그램(Quil-T 포함)을 입력으로 제공하고 입력 매개 변수 skipQuilc: true를 지정해야 합니다.

Quil 프로그램을 더 쉽게 구성하기 위해 pyquil-for-azure-quantum 패키지와 함께 pyQuil을 사용할 수 있습니다. 이 패키지가 없으면 pyQuil을 사용하여 Quil 프로그램을 구성할 수 있지만 Azure Quantum에 제출할 수는 없습니다.

QIR

모든 Rigetti 하드웨어는 QIR 기본 프로필 v1rigetti.qir.v1을 로 사용하여 (QIR) 규격 작업의 실행을 Quantum Intermediate Representation 지원합니다. QIR은 양자 계산을 위해 많은 양자 언어 및 target 플랫폼을 지원하고 상위 수준 언어와 컴퓨터 간의 통신을 가능하게 하는 공통 인터페이스를 제공합니다. 예를 들어 Q#, Quil 또는 Qiskit 작업을 Rigetti 하드웨어에 제출할 수 있으며 Azure Quantum은 자동으로 입력을 처리합니다. 자세한 내용은 Quantum Intermediate Representation를 참조하세요.

올바른 입력 형식 선택

Quil 또는 다른 QIR 규격 언어를 사용해야 하나요? 그것은 최종 사용 사례에 달려 있습니다. QIR은 많은 사용자가 쉽게 액세스할 수 있지만, Quil은 현재 더욱 강력합니다.

QIR 생성을 지원하는 Qiskit, Q#또는 다른 도구 키트를 사용하고 애플리케이션이 Azure Quantum을 통해 Rigetti targets 에서 작동하는 경우 QIR이 적합합니다. QIR은 빠르게 진화하는 사양을 가지고 있으며, Rigetti는 시간이 지남에 따라 고급 QIR 프로그램에 대한 지원을 계속 늘리고 있습니다 - 오늘 컴파일할 수 없는 것은 내일 잘 컴파일될 수 있습니다.

반면에 Quil 프로그램은 Azure Quantum을 포함한 모든 플랫폼에서 Rigetti 시스템 사용자가 사용할 수 있는 전체 기능 세트를 표현합니다. 양자 게이트의 분해를 조정하거나 펄스 수준에서 프로그램을 작성하려는 경우 아직 QIR을 통해 사용할 수 없기 때문에 Quil에서 작업하는 것이 좋습니다.

Quil 작업을 제출하는 가장 쉬운 방법은 pyQuil 라이브러리의 도구 및 설명서를 사용할 수 있으므로 pyquil-for-azure-quantum 패키지를 사용하는 것입니다.

Quil 프로그램을 수동으로 구성하고 azure-quantum 패키지를 사용하여 직접 제출할 수도 있습니다.

from pyquil.gates import CNOT, MEASURE, H
from pyquil.quil import Program
from pyquil.quilbase import Declare
from pyquil_for_azure_quantum import get_qpu, get_qvm

# Note that some environment variables must be set to authenticate with Azure Quantum
qc = get_qvm()  # For simulation
# qc = get_qpu("Ankaa-2") for submitting to a QPU

program = Program(
    Declare("ro", "BIT", 2),
    H(0),
    CNOT(0, 1),
    MEASURE(0, ("ro", 0)),
    MEASURE(1, ("ro", 1)),
).wrap_in_numshots_loop(5)

# Optionally pass to_native_gates=False to .compile() to skip the compilation stage
result = qc.run(qc.compile(program))
data_per_shot = result.readout_data["ro"]
# Here, data_per_shot is a numpy array, so you can use numpy methods
assert data_per_shot.shape == (5, 2)
ro_data_first_shot = data_per_shot[0]
assert ro_data_first_shot[0] == 1 or ro_data_first_shot[0] == 0

# Let's print out all the data
print("Data from 'ro' register:")
for i, shot in enumerate(data_per_shot):
    print(f"Shot {i}: {shot}")