随着量子处理器单元 (QPU) 制造商和算法开发者致力于打造大规模、商业上可行的量子超级计算机,他们越来越专注于量子纠错 (QEC) 。这是当前量子计算研究的最大机遇和最大挑战。
CUDA-Q QEC 旨在通过快速创建完全加速的端到端工作流来加速研究人员的 QEC 实验,从使用电路级噪声模型定义和模拟新代码,到配置逼真的解码器并将其与物理 QPU 一起部署。CUDA-Q QEC 旨在通过全面的 API 为此工作流中的每个组件提供用户可定义的功能。我们在 CUDA-QX 0.4 版本中构建了此工作流的关键部分。
我们将在本博客中介绍这些新功能。请参阅 GitHub 上的完整版本说明,您还可以在 GitHub 上跟踪正在进行的开发、提供反馈并做出贡献。
从存储器电路生成检测器误差模型 (DEM)
QEC 工作流的第一步是定义具有相关噪声模型的 QEC 代码。QEC 代码最终通过稳定器测量来实现,而稳定器测量本身就是噪声量子电路。要有效解码许多稳定器轮次,需要了解这些电路、将每个测量映射到稳定器(检测器)以及事先估计每个电路中可能发生的每个物理错误的概率。检测器误差模型 (DEM) 最初是作为 Stim (Quantum, 2021) 的一部分开发的,并在 Designing fault-tolerant circuits using detector error models (Arxiv, 2024) 中进行了描述,它提供了一种描述这种设置的有用方法。

从 CUDA-QX 0.4 版本开始,您可以根据指定的 QEC 电路和噪声模型自动生成 DEM。然后,DEM 可用于仿真中的电路采样,并使用标准 CUDA-Q QEC 解码器接口对生成的奇偶校验进行解码。对于内存电路,CUDA-Q QEC API 已经提供了所有必要的逻辑。
有关 CUDA-Q QEC 中 DEM 的更多信息,请参阅 C++ API 和 Python API 文档和示例。
Tensor 网络,实现精确的最大似然解码
在研究中,使用张量网络进行 QEC 解码具有以下几个优势。与其他算法和 AI 解码器相比,张量网络解码器易于理解。代码的张量网络基于其 Tanner 图,可以进行收缩以计算逻辑可观察值翻转的概率。它们保证是准确的,甚至精确的,并且不需要训练(尽管它们可以从中受益)。虽然它们通常用作研究基准,但目前还没有一个开放的、可用的 Python 实现,供研究人员用作张量网络解码的标准。
CUDA-QX 0.4 引入了张量网络解码器,并支持 Python 3.11 及更高版本。解码器提供:
- 灵活性:所需的唯一输入是奇偶校验矩阵、逻辑可观察性和噪声模型。这使得用户能够解码具有电路级噪声的不同代码。
- 准确性:张量网络的收缩是精确的。因此,解码器实现了理论上的最佳解码精度(见下图 2)。
- 性能:通过利用 GPU 加速的 cuQuantum 库,用户可以将收缩和路径优化的性能提升到超出以往的水平。
在下面的图 2 中,我们绘制了 CUDA-Q QEC 张量网络解码器在论文《通过缩放表面代码逻辑量子位来抑制量子错误》(Nature,2023)的开源数据集上使用精确收缩的逻辑错误率 (LER) 。所有参考线(下图中的 Ref)均引用了《量子处理器的高精度错误解码》(Nature,2024)中的数据。我们通过开源的 GPU 加速实现,展示了与 Google 张量网络解码器相同的 LER。
有关 CUDA-Q QEC 中张量网络解码的更多信息,请参阅 Python API 文档和示例。

BP+OSD 解码器的改进之处
CUDA-QX 0.4 对其 GPU 加速的信念传播 +有序统计解码 (BP+OSD) 实现进行了多项改进,从而提高了灵活性和监控功能:
自适应收敛监控:监控收敛过程,并根据收敛速度调整学习率。
Iter_per_check
引入了可配置的 BP 收敛检查间隔。该参数的默认值为 1 次迭代,可以增加到用户设定的最大迭代限制,以减少在不需要频繁收敛检查的情况下产生的开销。
消息截断,以提高数值稳定性
clip_value
通过实现消息剪裁来解决 BP 中潜在的数值不稳定性问题。此功能允许用户设置非负阈值,以防止消息值增长过大,从而导致溢出或精度问题。设置为 0.0 (默认值) 时,裁剪功能将被禁用,从而保持向后兼容性。请注意,过度剪裁可能会影响 BP 的性能。
BP 算法选择
bp_method
为用户提供了两种 BP 算法供其选择。sum-product
提供了一种传统方法,在大多数场景中都能提供强大的性能。min-sum
是一种计算效率更高的替代方案,在某些情况下可以更快地收敛。
动态缩放,用于最小和优化
scale_factor
通过自适应缩放功能增强了 min-sum
算法。用户可以指定一个固定缩放因子(默认为 1.0),也可以通过将其设置为 0.0 来启用动态计算,在这种情况下,该因子会根据迭代次数自动确定。
结果监控
opt_results
和 bp_llr_history
引入了日志记录功能,使研究人员和开发者能够在整个 BP 解码过程中跟踪对数似然比 (LLR) 的演变。用户可以将历史深度从 0 配置到最大迭代次数。
有关 CUDA-Q QEC BP+OSD 解码器的完整信息,请参阅最新的 Python API 或 C++ API 文档和完整示例。
用于 AI 驱动的量子电路设计的生成式量子特征值求解器 (GQE)
CUDA-QX 0.4 在 Solvers 库中添加了生成式量子特征值求解器 (GQE) 的开箱即用实现。该算法是正在进行的研究的主题,特别是在损失函数方面。当前示例提供了一个适用于小规模仿真的成本函数。
GQE 是一种新型混合算法,用于使用生成式 AI 模型查找量子哈密尔顿算符的本征态(特别是基态)。与量子程序具有固定参数化的变分量子特征求解器 (VQE) 相比,GQE 将所有程序设计转移到经典 AI 模型中。这有可能缓解传统 VQE 方法的收敛问题,例如高原。
我们的实现使用了生成式量子特征求解器 (GQE) 及其用于基态搜索的应用(Arxiv,2024)之后的 Transformer 模型,并在之前的 NVIDIA 技术博客《使用 GPT 推进量子算法设计》中进行了进一步的详细介绍。
GQE 算法执行以下步骤:
- 初始化或加载预训练生成模型。
- 生成候选量子电路。
- 评估目标哈密尔顿算符的电路性能。
- 根据结果更新生成模型。
- 重复生成和优化,直到收敛。
有关 GQE 的 Solvers 实现的完整详细信息,请参阅 Python API 文档和示例。
结论
CUDA-QX 0.4 版本在求解器和 QEC 库中包含各种新功能,包括新的生成式量子特征值求解器 (GQE) 实现、新的张量网络解码器,以及用于从噪声 CUDA-Q 内存电路自动生成检测器错误模型的新 API。