比较 Amazon Braket 模拟器 - Amazon Braket

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

比较 Amazon Braket 模拟器

本节通过描述一些概念、限制和使用案例,帮助您选择最适合您的量子任务的 Amazon Braket 模拟器。

在本地模拟器和按需模拟器 (SV1, TN1, DM1) 之间进行选择

本地模拟器的性能取决于托管本地环境的硬件,如用于运行模拟器的 Braket 笔记本实例。按需模拟器在 AWS 云端运行,旨在扩展典型的本地环境。按需模拟器针对较大的电路进行了优化,但是每个量子任务或批量子任务会增加一些延迟开销。如果涉及许多量子任务,这可能意味着需要权衡取舍。鉴于这些一般性能特征,以下指导可以帮助您选择如何运行模拟,包括带有噪声的模拟。

对于模拟

  • 当使用量少于 18 个 qubits 时,请使用本地模拟器。

  • 当使用量为 18-24 个 qubits 时,请根据工作负载选择模拟器。

  • 当使用量超过 24 个 qubits 时,请使用按需模拟器。

对于噪声模拟

  • 当使用量少于 18 个 qubits 时,请使用本地模拟器。

  • 当使用量为 9-12 个 qubits 时,请根据工作负载选择模拟器。

  • 当使用数超过 12 个 qubits 时,请使用 DM1。

什么是状态向量模拟器?

SV1 是一个通用状态向量模拟器。它存储着量子态的全波函数,并按顺序将门运算应用于该状态。它存储了所有可能性,即使是极不可能的也是如此。SV1 模拟器执行量子任务的运行时随着电路中门的数量而线性增加。

什么是密度矩阵模拟器?

DM1 用噪声模拟量子电路。它存储着系统的全密度矩阵,并按顺序应用电路的门和噪声运算。最终的密度矩阵包含有关电路运行后量子态的完整信息。运行时通常随操作数线性扩展,随 qubits 数呈指数级扩展。

什么是张量网络模拟器?

TN1 将量子电路编码成结构化图。

  • 图的节点由量子门或 qubits 组成。

  • 图形的边缘表示门之间的连接。

由于这种结构,TN1 可以为相对较大且复杂的量子电路找到模拟解。

TN1 需要两个阶段

通常,TN1 采用两阶段方法来模拟量子计算。

  • 排练阶段:在这个阶段,TN1 想出一种高效遍历图表的方法,包括访问每个节点,这样您就可以获得您想要的测量结果。作为客户,您看不到此阶段,因为 TN1 同时为您执行两个阶段。它完成了第一阶段,并根据实际限制决定是否单独执行第二阶段。模拟开始后,您对该决定没有任何意见。

  • 收缩阶段:此阶段类似于经典计算机中计算的执行阶段。该阶段包括一系列矩阵乘法。这些乘法的顺序对计算难度有很大的影响。因此,首先要完成排练阶段,以便在图中找到最有效的计算路径。在排练阶段找到收缩路径后,TN1 将电路的门收缩在一起以生成模拟结果。

TN1 图表类似于地图

打个比方,您可以将底层 TN1 图表与城市街道进行比较。在采用规划网格的城市中,使用地图可以很容易找到通往目的地的路线。在一个无规划街道、街道名称重复等的城市中,通过查看地图可能很难找到通往目的地的路线。

如果 TN1 没有进行排练阶段,那就像在城市的街道上漫步寻找目的地,而不是先看地图。就步行时间而言,花更多的时间看地图确实可以获得回报。同样,排练阶段也提供了有价值的信息。

您可能会说,TN1 对它所穿越的底层电路的结构有一定的“意识”。它在排练阶段获得了这种意识。

问题类型最适合每种类型的模拟器

SV1 非常适合于主要依赖于具有一定数量的 qubits 和门的任何类别的问题。通常,所需时间会随着门数的增加而呈线性增长,而不取决于 shots 的数量。SV1 通常比 28 个 qubits 以下的电路 TN1 快。

SV1 对于较大的 qubit 数字,可能会变慢,因为它实际上模拟了所有可能性,即使是极不可能的情况下也是如此。它无法确定可能出现哪些结果。因此,要进行 30-qubit 评估,SV1 必须计算 2^30 个配置。受内存和存储限制,Amazon Braket SV1 模拟器的限值为 34 个 qubits,是一个实际限制。您可以这样想:每当您向 qubit 中添加一个 SV1 时,问题就会变得困难一倍。

对于许多类问题,由于 TN1 利用图结构,与 SV1 相比,TN1 可以在现实时间内评估更大的电路。它本质上是从一开始就跟踪解决方案的演变,并且仅保留有助于高效遍历的配置。换句话说,它保存配置以创建矩阵乘法的顺序,从而简化计算过程。

qubits 和门的数量对 TN1 来说很重要,但图表结构更重要。例如,TN1 非常擅长评估门为短距离的电路(图表)(也就是说,每个 qubit 门仅通过门连接到其最近的邻居 qubits),以及连接(或门)具有相似范围的电路(图表)。TN1 的典型范围是让每个 qubit 仅与 5 个 qubits 之外的另外 qubits 交谈。如果结构的大部分可以分解为更简单的关系,如这些关系,这些关系可以用更多更小更统一的矩阵表示,则 TN1 可以有效地执行评估。

TN1 的限制

TN1 可能比 SV1 慢一些,取决于图表的结构复杂度。对于某些图表,由于以下两个原因之一,TN1 会在排练阶段结束后终止模拟并显示 FAILED 的状态:

  • 无法找到路径:如果图形太复杂,则很难找到一条好的遍历路径,模拟器就会放弃计算。TN1 无法进行收缩。您可能会看到类似于以下内容的错误消息:No viable contraction path found.

  • 收缩阶段太困难:在某些图表中,TN1 可以找到遍历路径,但是评估起来非常漫长且非常耗时。在这种情况下,收缩非常昂贵,以至于成本高到令人望而却步,而是 TN1 在排练阶段之后退出。您可能会看到类似于以下内容的错误消息:Predicted runtime based on best contraction path found exceeds TN1 limit.

注意

即使没有进行收缩且您会看到 FAILED 状态,您也需要支付排练阶段的 TN1 费用。

预测的运行时也取决于 shot 计数。在最坏的情况下,TN1 收缩时间线性地取决于 shot 的计数。该电路可以用更少的 shots 进行收缩。例如,您可以提交一个包含 100 个 shots 的量子任务,该任务 TN1 决定不可收缩,但是如果您只有 10 的量子任务重新提交,则会继续收缩。在这种情况下,要获得 100 个样本,您可以为同一电路提交 10 个 shots 的 10 个量子任务,最后合并结果。

作为最佳实践,我们建议您始终使用几个 shots(如 10)来测试您的电路或电路等级,以了解您的电路对 TN1 而言有多难,然后再继续使用更大的 shots 数量。

注意

形成收缩阶段的一系列乘法从小的 NxN 矩阵开始。例如,2-qubit 门需要一个 4x4 矩阵。在被判定为太困难的收缩期间所需的中间矩阵是巨大的。这样的计算需要几天才能完成。这就是 Amazon Braket 不尝试极其复杂的收缩的原因。

并发

所有 Braket 模拟器都能使您同时运行多个回路。并发限制因模拟器和区域而异。有关并发限制的更多信息,请参阅配额页面