你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Rigetti 提供商
提示
首次使用的用户自动获得 500 美元 (美元的免费) Azure Quantum 额度 ,用于每个参与的量子硬件提供商。 如果你已用完所有额度,且需要更多额度,可以申请 Azure Quantum 额度计划。
Rigetti 量子处理器是基于可调超导量子比特的通用门模型计算机。 系统功能和设备特征包括增强的读出功能、加速的量子处理时间、多个纠缠门系列的快速门时间、通过有源寄存器复位进行快速采样和参数控制。
- 发行商:Rigetti
- 提供程序 ID:
rigetti
Rigetti 提供程序提供以下 targets 功能:
目标名称 | 目标 ID | 量子比特数 | 说明 |
---|---|---|---|
量子虚拟机 (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 中的配置文件类型。
模拟器
Quantum 虚拟机 (QVM) 是 Quil 的开源模拟器。 接受 rigetti.sim.qvm
targetQuil 程序 作为文本,并在云中托管的 QVM 上运行该程序,并返回模拟结果。
- 作业类型:
Simulation
- 数据格式:
rigetti.quil.v1
、rigetti.qir.v1
- 目标 ID:
rigetti.sim.qvm
- 目标执行配置文件: No Control Flow
- 定价:免费(0 美元)
量子计算机
Rigetti 公开发布的所有 QPU 均可通过 Azure Quantum 获取。 此列表随时可能更改,恕不另行通知。
Ankaa-2
多芯片 84 量子比特处理器,性能比其他 Rigetti QPU 提高了 2.5 倍。
- 作业类型:
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 都接受 rigetti.quil.v1
输入格式,即 Quil 程序的文本,它代表量子指令语言。 默认情况下,程序在运行前使用 quilc 编译。 但是,quilc 不支持脉冲级控制功能 (Quil-T),因此如果你想要使用这些功能,则必须提供本机 Quil 程序(也包含 Quil-T)作为输入并指定输入参数 skipQuilc: true
。
为了更轻松地构造 Quil 程序,可将 pyQuil
与 pyquil-for-azure-quantum
包一起使用。 如果不使用此包,可以使用 pyQuil
来构造 Quil 程序,但不要将其提交到 Azure Quantum。
QIR
所有 Rigetti 硬件都支持执行 Quantum Intermediate Representation (QIR) 符合 QIR 基本配置文件(v1)的作业。rigetti.qir.v1
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 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈