你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Quantinuum 提供程序

提示

创建 Azure Quantum 工作区时,会自动为每个量子硬件提供商获取 500 美元的免费 Azure Quantum 信用额度 。 可以使用 Azure Quantum 信用将第一个量子程序提交到真正的量子硬件。

Quantinuum 提供对离子阱系统的访问权限,该系统具有高保真特性、完全连接的量子比特,并能够执行中间线路测量。

  • 发行商:Quantinuum
  • 提供程序 ID:quantinuum

Targets

可从此提供程序获取以下内容 targets :

Target 名称 Target ID 量子比特数 说明
H1-1 语法检查器 quantinuum.sim.h1-1sc 20 个量子比特 在提交到 Quantinuum 平台上的硬件或仿真器之前,使用此方法针对 H1-1 编译器验证量子程序。 免费。
H2-1 语法检查器 quantinuum.sim.h2-1sc 56 个量子比特 在提交到 Quantinuum 平台上的硬件或模拟器之前,使用此函数针对 H2-1 编译器验证量子程序。 免费。
H1-1 模拟器 quantinuum.sim.h1-1e 20 个量子比特 使用 H1-1 的现实物理模型和噪音模型。
H2-1 仿真器 quantinuum.sim.h2-1e 56/32 量子比特 使用 H2-1 的逼真的物理模型和噪音模型。 56 量子比特模拟仅可用作稳定器模拟
H1-1 quantinuum.qpu.h1-1 20 个量子比特 Quantinuum 的 H1-1 离子阱装置。
H2-1 quantinuum.qpu.h2-1 56 个量子比特 昆蒂努姆的H2-1捕获离子装置。

Quantinuum 的 targets 对应 QIR Adaptive RI 配置文件。 有关此 target 配置文件及其限制的详细信息,请参阅 了解 target Azure Quantum 中的配置文件类型。

所有 Quantinuum targets 现在都支持集成混合线路。 有关提交集成混合作业的详细信息,请参阅 集成混合计算

若要开始使用 Azure Quantum 上的 Quantinuum 提供程序,请参阅 Q# 和 Azure Quantum 笔记本入门。

提示

只要在一分钟内将作业排入队列,在会话下提交的量子作业就 具有对 Quantinuum 硬件的独占访问权限 。 之后,使用标准队列和优先顺序逻辑接受并处理任何作业。 有关详细信息,请参阅 Azure Quantum 中的会话。

语法检查程序

建议用户首先使用语法检查程序验证其代码。 这是一个用于验证语法是否正确、编译完整性和计算机兼容性的工具。 语法检查器使用与量子计算机 target相同的编译器。 例如,H1-1 语法检查器使用与 H1-1 相同的编译器。 执行完整编译堆栈,但不执行实际的量子运算。 如果代码编译,语法检查器将返回所有 0 的状态 success 和结果。 如果代码未编译,语法检查器将返回失败状态,并返回错误以帮助用户调试其线路语法。 开发人员可以使用语法检查程序随时验证其代码,即使计算机处于脱机状态。

  • 作业类型:Simulation
  • 数据格式:honeywell.openqasm.v1honeywell.qir.v1
  • Target ID:
    • H1-1 语法检查器:quantinuum.sim.h1-1sc
    • H2-1 语法检查器: quantinuum.sim.h2-1sc
  • Target 执行配置文件: QIR Adaptive RI

语法检查器使用情况为免费提供。

System Model H1 仿真器

使用语法检查器验证其代码的语法后,用户可以利用 Quantinuum 的系统模型 H1 仿真器、包含实际系统模型 H1 硬件的详细物理模型和现实噪音模型的仿真工具。 噪音模型派生自硬件的详细特征。 系统模型 H1 模拟器使用与系统模型 H1 硬件相同的作业提交 API,从而实现从仿真到硬件的无缝转换。 为了帮助最大限度地提高工作效率并缩短开发时间,即使硬件处于脱机状态,系统模型 H1 仿真器也可用。

可以在系统模型 H1 页上的“系统模型 H1 模拟器产品数据表”中找到详细信息。

  • 作业类型:Simulation
  • 数据格式:quantinuum.openqasm.v1
  • Target ID:
    • H1-1 仿真器:quantinuum.sim.h1-1e
  • Target 执行配置文件: QIR Adaptive RI

系统模型 H1 模拟器使用情况随硬件订阅免费提供。 有关详细信息,请参阅 Azure Quantum 定价

H 系列模拟器(基于云的)

H 系列模拟器在 Azure Quantum 网站上的“代码与 Azure Quantum ”页上免费提供,可以在其中编写 Q# 代码并将作业提交到 Quantinuum H 系列模拟器,而无需 Azure 帐户。 H 系列模拟器是基于状态函数的量子模拟器,它基于系统模型 H1 量子计算机的典型性能使用逼真的物理噪音模型和通用错误参数。 执行的量子模拟与系统模型 H1 模拟器相同,但经典线路优化例程会降低以提高吞吐量。 计划将来日期支持 集成混合计算

System Model H1

由 Honeywell 提供支持的量子计算机的系统模型 H1 代由量子充电耦合设备(QCCD)组成,其中一个线性部分目前包括一台计算机 targets:H1-1。 建议用户在将作业提交到语法检查器和系统模型 H1 模拟器之前,测试其target代码与 H1-1 的兼容性。

系统模型 H1 计算机在其产品生命周期内持续升级。 用户可以访问最新、先进且功能强大的可用硬件。

可以在系统模型 H1 页上的“系统模型 H1 产品数据表”中找到详细信息。

  • 作业类型:Quantum Program
  • 数据格式:honeywell.openqasm.v1honeywell.qir.v1
  • Target ID:
    • H1-1:quantinuum.qpu.h1-1
  • Target 执行配置文件: QIR Adaptive RI

系统模型 H2 模拟器

使用 H2-1 语法检查器验证其代码的语法后,用户可以利用 Quantinuum 的系统模型 H2 仿真器,该工具包含实际系统模型 H2 硬件的详细物理模型和现实噪音模型。 可以在系统模型 H2 页上找到的系统模型 H2 模拟器产品数据表中找到有关噪音模型的详细信息。 系统模型 H2 模拟器对作业提交使用与系统模型 H2 硬件相同的 API,可实现从仿真到硬件的无缝转换。 为了帮助最大限度地提高工作效率并缩短开发时间,即使硬件处于脱机状态,H2 模拟器也可用。

  • 作业类型:Simulation
  • 数据格式:quantinuum.openqasm.v1
  • Target ID:
    • H2-1 模拟器: quantinuum.sim.h2-1e
  • Target 执行配置文件: QIR Adaptive RI

系统模型 H2 模拟器使用情况随硬件订阅免费提供。 有关详细信息,请参阅 Azure Quantum 定价

系统模型 H2

Quantinuum 系统模型 H2 代量子计算机由 Honeywell 提供支持,由量子充电耦合设备(QCCD)组成,具有两个连接的线性部分,目前有 1 台计算机 H2-1。 可以在系统模型 H2 页上的“系统模型 H2 产品数据表”中找到详细信息。 建议用户在将作业提交到计算机之前将作业提交到语法检查器和系统模型 H2 模拟器,从而测试其target代码的兼容性。

如果用户将作业提交到 H2-1 计算机,并且 H2-1 计算机不可用,该作业将保留在该计算机的队列中,直到计算机可用。

系统模型 H2 硬件在整个产品生命周期内持续升级。 用户可以访问最新、先进且功能强大的可用硬件。

  • 作业类型:Quantum Program
  • 数据格式:quantinuum.openqasm.v1
  • Target ID:
    • H2-1: quantinuum.qpu.h2-1
  • Target 执行配置文件: QIR Adaptive RI

系统模型 H1 和 H2 技术规范

可以在 Quantinuum 的产品数据表中找到系统模型 H1 和系统模型 H2 的技术详细信息,以及 Quantinuum 规范和量子卷数据存储库的链接,以及如何引用 Quantinuum 系统的使用情况。

其他功能

此处列出了通过 Quantinuum API 提供的其他功能。

功能 说明
中电路测量和重置 (MCMR) 测量线路中间的量子比特并重复使用它们
任意角度 ZZ 门 直接执行 2 量子位任意角度门旋转
仿真器干扰参数 试验 Quantinuum H 系列模拟器中使用的噪音参数
H 系列堆栈中的 TKET 优化 试验在 H 系列堆栈中启用不同级别的 TKET 优化

用户可以通过线路函数或 Azure Quantum Q# 和 Qiskit 提供程序中的直通参数利用这些附加功能。

中电路度量和重置

通过中间线路度量和重置(MCMR),用户可以测量线路中间的量子比特并重置量子比特。 这使量子误差更正功能以及能够重用线路中的量子比特。

由于捕获离子量子比特的内部级别结构,中电路测量可能会使量子比特处于非计算状态。 如果量子比特在该线路中再次使用,则所有中间线路的度量应后跟重置。 以下代码示例演示了这一点。

当在线路中间测量量子比特的子集时,这些度量中的经典信息可用于条件线路的未来元素。 这些示例还突出显示了此用法。

有关 Quantinuum 系统中 MCMR 的信息,请参阅系统模型 H1系统模型 H2 页上的 H 系列产品数据表。

在 Q# 中, MResetZ 函数可用于测量量子比特并重置它。 有关此函数的详细信息,请参阅 MResetZ Q# 文档中的信息。

%%qsharp
open Microsoft.Quantum.Intrinsic;
open Microsoft.Quantum.Measurement;

operation ContinueComputationAfterReset() : Result[] {
    // Set up circuit with 2 qubits
    use qubits = Qubit[2];

    // Perform Bell Test
    H(qubits[0]);
    CNOT(qubits[0], qubits[1]);

    // Measure Qubit 1 and reset it
    let res1 = MResetZ(qubits[1]);

    // Continue additional computation, conditioned on qubits[1] measurement outcome
    if res1 == One {
         X(qubits[0]);
    }
    CNOT(qubits[0], qubits[1]);

    // Measure qubits and return results
    let res2 = Measure([PauliZ, PauliZ], qubits);
    return [res1, res2];
}

任意角度 ZZ 门

Quantinuum 的本机门集包括任意角度 ZZ 门。 这有利于减少许多量子算法和门序列的 2 量子比特门计数。 有关 Quantinuum 系统中任意角度 ZZ 门的信息,请参阅系统模型 H1系统模型 H2 页上的 H 系列产品数据表。

在 Q# 中,任意角度 ZZ 门通过 Rzz 操作实现。

%%qsharp
open Microsoft.Quantum.Intrinsic;
open Microsoft.Quantum.Measurement;
open Microsoft.Quantum.Arrays;

operation ArbitraryAngleZZExample(theta : Double) : Result[] {
    
    // Set up circuit with 2 qubits
    use qubits = Qubit[2];

    // Create array for measurement results
    mutable resultArray = [Zero, size = 2];

    H(qubits[0]);
    Rz(theta, qubits[0]);
    Rz(theta, qubits[1]);
    X(qubits[1]);

    // Add Arbitrary Angle ZZ gate
    Rzz(theta, qubits[0], qubits[1]);  

    // Measure qubits and return results
    for i in IndexRange(qubits) {
        set resultArray w/= i <- M(qubits[i]);  
    }
    
    return resultArray;
}

苏将军(4) 纠缠门

昆蒂努姆的本机门集包括一般 SU(4) 纠缠门。 请注意,提交到硬件的量子线路将重新设置为完全纠缠的 ZZ 门和任意角度 RZZ 门。 如果用户选择进入线路,则线路仅重新定基为常规 SU(4) 纠缠门。 有关 Quantinuum 系统中的常规 SU(4) Entangler 的信息,请参阅系统模型 H1系统模型 H2 页上的 H 系列产品数据表。

在 Q# 中,常规 SU(4) 纠缠门通过 Quantinuum 的 QIR 配置文件实现。 若要使用它,请使用与 QIR 配置文件签名匹配的自定义内部函数定义函数,并在操作中 SU4Example 使用此函数。

若要确保线路使用常规 SU(4) 纠缠门运行,请传递 H 系列堆栈中的以下选项:

  • nativetq: Rxxyyzz 以防止重新访问其他本机入口。
  • noreduce: True 以避免其他编译器优化(可选)。
%%qsharp
open Microsoft.Math;

operation __quantum__qis__rxxyyzz__body(a1 : Double, a2 : Double, a3 : Double, q1 : Qubit, q2 : Qubit) : Unit {
    body intrinsic;
}

operation SU4Example() : Result[] {
    use qs = Qubit[2];
    
    // Add SU(4) gate
    __quantum__qis__rxxyyzz__body(PI(), PI(), PI(), qs[0], qs[1]);
    
    MResetEachZ(qs)
}

现在编译该操作:

MyProgram = qsharp.compile("GenerateRandomBit()")

连接到 Azure Quantum,选择 target 计算机,并为模拟器配置噪音参数:

MyWorkspace = azure.quantum.Workspace(
    resource_id = "",
    location = ""
)

MyTarget = MyWorkspace.get_targets("quantinuum.sim.h1-1e")

# Update TKET optimization level desired
option_params = {
    "nativetq": `Rxxyyzz`,
    "noreduce": True
}

提交作业时传入 noreduce 选项:

job = MyTarget.submit(MyProgram, "Submit a program with SU(4) gate", shots = 10, input_params = option_params)
job.get_results()

仿真器干扰参数

用户可以选择试验 Quantinuum 模拟器的干扰参数。 此处仅突出显示 了一些可用的干扰参数,演示如何在 Azure Quantum 提供程序中传递参数。

有关可用的完整噪音参数集的详细信息,请参阅系统模型 H1系统模型 H2 页上的 H 系列仿真器产品数据表。

首先,导入所需的包并启动基本配置文件:

import qsharp
import azure.quantum
qsharp.init(target_profile=qsharp.TargetProfile.Base)

接下来,定义函数。

%%qsharp
open Microsoft.Quantum.Measurement;
open Microsoft.Quantum.Arrays;
open Microsoft.Quantum.Convert;

operation GenerateRandomBit() : Result {
    use target = Qubit();

    // Apply an H-gate and measure.
    H(target);
    return M(target);
}

并编译操作:

MyProgram = qsharp.compile("GenerateRandomBit()")

连接到 Azure Quantum,选择 target 计算机,并为模拟器配置噪音参数:

MyWorkspace = azure.quantum.Workspace(
    resource_id = "",
    location = ""
)

MyTarget = MyWorkspace.get_targets("quantinuum.sim.h1-1e")

# Update the parameter names desired
# Note: This is not the full set of options available. 
# For the full set, see the System Model H1 Emulator Product Data Sheet
option_params = {
    "error-params": {
        "p1": 4e-5,
        "p2": 3e-3,
        "p_meas": [3e-3, 3e-3],
        "p_init": 4e-5,
        "p_crosstalk_meas": 1e-5,
        "p_crosstalk_init": 3e-5,
        "p1_emission_ratio": 6e-6,
        "p2_emission_ratio": 2e-4
    }
}

提交作业时传入仿真器干扰选项:

job = MyTarget.submit(MyProgram, "Experiment with Emulator Noise Parameters", 
                      shots = 10, 
                      input_params = option_params)
job.get_results()

若要关闭仿真器噪音模型,请将 error-model 选项设置为 False。 默认情况下,这设置为 True

option_params = {
    "error-model": False 
}

若要使用稳定器模拟器,请将 simulator 选项设置为 stabilizer。 默认情况下,这设置为 state-vector

option_params = {
    "simulator": "stabilizer" 
}

H 系列堆栈中的 TKET 编译

提交到 Quantinuum H 系列系统的线路( 集成混合提交除外)会自动通过 H 系列硬件的 TKET 编译通道运行。 这使线路能够自动针对 H 系列系统进行优化,并更高效地运行。

有关应用的特定编译传递的详细信息,请参阅 pytket-quantinuum 文档中的内容,特别是 pytket-quantinuum “编译传递” 部分。

在 H 系列软件堆栈中,应用的优化级别是使用参数设置的 tket-opt-level提交到 H 系列系统的所有线路的默认编译设置是优化级别 2。

想要试验 TKET 编译的用户将传递并查看哪些优化将应用于其线路,然后提交任何作业即可在“示例”文件夹中看到 Quantinuum_compile_without_api.ipynb 笔记本pytket-quantinuum

若要关闭堆栈中的 TKET 编译,可将其他选项 no-opt设置为 True 内部 option_params。 例如,"no-opt": True

有关详细信息 pytket,请参阅以下链接:

首先,导入所需的包并启动基本配置文件:

import qsharp
import azure.quantum
qsharp.init(target_profile=qsharp.TargetProfile.Base)

接下来,定义函数。

%%qsharp
open Microsoft.Quantum.Measurement;
open Microsoft.Quantum.Arrays;
open Microsoft.Quantum.Convert;

operation GenerateRandomBit() : Result {
    use target = Qubit();

    // Apply an H-gate and measure.
    H(target);
    return M(target);
}

并编译操作:

MyProgram = qsharp.compile("GenerateRandomBit()")

连接到 Azure Quantum,选择 target 计算机,并为模拟器配置噪音参数:

MyWorkspace = azure.quantum.Workspace(
    resource_id = "",
    location = ""
)

MyTarget = MyWorkspace.get_targets("quantinuum.sim.h1-1e")

# Update TKET optimization level desired
option_params = {
    "tket-opt-level": 1
}

提交作业时传入优化选项:

job = MyTarget.submit(MyProgram, "Experiment with TKET Compilation", shots = 10, input_params = option_params)
job.get_results()

技术规范

可以在 Quantinuum 的“系统模型 H1”和“系统模型 H2”页上的“系统模型 H1”和“系统模型 H2”页上 找到系统模型 H1H2 模拟器的技术详细信息,以及指向 Quantinuum 规范和量子卷数据存储库的链接,以及如何引用使用 Quantinuum 系统。

Target 可用性

Quantinuum H 系列量子计算机旨在持续升级,随着 Quantinuum 不断提高门保真度、减少内存错误并提升系统速度,使客户能够访问最新的硬件功能。

Quantinuum 硬件在商业和开发阶段循环。 在商业阶段,硬件可通过队列系统处理作业。 在开发阶段,硬件在应用升级时处于脱机状态。

每月都会向 Quantinuum 用户发送日历,其中包含有关商业和开发阶段的信息。 如果你尚未收到此日历,请发送电子邮件至 QCsupport@quantinuum.com

状态 target指示其当前处理作业的能力。 可能的状态 target 包括:

  • 可用:联机 target 、处理提交的作业并接受新作业。
  • 降级: target 正在接受作业,但当前未处理作业。
  • 不可用:处于 target 脱机状态,不接受新作业提交。

对于 Quantinuum 量子计算机,可用和降级对应于商业周期,而不可用对应于计算机脱机进行升级的开发周期。 targets

可以通过 Azure 门户中的工作区的“提供程序”选项卡来检索当前状态信息

定价

若要查看 Quantinuum 的计费计划,请访问 Azure Quantum 定价

限制和配额

Quantinuum 的配额根据提交到 Quantinuum 量子计算机的作业的 QPU 使用情况信用单位、 H 系统量子信用(HQC)和仿真器 HQC(eHQC)来跟踪提交到模拟器的作业。

HQC 和 eHQC 用于计算作业的运行成本,它们是根据以下公式计算的:

$$ HQC = 5 + C(N_{1q} + 10 N_{2q} + 5 N_m)/5000 $$

其中:

  • $N_{1q}$ 是线路中的单量子比特运算的数量。
  • $N_{2q}$ 是线路中的本机双量子比特运算的数量。 本机门相当于 CNOT 的几个单量子比特门。
  • $N_{m}$ 是线路中状态准备和测量 (SPAM) 操作的数量,包括初始隐式状态准备以及任何中间和最终测量及状态重置。
  • $C$ 是次数计数。

注意

HQC 的总成本包括所有条件分支或控制流的所有入口和度量值。 这可能会对集成混合作业产生更高的影响。

配额基于计划选择,可以通过提交支持票证来请求提高。 若要查看当前限制和配额,请在 Azure 门户中转到“额度和配额”边栏选项卡,然后选择工作区的“配额”选项卡。 有关详细信息,请参阅 Azure Quantum 配额

注意

如果使用的是 Azure Quantum 额度计划而不是计费计划,则配额信息将映射到分配的额度。 在这种情况下,配额会列出你已收到的额度总数。