共用方式為


Rigetti 提供者

重要

在 2025 年 6 月 1 日之後,您將無法再使用 Azure Quantum 積分。 如果您有 Azure Quantum 點數的剩餘餘額,請務必在此日期之前兌換。

Rigetti 量子處理器 是通用的網關模型機器,以無法超導量子位為基礎。 系統功能和裝置特性包括增強的讀取功能、量子處理時間的加速、多個糾纏網關係列的快速閘道時間、透過主動緩存器重設進行快速取樣,以及參數控制。

  • 發行者: Rigetti
  • 提供者識別碼: rigetti

Rigetti 提供者提供下列 targets 專案:

目標名稱 目標標識碼 量子位數目 描述
量子虛擬機 (QVM) rigetti.sim.qvm - 適用於 Quil、Q# 和 Qiskit 程式的開放原始碼模擬器。 免費。
安卡-3 rigetti.qpu.ankaa-3 84 個量子位
Ankaa-9Q-3 rigetti.qpu.ankaa-9q-3 9 個量子位

注意

Rigetti 模擬器和硬體 targets 不支援 Cirq 程式。

里蓋蒂的 targets 對應到 QIR Base 配置檔。 如需此 target 配置檔及其限制的詳細資訊,請參閱 瞭解 target Azure Quantum 中的配置檔類型。

量子計算機

所有 Rigetti 對外公開的 QPU 都可透過 Azure Quantum 取得。 這份清單可能會變更,而不事先通知。

Ankaa-3

84-量子位元處理器。

  • 工作類型: Quantum Program
  • 數據格式:rigetti.quil.v1rigetti.qir.v1
  • 目標標識碼:rigetti.qpu.ankaa-3
  • 目標執行配置檔:QIR Base

Ankaa-9Q-3

9量子比特量子處理器。

  • 工作類型: Quantum Program
  • 數據格式:rigetti.quil.v1rigetti.qir.v1
  • 目標標識碼:rigetti.qpu.ankaa-9q-3
  • 目標執行配置檔:QIR Base

模擬器

Quantum 虛擬機 (QVM) 是 Quil 的開放原始碼模擬器。 接受 rigetti.sim.qvmtargetQuil 程式 做為文字,並在裝載於雲端的 QVM 上執行該程式,並傳回仿真的結果。

  • 工作類型: Simulation
  • 數據格式: rigetti.quil.v1rigetti.qir.v1
  • 目標標識碼:rigetti.sim.qvm
  • 目標執行配置檔:QIR Base
  • 定價:免費(0美元)

定價

若要查看 Rigetti 的計費方案,請流覽 Azure Quantum 定價

輸入格式

所有 Rigetti targets 目前都接受兩種格式:

  • rigetti.quil.v1,這是 Quil 程式的文字
  • rigetti.qir.v1,這是 QIR 位碼。

所有 targets 專案也會採用選擇性 count 的整數參數,以定義要執行的拍攝次數。 如果省略,程式只會執行一次。

Quil

所有 Rigetti targets 都rigetti.quil.v1接受輸入格式,也就是 Quil 程式的文字,代表 Quantum 指令語言。 根據預設,程式會先使用 quilc 編譯,再執行。 不過,quilc 不支援脈衝層級控制功能 (Quil-T),因此如果您想要使用這些功能,您必須提供原生 Quil 程式(也包含 Quil-T)作為輸入,並指定輸入參數skipQuilc: true

若要讓建構 Quil 程式變得更容易,您可以搭配套件使用pyQuilpyquil-for-azure-quantum。 如果沒有此套件, pyQuil 可用來 建構 Quil 程式,但無法將它們提交至 Azure Quantum。

QIR

所有 Rigetti 硬體都支援使用 Profile,v1 作為 執行Quantum Intermediate Representation符合 QIR 規範的工作。QIR Base QIR 提供一個通用介面,可支援許多量子語言和 target 平臺進行量子計算,並啟用高階語言與計算機之間的通訊。 例如,您可以將 Q#、Quil 或 Qiskit 作業提交至 Rigetti 硬體,而 Azure Quantum 會自動為您處理輸入。 如需詳細資訊,請參閱Quantum Intermediate Representation

選取正確的輸入格式

您應該使用 Quil 或其他 QIR 相容語言嗎? 歸結到您的最終使用案例。 QIR 對許多用戶來說更容易存取,而 Quil 目前功能更強大。

如果您使用 Qiskit、Q# 或其他支援 QIR 產生工具組,且您的應用程式可透過 Azure Quantum 在 Rigetti targets 上運作,則 QIR 適合您! QIR 有一個快速進化的規格,Rigetti 繼續增加對更進階 QIR 程式的支持,因為時間過去 - 今天無法編譯的內容明天可能會編譯良好。

另一方面,Quil 程式表示所有平臺,包括 Azure Quantum 在內的 Rigetti 系統使用者可以使用的完整功能。 如果您想要量身打造量子閘道的分解,或以脈衝層級撰寫程式,您會想要在Quil中工作,因為這些功能尚未透過QIR提供。

範例

提交 Quil 作業最簡單的方式是使用 pyquil-for-azure-quantum 套件,因為它可讓您使用連結庫的工具 pyQuil 和檔。

您也可以手動建構 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

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}")