Rigetti 提供者
提示
第一次用戶會自動取得 免費 $500 (USD) Azure Quantum 點數 ,以便與每個參與的量子硬體提供者搭配使用。 如果您已使用所有點數,但還需要更多,可以申請 Azure Quantum 點數方案。
Rigetti 量子處理器 是以無法超導量子位為基礎的通用網關模型機器。 系統功能和裝置特性包括增強的讀取功能、量子處理時間的加速、多個糾纏網關係列的快速閘道時間、透過主動緩存器重設快速取樣,以及參數控制。
- 發行者: Rigetti
- 提供者識別碼:
rigetti
Rigetti 提供者提供下列 targets 專案:
目標名稱 | 目標標識碼 | 量子位數目 | Description |
---|---|---|---|
量子虛擬機 (QVM) | rigetti.sim.qvm | - | Quil、Q#和 Qiskit 程式的開放原始碼模擬器。 免費。 |
Ankaa-2 | rigetti.qpu.ankaa-2 | 84 個量子位 | Rigetti 最強大的可用量子處理器。 |
注意
Rigetti 模擬器和硬體 targets 不支援 Cirq 程式。
Rigetti 的 targets 對應至 No Control Flow 配置檔。 如需此 target 配置檔及其限制的詳細資訊,請參閱 瞭解 target Azure Quantum 中的配置檔類型。
Simulators
Quantum 虛擬機 (QVM) 是 Quil 的開放原始碼模擬器。 接受 rigetti.sim.qvm
targetQuil 程式 做為文字,並在裝載於雲端的 QVM 上執行該程式,並傳回仿真的結果。
- 工作類型:
Simulation
- 數據格式:
rigetti.quil.v1
、rigetti.qir.v1
- 目標識別碼:
rigetti.sim.qvm
- 目標執行設定檔: No Control Flow
- 定價:免費 ($0)
量子計算機
所有 Rigetti 公開可用的 QPU 都可透過 Azure Quantum 取得。 這份清單可能會變更,而不需事先通知。
Ankaa-2
多晶元 84 量子位處理器提供 2.5X 效能改善,優於其他 Rigetti QPU。
- 工作類型:
Quantum Program
- 數據格式:
rigetti.quil.v1
、rigetti.qir.v1
- 目標識別碼:
rigetti.qpu.ankaa-2
- 目標執行設定檔: No Control Flow
定價
若要查看 Rigetti 的計費方案,請流覽 Azure Quantum 定價。
輸入格式
所有 Rigetti targets 目前都接受兩種格式:
rigetti.quil.v1
,這是 Quil 程式的文字。rigetti.qir.v1
,這是 QIR 位程序代碼。
所有專案 targets 也會採用選擇性 count
的整數參數,以定義要執行的快照數目。 如果省略,程式只會執行一次。
奎爾
所有 Rigetti targets 都接受 rigetti.quil.v1
輸入格式,這是 Quil 程式的文字,代表 Quantum 指令語言。 根據預設,程式會先使用 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
執行 Quantum Intermediate Representation (QIR) 相容作業。 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 程式表示來自任何平臺的 Rigetti 系統使用者可使用的完整功能,包括 Azure Quantum。 如果您想要量身打造量子網關的分解,或在脈衝層級撰寫程式,您會想要在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
# 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}")
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應