全文 - Platform Architecture for Tight Coupling of High-Performance Computing with Quantum Processors

在这里插入图片描述

高性能计算与量子处理器紧密集成的平台架构

原文链接: arXiv:2510.25213v2 [quant-ph] 2025年11月3日


摘要

我们提出了一种名为 NVQLink 的架构,用于将高性能计算(HPC)资源连接到量子处理单元(QPU)的控制系统,以加速QPU运行所必需的工作负载。我们的目标是支持QPU的每一种物理模态和每一种类型的QPU系统控制器(QSC)。HPC资源针对实时(有延迟约束的)处理任务进行优化,这些任务的延迟容差为数十微秒。连接HPC和QSC的网络基于商用以太网实现,QPU和QSC构建者可以相对容易地采用,我们报告的往返延迟测量结果为 3.96 微秒(最大值),并有望进一步优化。我们描述了CUDA-Q编程模型和运行时架构的扩展,以支持HPC与QSC之间的实时回调和数据编排。通过这种方式,NVQLink将异构的、基于内核的编程扩展到QSC,允许程序员在同一个 C++ 程序中对QSC中的CPU、GPU和FPGA子系统进行寻址,避免了使用限制性能的HTTP接口。我们为QSC构建者提供了一种集成模式,通过使用多级中间表示方言和渐进式降级来封装QSC代码。

关键词: 量子计算,高性能计算,系统架构


1. 引言

量子计算是我们这个时代最有前途的技术之一,其发明是科学和工程领域的巨大挑战。全球范围内正在进行为期数十年的研究努力来迎接这一挑战。虽然这一努力取得了许多令人兴奋的进展,但如今的量子处理单元(QPU)仍属于一个从事深入且快速发展的研究的行业中尚不成熟的对象。在我们实现一个稳健且引人注目的有用量子计算实例之前,必须解决许多不确定性。

1.1 HPC集成的两种模式

人们普遍预期(尽管这不是本文的立场),释放量子计算潜力需要将QPU集成到超级计算机的传统高性能计算(HPC)环境中(Mohseni等人,2024;Burgholzer等人,2025;Mansfield等人;Buchs等人,2025)。在这种模式下,QPU充当超级计算机中的一个专用节点。QPU增强了超级计算机的能力,我们可以将这台新机器视为量子加速超级计算机。这样的机器中可能有多个量子节点,以便实现线路编织或类似的协议来在节点之间分配工作。QPU还可以通过量子网络相互连接以分发纠缠,在这种情况下,它们的行为可能类似于一个更大的量子计算机,拥有自己的异构量子资源(Shapourian等人,2025)。

超级计算机预计将运行其自身计算密集型的应用程序部分,它可以自由地将QPU视为黑箱。如果QPU以量子纠错(QEC)、量子误差缓解(QEM)和量子系综采样的某种组合运行,那么超级计算机与QPU之间的数据吞吐量和延迟要求相对于超级计算机中典型的节点到节点互连可能非常适中。

我们预计需要第二种类型的HPC集成,即HPC资源必须与QPU的控制系统紧密耦合,以执行QPU自身的在线工作负载。在这种场景下(也是本文的主题),HPC资源的规模可能比超级计算机小,并针对QPU运行关键路径中的实时计算进行优化,在功能上充当QPU的一部分。这些工作负载中最著名的是QEC解码,在几种QPU模态中,它需要尽可能低的延迟,同时维持约 1 Tb/s 的网络吞吐量和高达约 1 PFLOP/s 的计算量(Camps等人,2024)。

我们预计QPU还需要持续重新校准,以使量子操作保真度保持在容差范围内,且随着容差缩小、需要抑制更长程误差(Klimov等人,2024),以及机器学习越来越多地被用于提高自动化和准确性,校准过程的计算需求可能会上升。这些任务需要专用的硬件和编程,而这些在超级计算环境中并不存在,它们正当地属于QPU运行的条件。

1.2 QEC的需求

紧密耦合对QEC解码至关重要。考虑一个运行用稳定子码编码的程序的QPU。该编码的稳定子测量产生持续的综合征数据流,由QSC以QEC周期速率发射,在今天规划的系统中最快可达约 1 MHz(Yoder等人,2025;Google Quantum AI and Collaborators等人,2024;Pino等人,2021;Bluvstein等人,2024;Radnaev等人,2025;Veldhorst等人,2017;Boter,2022;Bartolucci等人,2023)。

每次综合征测量每个辅助量子比特每QEC周期为1比特,如果使用连续变化的(“软”)读出数据作为输入,这可能增加到每个辅助量子比特16比特(Pattison等人,2021;Hanisch等人,2024;Bausch等人,2024;Akahoshi等人,2025)。

QEC解码器必须处理所有综合征数据,以维护QPU当前状态的记录,并在程序中的特定点访问此记录的信息以进行前馈操作。一个有用且常见的范式,用于确定此类程序在拓扑码上的编译结构,可以在基于Pauli的计算(Bravyi等人,2016)中找到,其使用格点手术(Horsman等人,2012)并编译成一系列并发Pauli测量序列,每层都有非Clifford门(Litinski,2019)。

解码器性能有两个时间要求:

(1) 解码器吞吐量,以每单位时间解码的综合征周期数来衡量,必须跟上持续的综合征数据流。在每个前馈事件处,解码器的记录将相对于稳定子轮次延迟一定量的实时时间和一定数量的稳定子周期,这些构成了解码器的积压。如果综合征处理在某一前馈期间低于流速率,积压将按比例增长,导致短缺的指数增长和QPU的最终停滞(Terhal,2015)。

(2) 反应时间,以从QSC上最后一次综合征测量采集到应用源自该点之前综合征数据的前馈动作之间经过的时间来衡量,直接影响QPU时钟速度和保真度。我们强调,反应时间中的额外延迟会影响量子程序执行的正确性,即使在容错量子处理器中也是如此。

考虑一个通过有效使用QEC将其每条指令错误概率 ε 降低到远低于其物理操作错误率许多数量级的容错QPU。此QPU上的程序将以概率 P=(1-ε)^N 没有任何逻辑错误,这意味着在程序规模 N_limit ~ 1/ε 处成功概率呈指数截止。同样的论点适用于如果我们只计算执行非Clifford门并需要QEC协议中的前馈事件的指令。在等待前馈操作的同时,目标逻辑量子比特可以运行综合征提取周期以保持相干,QEC中的一个关键指标是每周期的逻辑错误率。这意味着反应时间产生的逻辑错误可以用每周期的逻辑错误率以及空闲花费的周期数来估计。在这些事件中(也用于估计程序运行时间,例如在Gidney (2025)中),指令错误概率随反应时间线性增加。

解码器吞吐量和反应时间类似于包含单个核心中多个执行单元的超标量处理器中所见的情况(Smith和Sohi,1995)。由于并行资源(执行单元),每秒执行的指令总数不仅仅是单条指令端到端执行时间的倒数。在这个类比中,解码器吞吐量(每秒解码的综合征提取周期)类似于每秒退役的指令数,反应时间类似于端到端指令执行时间。

目前还没有在规模上实验演示的QEC解码解决方案,即在有效运行约100个或更多逻辑量子比特的容错量子程序中,该程序包含约100万条逻辑指令。QEC代码以及基于算法的(Panteleev和Kalachev,2021;Wu和Zhong,2023a;Higgott和Gidney,2025;Chan,2024;Hillmann等人,2024;Ziad等人,2024;Gong等人,2024;Beni等人,2025;Müller等人,2025;Wang等人,2025;Wolanski和Barber,2025;Zhang等人,2025;Turner等人,2025;Barber等人,2025)和基于AI的(Bausch等人,2024;Blue等人,2025;Lange,2025;Mi和Mueller,2025;Hu等人,2025;Cao等人,2023;Liu等人,2025;Varbanov等人,2025;Gicev等人,2025)解码器方面都有非常活跃的 ongoing 研究。

当今应用QEC的最先进水平包括部分功能的早期演示:单量子比特态保持,包括低于阈值(Google Quantum AI and Collaborators等人,2024)和收支平衡(Putterman等人,2025;Sivak等人,2023;Brock等人,2025)的演示;在几个逻辑量子比特上的量子逻辑专用演示(Ryan-Anderson等人,2021;da Silva等人,2024;Dasu等人,2025;Yamamoto等人,2025;Bluvstein等人,2024;Bedalov等人,2024;Rines等人,2025;Reichardt等人,2025;Muniz等人,2025);以及在FPGA和CPU上进行解码的演示,在小规模编码上具有足够的吞吐量(Caune等人,2024;Google Quantum AI and Collaborators等人,2024;Maurer等人,2025)。

有许多关于量子系统控制器需求分析的文献(Battistel等人,2023;Kurman等人,2024a, b),以及关于专用QEC解码硬件(GPU、FPGA、ASIC)权衡空间的一个观点可参见文献(Riverlane,2024)。

完全基于固件(FPGA)或硬件(ASIC)的架构,其中解码图在硬件中物理实例化,考虑为分布式计算构建具有超低延迟的专用网络(Yoder等人,2025;Liyanage等人,2024)。

为了实现规模化的容错量子计算,QEC解码的吞吐量要求将需要使用大量并行处理。例如,使用格点手术的容错算法与拓扑码需要对非常大的有效码距进行操作。除了为所有逻辑量子比特处理多轮综合征测量外,每轮还需要并行处理大的编码块,跨越空间和时间(Skoric等人,2023;Tan等人,2023)。通过将格点划分为空间维度 O(d)(对于距离 d 的编码)和时间维度 O(d_m)(其中 d_m 是综合征测量轮数)的块,所有这些块都可以并行解码。在第6.2小节中,我们更详细地讨论了此类要求,以实现可扩展的实时解码算法。我们还讨论了GPU在使用基于AI的预解码器进行块级解码中可以发挥的重要作用(Chamberland等人,2023;Gicev等人,2025)。

与拓扑码相比,量子低密度奇偶校验(qLDPC)码(如二元 bicycle 码(Bravyi等人,2024))提供了更低的量子比特开销。拓扑码的模块化解码结构和并行化策略不能直接移植到qLDPC解码,但人们正在积极研究新的解码策略(Yoder等人,2025;Müller等人,2025;Maurer等人,2025)。

有许多实际考虑因素支持一种异构架构,该架构允许加速计算硬件和编程模型支持快速迭代:

(1) 在容错量子程序的执行中,需要动态引用当前逻辑操作的相关检测器错误矩阵(DEM)(Derks等人,2024)。逻辑门需要对其Tanner图进行动态重配置,每个应用的逻辑门(即应用于QPU中特定逻辑量子比特的逻辑门)需要其自己的DEM值进行解码。因此,处理DEM结构和值的动态变化,或DEM模块化的策略,可能是必要的。

(2) QPU受到物理漂移的影响,使得通知DEM的噪声模型随时间变化。必须连续维护解码器配置以保持高逻辑保真度。

(3) 在高距离编码中,通常不可能将读出硬件与所需DEM集合中的每个DEM对齐。因此需要网络和综合征聚合机制。

(4) QEC空间的研究速度如此之快,许多研究人员和构建者可能会创新QEC代码和解码器并希望共享解决方案。一个支持这种共享并缩短新实现上市时间的开放平台将是有价值的。

解码在规模上的总计算量可以从文献(Camps等人,2024)的图10估计,该图发现,如果100量子比特QPU有Fusion Blossom(Wu和Zhong,2023b;Wu,2023)以 200 TFLOP/s 的计算强度运行,它可以运行深度为 10^6 的表面码程序。Fusion Blossom在 1 PFLOP/s 下支持1000量子比特QPU上的深度为 10^9 的程序。

如果我们假设使用AI解码器,我们将估计每个逻辑量子比特每次推理每个模型参数需要 2 FLOP。假设我们使用2500万参数模型(AlphaQubit模型(Bausch等人,2024)大小的5倍)并以 1 MHz QEC周期解码,我们需要每个逻辑量子比特 50 TFLOP/s 来运行解码器。我们可以为此添加一个10倍的因子,以确保我们有动态编译和QPU控制参数及解码器噪声模型实时更新的余量,并得出结论:50 PFLOP/s 为100个逻辑量子比特规模提供了必要计算强度的保守估计。

1.3 挑战

将紧密耦合的HPC引入QPU环境带来了一系列挑战,这些挑战已成为量子-HPC社区内的优先事项,该社区已开始寻找随量子计算系统能力增长而扩展的解决方案(ope)。

大多数QPU系统控制器(QSC)使用现场可编程门阵列(FPGA)或射频系统级芯片(RFSoC)设备实现,这些设备运行固件定义的脉冲处理器单元(PPU)(Xu等人,2021, 2023)。(请向前查看图1,了解标识此处讨论组件的系统图。)

量子计算行业中有数十种PPU实现在使用,其中大多数是闭源和专有的。每个PPU都有自己的特性、指令集和编译器工具链,从以门级或脉冲级量子指令语言(如CUDA-Q、QASM、Cirq、Quil等)表达的程序降低,以及引入对脉冲调度、波形定义和现代软件定义无线电技术中常见的其他数字信号处理特性的控制的更低级语言。

整个QSC系统将PPU阵列与所有PPU时钟(典型 250 MHz )的最先进同步、微波相位相干性以及通常PPU之间约 300 纳秒的超低延迟网络集成在一起。QSC的许多特性和要求因QPU模态以及QSC供应商提供的各种实现而异。

举几个例子:

  • 某些模态通过动态在空间中信道传输捕获的离子或原子来实现QPU内的全对全量子比特连接,以与邻居相互作用或进入执行特定控制和读出功能的捕获区域。其他模态具有固定的量子比特拓扑,没有动态路由约束影响PPU调度。

  • QPU模态在控制读出的光载波存在与否方面有所不同。

  • QSC具有不同水平的动态性和可编程性。某些QSC仅支持静态序列或非参数化任意波形,而其他QSC支持完全动态的脉冲管道和实时可修补的参数化波形。

  • QSC在编译器工具链的复杂程度上有所不同。混合门级和脉冲级编程范式,以及融合运行时关注点(如QEC编码)的能力,仍处于初级阶段且未标准化。

  • QSC具有可变的网络拓扑和QSC内脉冲调度功能的复杂程度。某些QSC可能支持全局脉冲调度器,维护每个PPU的每个时钟周期的分辨率,而其他QSC则不支持。

  • 物理量子比特状态读出机制在不同模态之间差异很大,这涉及关于物理量子比特数量非常不同的硬件扩展特性,以及通常编码在PPU固件中的非常不同的数据简化程序。

  • 某些QSC将控制和读出电子设备置于物理QPU环境中,包括具有极端功率限制的深低温环境(Liu,2023;Underwood等人,2023;Bartee等人,2025)。

1.4 目标与大纲

总而言之,我们的观点是,在QPU上定义的程序是超级计算机上定义的程序的一部分。量子程序部分必须向下编译,通过量子指令最终到调度在QSC中每个PPU上的脉冲,同时需要对PPU架构、物理QPU模态和实例以及物理QPU的当前校准状态敏感。然而,在PPU程序运行中,我们必须将数据发送到紧密耦合的资源进行QEC解码。我们希望能够用Python、C++和CUDA等通用编程语言编写从父应用程序和解码函数体的所有内容。我们希望生成的程序在分布式实时系统上编排,而不依赖面向Web的网络技术(如HTTP传输)。我们希望做到这一点,同时允许每个QSC构建者以最小的努力和对其工具链的更改实现这种集成。

通过定义NVQLink架构,我们旨在通过以下方式推进量子处理器向超级计算环境的集成:

(1) 在QSC和HPC资源之间引入工业级实时(确定性延迟)接口,用于在线量子纠错和所有其他计算密集型的QPU在线工作负载。

(2) 提供编程机制和逻辑QPU内许多异构设备之间的高效数据编排。

(3) 定义一个从当前一代QPU设备扩展到未来容错系统的平台。

(4) 通过可替代的PPU仿真(VPPU)实现离线程序开发和验证,以减少对物理硬件的依赖。

(5) 在系统架构中,给那些不需要或不期望创新的部分,提供标准化步骤。

(6) 以上述方式使所有QPU和QSC构建者能够利用该平台推进他们自己的成功。

在第2节中,我们描述逻辑QPU的硬件架构。在第3节中,我们介绍CUDA-Q针对实时设备回调和异构内存的扩展。在第4节中,我们提出了一种新的基于特性的运行时、编译内核格式、执行器和逻辑QPU驱动程序API。在第5节中,我们建议初步需求,以努力公开工作并收集感兴趣读者的反馈。在第6节中,我们更详细地描述我们预计将从紧密耦合中受益的QPU级工作负载。在第7节中,我们讨论开发和仿真工具(PPU仿真、物理QPU仿真和QEC仿真)的使用。


2. 系统架构

NVQLink系统包括HPC系统与QPU控制系统紧密耦合的实时执行环境。系统在图1中表示。

2.1 系统组件

NVQLink 架构定义了一组硬件组件及其关系,这些组件构成了紧耦合 HPC 与量子编程的机器模型。此机器模型对应于可在 CUDA-Q 编程模型中定义的系统的一个子集,详见第 3 节。

⊲ 物理 QPU(PQPU) 量子系统,其物理状态由计算希尔伯特空间中的矢量描述。这是系统中的量子对象,也是实现量子计算的关键资源。我们独立于其控制和读出电子设备来指代它。例子包括超导电路、自旋量子比特、捕获原子和离子、飞行光子阵列等。

⊲ 逻辑 QPU(LQPU) 能够进行量子计算的系统,必然包含控制和读出电子设备。

⊲ 量子系统控制器(QSC) 在物理 QPU 上实现量子相干控制和读出的系统。这通常包含一组 PPU, comprising 所有通往物理 QPU 以及来自物理 QPU 的模拟 I/O 通道。我们抽象掉了关于将 PPU 分组到较小机箱中还是将其组装为单层阵列的选择。

⊲ 脉冲处理单元(PPU) 控制和读出电子设备单元。包含一个或多个脉冲处理器的模拟控制单元,通常在一个或多个 FPGA 上实现。PPU 对物理量子比特执行控制和读出。现代 PPU 通常使用软件定义无线电(SDR)技术,依赖数控振荡器(NCO)产生微波载波频率。图 1 标识了 PPU 的四个组件:

  1. 网络接口(NI)
  2. 脉冲处理器(通常在 FPGA 或 RFSoC 固件中实现)
  3. 模数/数模转换器(A/D)
  4. 模拟前端,其在微波频率下具有有效的电气隔离,并以 SMA 等格式提供模拟 I/O 端口。

此架构试图对 PPU 的所有行为和实现细节保持中立,除了其与实时主机通信的方式。

⊲ 虚拟脉冲处理单元(VPPU) 可替代 NVQLink 系统中实际 PPU 的 PPU 仿真器,用于离线开发和系统仿真。VPPU 实现必须完整实现目标 PPU 的指令集并保持编译器兼容性。

⊲ 实时主机(RTH) 用于实时域(见下文)工作负载的高性能计算资源。这将是一个可由 CUDA-Q 编程的 GPU 节点或多节点集群,其 CPU 在 CUDA 编程模型 [80] 的意义上是一个主机。

⊲ 实时互连 以某种方式将实时主机连接到 QSC、也可能直接连接到每个 PPU 的网络交换机。NVQLink 的网络架构在第 2.3 小节中进一步描述,针对静态网络的低延迟性能进行了优化,并支持轻松集成到 QSC 的专有固件中。

⊲ 接入节点 为远程客户端提供服务、与本地和在线存储通信、处理请求等的传统(非实时)计算节点。在 QPU 构建者使用的典型独立配置中,它通常是运行通用 Linux 发行版的服务器,与 QSC 位于同一本地网络中。在超级计算集成中,它可能是超级计算机内的一个节点。我们对接入节点唯一的假设是,它应以足以运行应用程序的性能连接到实时主机。

在 NVQLink 模型中将实时主机纳入逻辑 QPU 的主要假设是,有用的量子计算将需要紧密耦合。我们设想一个未来,其中逻辑 QPU 是术语"QPU"的事实上的含义,而在 CUDA-Q 中,这是内核属性 __qpu__ 的含义。逻辑 QPU 是一种异构设备,包含其他处理器,其中一些也可以使用 CUDA 编程。逻辑 QPU 本身可使用 CUDA-Q 编程。

虽然实现这一愿景的工作正在进行中,但我们预计接入节点将继续通过现有集成中已有的任何方式连接到 QSC。此配置必须留给维护这些现有集成的 QPU 和 QSC 构建者。实时主机可以逐步引入,以分时模式将其功能上线并与混合使用并存。

QSC 受其自身一组要求的约束,这些要求因物理 QPU 模态、架构和版本而异。本架构有意对 QSC 的要求保持沉默,以便它能最大限度地响应物理 QPU 的需求而变化。

在这里插入图片描述

图1. 逻辑QPU的机器模型。

NVQLink架构包括实时主机(RTH)和QPU控制系统(QSC),由低延迟、可扩展的实时互连连接,形成一个能够处理容错量子计算机运行时工作负载的网络。RTH包含传统HPC计算资源(CPU和GPU以及可能的其他专用硬件),而QSC包含控制QPU的脉冲处理单元。这些计算资源还包括应用程序需要考虑和编排的关键内存和存储资源,包括GPU内存、RTH系统主内存等。该系统的编程模型旨在将所有CPU、GPU和QSC内的资源(包括CPU、PPU和其他专用FPGA资源)识别为可寻址的设备,并在它们之间启用实时回调函数(fn)以支持分布式处理和数据编排。为支持这一点,提供了一个小型且可选的网络接口(NI),使QSC构建者能够单方面和私密地采用。这种结构在物理QPU、QSC和运行时协议(如QEC解码和在线校准)的价值链中提供了灵活性:这些组件中的每一个都由第三方提供,他们可以构建或集成部分或全部系统,并可以共享每个组件的实现或酌情保持专有。此架构的目的是在支持这种灵活性的同时,使每个实现都能以最小的成本和上市时间达到最先进的HPC性能。

2.2 时间域

NVQLink架构定义了多个时间域,每个时间域对应于量子计算工作负载的不同方面。时间域之间的清晰分离对于理解系统的延迟要求和优化机会至关重要。

PTD ↔ DTD ↔ RTD ↔ ATD 的关系

  • PTD(程序时间域) 是量子操作实际执行的地方,具有纳秒级的定时精度。PPU在此域中运行,生成控制脉冲并采集测量结果。

  • DTD(开发时间域) 是程序编译和优化的域。编译器将高级量子程序(如CUDA-Q内核)降级为PPU特定的指令集架构(ISA)代码。此域还包括QEC编码和电路优化。

  • RTD(实时域) 是经典计算必须满足严格延迟约束的域。这包括QEC解码、实时校准和前馈控制。RTD中的操作必须在量子比特相干时间内完成。

  • ATD(应用时间域) 是高级应用程序运行的域。这包括量子-经典混合算法(如VQE或QAOA)的迭代优化循环,以及结果的后处理。


DTD 和 RTD 在实时约束下运行,这是由于它们必须向 QSC 生成并返回结果的延迟要求所决定的。为了确保系统的正确运行,这些约束可以通过一组输入来指定,这些输入定义了 DTD 和 RTD 必须满足的实时需求。

这些约束将使 DTD 和 RTD 能够判定所请求操作的可满足性,并确保系统调度能够满足这些需求。与其他实时系统一样,我们预计这些需求将以两种形式表达:要么是为每个请求操作指定的独立截止时间,要么是周期性要求——后者约束一组重复操作的处理时间。这些输入将允许 DTD 和 RTD 在内部管理工作负载调度,并提供反馈以指示实时需求的违反情况。

此外,这将使 DTD 和 RTD 能够独立调整结果质量,从而在准确性与时效性之间进行潜在权衡。例如,如果某个算子判定完全计算该操作将导致错过截止时间,它可以提前返回中间结果或次优结果。


注始


术语对照

英文中文
DTD (Distributed Task Dispatcher)分布式任务调度器
RTD (Real-Time Decoder)实时解码器
QSC (Quantum System Controller/Quantum System Builder)量子系统控制器 / 量子系统构建者
satisfiability可满足性(此处指判断能否在给定约束内完成)
periodicity requirement周期性要求
workload schedule工作负载调度
intermediate/sub-optimal results中间结果 / 次优结果
tradeoff between accuracy and timeliness准确性与时效性之间的权衡

核心要点

这段文字描述的是实时分布式系统中典型的 QoS(服务质量)机制

  1. 硬实时约束:DTD/RTD 必须在截止期限前返回结果,否则 QSC 无法正确执行下一步量子操作
  2. 可声明的需求:系统允许上层通过参数指定"每个操作的截止时间"或"周期性吞吐量要求"
  3. 内部调度自治:一旦获得约束参数,DTD/RTD 自行决定如何调度资源,无需外部干预
  4. 违约反馈与降级:当无法同时满足精度和时效时,系统选择提前返回次优解而非超时——这是实时系统的经典设计(类似视频编码中的"丢帧保流畅"策略)

这与前文中 Fusion Blossom 的算力估算直接相关:如果解码器无法在微秒级完成 MWPM,它可以选择返回一个近似匹配结果,确保 QSC 按时获得反馈,维持量子纠错循环的连续性。

延迟约束

时间域典型延迟范围关键约束
PTD纳秒 - 微秒PPU时钟周期,脉冲定时
DTD毫秒 - 秒编译时间,优化质量
RTD微秒 - 数十微秒量子比特相干时间,解码延迟
ATD秒 - 小时应用程序总运行时间

注毕


2.3 网络架构

NVQLink架构中的实时互连(RTI)实现对具有自身需求的第三方开放。因此,我们不规定最大可接受延迟、最小吞吐量甚至拓扑等要求。相反,我们提供对一个高性能和可扩展的参考实现的开放访问,该实现旨在满足以下标准:

(1) 针对静态点对点网络优化的标准协议。

(2) 一个免费可用的FPGA IP核,实现该协议,QSC构建者可以将其私密地集成到其专有固件中。

(3) 除了FPGA IP核之外,仅依赖广泛可用的网络设备。

(4) 延迟尽可能低,受上述约束限制。

(5) 吞吐量和网络基数远超当前QPU规模。

为了实现这一目标,通信中涉及的组件数量应最小化,同时将系统扩展到大量PPU是期望的。即使将QSC系统作为PCIe卡可以启用QSC与GPU之间的直接通信,但它也遇到了PCIe的扩展挑战。主要挑战是用于插入此类卡的商品设备中PCIe插槽数量有限,以及增加插槽数量的挑战。此外,从开发角度来看,为较新版本的PCIe总线开发此类卡,或维护驱动程序和软件可能具有挑战性。

替代方案是使用网络接口卡(NIC)并通过商用以太网或InfiniBand物理链路连接QSC与HPC系统。从数据包生成到跨收发器和物理链路的延迟增加在纳秒量级,抖动最小。受益于NIC内的硬件加速,到达PCIe总线的延迟增加也很低,抖动也很低。如果需要,可以添加以太网或InfiniBand交换机,它们也具有加速硬件。这种替代方案实现了更容易的扩展,无论是每个PPU传输更多数据的链路速度,还是使用网络交换机扩展到更多PPU和聚合数据。因此,我们采用了这种方法,因为增加的延迟和抖动是可以接受的,特别是与PCIe总线的典型更高延迟和抖动考虑相比。

注意,处理数据包的组件数量仍然很重要,应该最小化。因此,我们使用了NIC卸载功能,如远程直接内存访问(RDMA)来绕过主机处理器和内核,以及DOCA GPUNetIO库(gpu)来实现从GPU直接处理数据包,而不是通过主机处理器。换句话说,受益于这两项技术,在往返QSC的数据包处理过程中,只有NIC和GPU参与,没有任何主机参与。此外,通过使用在NIC和GPU插槽之间有专用PCIe交换机的HPC系统,数据不会遍历到主机处理器插槽,而是停留在NIC和GPU之间,通过交换机单跳。这避免了共享PCIe总线上来自其他组件的争用。

另一个需要考虑的问题是,当延迟和抖动是主要目标时,使用可靠连接变得不太理想,因为可靠性会在由于校验和错误等原因丢包时转化为数据包重传。此类重传通常在某个超时后发生,即使特定系统具有通知发送方此类丢弃的功能,重传增加的延迟也可能打乱连续数据包的定时,软件方面几乎没有控制权。另一方面,对于此特定用例,每次传输发送的数据大小非常小,使用经过认证的以太网连接,具有低误码率(BER),如NVIDIA的100G以太网电缆,工程BER小于 10^-15 ,使得此类丢弃的概率微乎其微。

如果希望检测此类丢弃,我们可以在每个数据包中包含数据包编号并将其暴露给软件。如果需要更高的可靠性,我们可以复制小数据包,这实现了更可预测的延迟和抖动。对于此用例,周期性小数据包,通常带宽不是瓶颈,如果数据速率和大小成为瓶颈,可以使用更高速的以太网/InfiniBand链路。因此,我们选择了QSC与NIC之间的不可靠连接,并在必要时将处理此类罕见情况的灵活性留给用户和软件。

2.4 网络概念验证

为了展示概念验证(PoC),我们基于NVIDIA Holoscan Sensor Bridge(HSB)(hsb)生态系统构建,该系统提供了使用RDMA over Converged Ethernet(RoCE)协议在FPGA和NIC之间发送数据的手段,以及处理枚举步骤和控制信号。我们使用了一个ARM系统,托管NVIDIA RTX PRO 6000 Blackwell GPU和NVIDIA ConnectX-7网络接口卡(NIC),以及一个AMD RFSoC FPGA,如图2所示。我们还使用一台单独的笔记本电脑连接到FPGA内的集成逻辑分析仪(ILA)以读出结果,不影响延迟测量。此设置使用现成组件,由于利用成熟的RoCE软件栈,它可以移植到其他GPU,如NVIDIA GB300,此GPU仅为PoC目的选择。显然,网卡和GPU性能,以及它们通过PCIe的连接将对延迟产生影响。

在这里插入图片描述

图2. 概念验证设置

为了测量延迟,我们设计了一个系统,其中FPGA创建数据包,主机将它们环回,FPGA测量时间差。为了实现高精度时间测量,使用了精确时间协议(PTP)时间戳生成器,产生纳秒级时间值。PTP的96位值与数据包编号的16位值,以及18字节的0,构成RoCE数据包的32字节有效载荷。环回数据包到达后,当前时间戳和数据包中的时间戳,以及其数据包编号,通过ILA发送到笔记本电脑。在笔记本电脑上,检查数据包是否连续,并测量每个数据包的时间差。

在这里插入图片描述

图3. 概念验证流程

FPGA上的主要逻辑IP是HSB IP,通过我们的软件配置并创建标准RoCE数据包。此IP可用于多个FPGA供应商,并遵循以太网MAC IP的标准接口。此外,在接收端,它分离RoCE报头并将有效载荷交付给FPGA。此外,此IP为FPGA提供控制信号,我们使用它们来设置数据包之间的时间,以及从FPGA启动或停止数据流。对于最终设计,数据流可以从数据包编号和时间戳更改为基于应用需求的适当数据。

(a) 端到端延迟随时间变化

在这里插入图片描述

(b) 端到端延迟直方图

图4. 观察到运行开始时轻微的预热延迟增加

图4(a)显示了ILA捕获的原始端到端延迟,图4(b)显示了此数据的分布。这是运行开始时的情况,因为需要短暂的预热期,会产生更高的延迟。此预热期是预期的,由于NIC中某些队列元素首次填充,或NIC或GPU端的缓存分配等因素。如果需要,可以通过使用一些虚拟数据包覆盖此预热期的初始化过程来消除。之后,系统变得稳定,如图5(a)和图5(b)所示,我们观察到非常小的方差和低于 4 μs 的端到端延迟。平均和中位延迟测量为 3.839 μs ,标准差为 35 ns ,样本最大值为 3.96 μs 。延迟测量的直方图(图5(b))显示了接近高斯分布,在约 3.96 μs 处有长尾。这主要源于抖动,而不是偶尔的延迟峰值。

在这里插入图片描述
(a) End-to-end latency over time

在这里插入图片描述

(b) Histogram of end-to-end latency
Figure 5. Steady state latency during the same run as Fig.


3. 编程模型

通过对开源 CUDA-Q 平台的扩展,NVQLink 系统得以被编程;这些扩展通过统一的编程接口将异构量子-经典架构暴露出来。这一编程模型将 CUDA 久经考验的异构计算范式扩展至涵盖量子处理单元,使开发者得以在单一应用框架内编排跨 CPU、GPU 和量子控制系统的计算。

这一方法的基石是量子核函数(quantum kernel)——一种以 __qpu__ 属性标注的 C++ 函数,它将量子操作与经典控制流无缝地集成在一起。这些核函数由 nvq++ 编译器编译为多级中间表示(MLIR)方言:量子指令采用 Quake 方言,经典操作采用 CC 方言。这一中间表示实现了精细的优化,并为通过设备回调(device callbacks)进行实时量子-经典通信奠定了基础。

定义 3.1(量子核函数 / Quantum Kernel)

__qpu__ 属性标注的 C++ 函数,将量子操作封装在标准 C++ 控制流内部。量子核函数可包含量子门、测量以及经典控制逻辑,从而能够借助熟悉的编程构造来表达复杂的量子算法。

定义 3.2(设备 / Device)

在 CUDA-Q 机器模型中,设备(device)表示逻辑 QPU 内部能够执行库函数和核函数的任何计算资源。设备包括传统处理器(CPU、GPU)、量子控制系统(PPU、实时主机)以及复合系统(超级计算集群)。每个设备被分配一个唯一标识符,并可按层次结构由其他设备组合而成。

3.1. 异构机器模型

NVQLink 的 CUDA-Q 机器模型将熟悉的 CUDA 主机-设备范式扩展至三个计算域,如表 1 所示。这种层次化抽象使程序员能够运用成熟的并行编程概念来推理量子-经典系统,同时兼顾量子控制系统的独特需求。
在这里插入图片描述
Table 1. Programming model hierarchy spanning supercomputing, real-time control, and quantum control domains. †PPUs are addressable by the Real-time Host; QSCs may include dedicated control processors.

这一三层架构提供了自然的抽象边界:超级计算机负责高层算法编排,实时主机协调实时数据管理与纠错,而 QSC 执行细粒度的量子控制。设备唯一标识符(UID)实现了跨所有层级的直接寻址,而实时主机维护着一个可用设备及其能力的注册表,以实现高效的计算路由。

如表 1 所示,QSC 域支持物理 PPU 和虚拟脉冲处理单元(VPPU)作为设备类型。VPPU 提供了一种可替代的 PPU 仿真器,用于离线开发和测试(第 7.1 小节)。从程序员的视角看,由 nvq++ 编译的量子核函数在 VPPU 或物理 PPU 上执行时产生相同的结果,因为两者都实现了相同的 quantum_control_trait 接口(第 4.1 小节)。这种可替代性使开发者能够在无需持续访问物理硬件的情况下迭代量子程序和实时协议,从而在部署到生产系统之前加速开发工作流。

3.2 实时设备回调

NVQLink架构的核心是cudaq::device_call内在函数,它支持从量子内核内部进行实时设备回调。这允许量子程序与经典计算资源交互,同时满足量子操作的严格延迟约束。

device_call机制使量子内核能够调用远程设备(如GPU或CPU)上的经典函数,传递数据并接收结果。这些回调是类型安全的,并保留C++语义,使程序员能够编写自然的量子-经典混合代码。

列表1:使用设备回调的实时量子纠错。

__qpu__ void adaptive_qec_kernel(cudaq::qvector<>& data_qubits,
                                 cudaq::qvector<>& ancilla_qubits,
                                 int cycles) {
  for(int i = 0; i < cycles; ++i){
    // 稳定子电路在此
    ...
    // 执行综合征提取测量
    auto syndrome = mz(ancilla_qubits);

    // 实时流式传输到专用GPU
    cudaq::device_call(/*gpu_id=*/1,
                       surface_code_enqueue,
                       syndrome);
    // 重复
  }

  // 在专用GPU上实时解码
  auto correction = cudaq::device_call(/*gpu_id=*/1,
                                       surface_code_decode);

  // 如果需要,物理上应用校正(通常在软件中跟踪)
  if (correction.x_errors.any())
    apply_pauli_x_corrections(data_qubits, correction.x_errors);
  if (correction.z_errors.any())
    apply_pauli_z_corrections(data_qubits, correction.z_errors);
}

device_call内在函数支持针对不同计算场景优化的多种调用模式。这些模板签名提供了几个关键功能:

列表2:设备回调模板签名。

// 在指定设备上调用CPU函数
template <typename Callable, typename... Args>
auto device_call(std::size_t device_id, Callable&& func, Args&&... args)
 -> decltype(func(std::forward<Args>(args)...));

// 在默认设备上调用CPU函数
template <typename Callable, typename... Args>
auto device_call(Callable&& func, Args&&... args)
 -> decltype(func(std::forward<Args>(args)...));

// 具有编译时网格规范的CUDA内核启动
template <std::size_t NumBlocks, std::size_t NumThreadsPerBlock,
          typename Kernel, typename... Args>
auto device_call(std::size_t device_id, Kernel&& kernel, Args&&... args)
 -> decltype(kernel(std::forward<Args>(args)...));
  • 设备选择: 通过唯一标识符显式定位计算资源
  • 执行灵活性: 支持CPU函数和GPU内核启动
  • 自动编排: 编译器管理的异构设备间数据移动
  • 类型安全: 基于模板的接口,保留C++类型语义并启用编译时错误检查

设备回调的函数签名必须符合CUDA-Q类型约束。传递给设备回调的参数被视为不可变的。参数类型因此必须通过值传递或通过常量引用(const T&)传递。

设备函数必须在量子操作可以恢复之前完成执行,确保确定性程序语义。设备回调库开发人员可以在返回void的回调函数中自由启动异步线程。

3.3 异构内存抽象层

鉴于图1中异构逻辑QPU架构的存在,编程模型需要一种跨固有经典设备推理分配数据的机制。因此,编程模型通过cudaq::device_ptr<T>类型抽象异构内存系统,该类型封装了设备特定的内存句柄,同时保持类型安全和自动生命周期管理。此抽象支持针对底层硬件拓扑优化的透明数据移动。

为了满足这些需求,我们在列表3中指定了device_ptr类型。

列表3:用于异构内存管理的设备指针抽象。

template <typename T>
struct device_ptr {
  std::size_t handle = std::numeric_limits<std::size_t>::max();
  std::size_t size = 0;
  std::size_t device_id = std::numeric_limits<std::size_t>::max();
  void* host_shadow = nullptr;

  device_ptr(T* host_data) : host_shadow(host_data) {
    handle = register_device_memory(host_data, sizeof(T));
    size = sizeof(T);
  }
};

内存模型支持显式控制(针对性能关键型应用程序)和隐式管理(针对程序员生产力)。编译器实现应分析数据使用模式以优化传输,对支持的设备采用高带宽RDMA,对网络连接资源采用高效批处理。

内存一致性通过编译器分析和运行时同步的组合来维护,确保异构系统间的程序正确性。

device_ptr<T>类型为分配的逻辑QPU设备数据提供唯一句柄,类似于CUDA为处理GPU设备上的数据而暴露的设备指针。这些实例应该在CUDA-Q内核代码中可用(即量子内核签名可以包含device_ptr类型),通过device_call内在函数在逻辑QPU内的经典设备上实现复杂的数据变异量子-经典工作流。

此设备数据建模还要求NVQLink公开一个API,用于这些设备指针类型的创建、操作和销毁。同样,CUDA提供了设备驱动程序API(例如cudaMalloc、cudaMemcpy、cudaFree、cuLaunchKernel等),我们需要一个逻辑QPU设备驱动程序API,我们将在第4.4节中详细阐述。

3.4 编译影响

此处为CUDA-Q编程模型提出的NVQLink概念对编译器实现有直接影响。关键在于如何处理所提出的device_call内在函数的降级。预计量子操作将自然地降级为脉冲级表示,然后降级为后续操作,通过一组分布式FPGA或等效的片上系统(SoC)实例驱动量子寄存器的动力学。注意,我们在最后一个陈述中故意保持通用,因为人们可能遇到的量子执行时域具有潜在的频谱。脉冲表示可以直接降级为FPGA软核处理器指令集架构(ISA)代码,也可以降级为调节脉冲发射的标准CPU代码。此外,尚不清楚device_call应如何降级到量子控制系统,以及模态特定的时序约束应如何影响该代码生成。在此我们试图阐明其中一些更精细的问题。

对于量子内核编译任务,我们确定了系统延迟敏感性频谱的两个端点,该频谱取决于底层系统延迟容差和相关控制要求——我们将其分类为高延迟敏感性与低延迟敏感性。
具有高延迟敏感性的系统是那些表现出较短量子比特相干时间的系统,因此需要较低的实时反馈延迟。具有低延迟敏感性的系统表现出较长的量子比特相干时间,因此可以容忍较慢的实时反馈。

每个域对实时主机和量子系统控制器(QSC)之间的通信模式施加不同的约束,从根本上改变内核代码编译策略。

3.4.1 高延迟敏感性

具有严格实时要求的量子系统运行在极其严格的延迟预算下,对控制系统施加最具限制性的时序约束,因此我们为内核编译器实现列举以下要求:

  • 无实时主机调解: 控制驱动程序在量子操作期间不能调解任何数据编排或函数调用,因为延迟约束将超过退相干时间尺度。

  • 需要远程直接内存访问(DMA): 所有实时经典处理必须通过绕过传统网络栈和CPU参与的RDMA路径进行,实现亚微秒数据传输。

  • 预编译ISA程序: 完整的ISA程序必须提前上传到FPGA并原子式触发,在执行期间与实时主机的交互式通信最小化。控制必须固有于这种预编译的ISA表示中。我们允许动态指令排队,FPGA消费ISA指令从实时主机实时更新的队列中拉取下一条指令。要求是指令队列在程序终止前保持非空。

高延迟敏感性系统的编译模型必须执行积极的提前优化,并利用预初始化的异步数据处理线程(例如CUDA持久内核)实现实时回调功能。图6演示了此异步工作流,预计编译器实现将降级为此类工作流以用于延迟关键的模态。
在这里插入图片描述

图6. 描述实时主机、CUDA设备和FPGA控制之间交互的序列图,以实现具有短相干时间要求的系统的实时数据编排和经典设备回调调用。量子内核必须提前编译为FPGA控制特定的ISA二进制代码。实时主机必须初始化整个系统——启动等待FPGA交付数据以进行处理的持久CUDA线程。

3.4.2 低延迟敏感性

具有更宽松时序要求的量子系统表现出对处理延迟的更高容差,实现了更灵活的控制架构。在此我们列举此时间域内核代码降级的需求:

  • 允许实时主机调解: 实时主机可以在不违反相干约束的情况下,调解量子操作之间的数据编排和函数调用。

  • RDMA有益但可选: 虽然RDMA提供性能优势,但标准网络通信路径对许多应用程序仍然可行。

  • 运行时操作流式传输: 实时主机可以在运行时流式传输操作。

  • 交互式执行模型: 量子和经典操作可以与实时主机和QSC之间的双向通信交错。
    在这里插入图片描述

图7. 描述低延迟敏感性系统的可能编译策略,其中编译器将量子内核代码与来自实时主机的运行时操作交错,允许更灵活的执行模型。

3.4.3 降级工作流

阐明在NVQLink实现的典型实现中编译器降级可能是什么样子将是有帮助的。

// 需要实时设备回调(add)的量子内核的用户代码。

// 声明设备函数
int add(int, int);

// 定义CUDA-Q量子内核
__qpu__ int maybe_increment(int i) {
  cudaq::qubit q;
  h(q);
  return cudaq::device_call(2, add, i, mz(q));
}
func.func @maybe_increment(%arg0: i32) -> i32 {
  %0 = quake.null_wire
  %1 = quake.h %0 : (!quake.wire) -> !quake.wire
  %measOut, %wires = quake.mz %1 : (!quake.wire) -> (!quake.measure, !quake.wire)
  %2 = quake.discriminate %measOut : (!quake.measure) -> i1
  %3 = cc.cast unsigned %2 : (i1) -> i32
  %4 = cc.device_call @add on 2 (%arg0, %3) : (i32, i32) -> i32
  return %4 : i32
}

在这里插入图片描述

图8. (左上)展示量子代码与NVQLink设备上实时经典处理交错的典型CUDA-Q量子内核代码。此代码在逻辑QPU上执行,编译器代码生成依赖于目标架构固有的时域。编译器实现作为第一步,应将代码降级为适合进一步目标特定降级的统一表示(右上)。在这些代码片段下方(底部),我们看到编译器工作流应如何接近所提出的系统时域。

图8演示了NVQLink架构所设想的编译器代码生成工作流。在此可以看到量子IR节点(例如quake.h等)以及关键的cc.device_call操作。预计量子操作随后将与进出此device_call操作的数据流一起降级为脉冲级表示(例如脉冲MLIR方言)。编译的下一阶段由固有的系统时域决定。长相干时间域系统可以随后将图8(右上)中的代码直接降级为实时主机上的QSC特定Intrinsic库。预计此处的device_call操作将降级为特定库函数,该函数接受回调参数、回调名称和回调返回值指针作为输入,并利用NVQLink运行时API(见第4节)一般性地影响逻辑QPU内指定设备上的回调调用。

延迟关键的系统将需要进一步将脉冲表示降级到FPGA ISA代码,理解这可能是一个分布式FPGA系统,特定物理量子比特分配给特定FPGA。因此,需要将原始统一内核分解为针对特定FPGA的唯一程序。此外,此时域的实现需要将device_call降级为触发从FPGA内存到GPU内存直接数据编排(RDMA)的FPGA操作。GPU设备代码将需要异步监听数据事件,并在从执行FPGA ISA代码接收到所有数据后应用请求的回调。

这些编译工作流概念将跨越可用的NVQLink架构实现,这是由于我们对CUDA-Q编程模型提出的增强。接下来,我们将注意力转向描述这些组合架构所需的必要运行时支持,以及实时经典协处理在关键系统时域窗口期间所需的数据类型。


4. 运行时架构

NVQLink运行时架构提倡一种高性能、零开销的抽象模型,建立在静态多态性和基于特性的组合之上。做出这些选择是为了服务于最小化实时回调延迟和最大化逻辑QPU内设备类型的可配置性和可扩展性的目标。在本节中,我们完整指定了实现实时数据编排、数据管理、设备回调处理所需的类类型,以实现我们设想的逻辑QPU。最终我们提出了用于定义设备及其独特行为或能力的接口,以及用于逻辑QPU的通用设备驱动程序API。

4.1 设备及其特性

首先,NVQLink提出了一种通用的cudaq::device类型,如列表4所示。此类型用作逻辑QPU内所有处理资源的基本抽象。每个设备保留其自己的UID和可在量子内核执行期间在实时回调下调用的函数的注册表。每个设备在系统初始化期间从原子计数器接收其UID以确保唯一性。设备旨在维护从库位置到可调用函数的映射,实现动态函数解析。设备公开connect()disconnect()方法,以实现每个设备实例的一次性初始化和终结。

列表4:NVQLink运行时管理的设备的cudaq::device基类。

template<typename Derived, typename... Traits>
class device {
private:
  std::size_t device_id = 0;
public:
  void connect();
  void disconnect();
  std::size_t get_id() const;
};

运行时通过特性系统在编译时表达设备功能,该特性系统组合设备特定的能力。每个特性是一组可以在对象上实现的行为,由成员全部为公共方法的类表达。我们在此提出一组要内置于CUDA-Q中的特性,此系统支持 straightforward 的可扩展性,以支持第三方定义的新特性。

我们列举以下特性:

  • explicit_data_marshalling_trait: 提供实时主机介导的内存管理,具有分配、释放和数据传输方法(见列表5)。此特性为慢时域模态启用实时数据处理。它公开了熟悉的API,用于数据分配、释放和变更。

  • device_callback_trait: 启用实时主机介导的设备函数调用(见列表6)。此特性为慢时域模态启用实时设备回调能力。它公开了一个API,用于对以预分配device_ptr实例表示的提供的函数参数应用指定的回调函数(设备特定的)。它还允许通过单独的预分配device_ptr实例返回函数结果。

  • quantum_control_trait: 专门化量子控制系统功能,包括程序上传和触发机制。继承此特性的设备为实时主机呈现QCS设备的统一视图(见列表7)。程序表示为编译的内核二进制文件。执行以device_ptr实例提供的内核参数触发。内核结果通过预分配的device_ptr实例返回。

  • rdma_trait: 支持通过远程直接内存访问的高性能、低延迟数据传输(见列表8)。此特性为快速架构模态设计,其中数据编排和回调调用的实时主机介导不可能。它公开了一个最小接口,允许提取内存缓冲区数据,用于与指定quantum_control_trait设备实例的一次性初始化和握手机制。具体的rdma_trait类型需要在子类型特定的connect方法实现中执行所有相关的RDMA连接任务。

列表5:支持由实时主机控制的数据移动的特性。

template <typename Derived>
class explicit_data_marshaling_trait {
public:
  void *resolve_pointer(device_ptr &devPtr);

  device_ptr malloc(std::size_t size) const;

  template <typename... Sizes,
            std::enable_if_t<(std::conjunction_v<std::is_integral<Sizes>...>>,
            int> = 0>
  auto malloc(Sizes... szs) {
    return std::make_tuple(static_cast<Derived *>(this)->malloc(szs)...);
  }

  void free(device_ptr &d);

  template <typename... Ptrs,
            typename = std::enable_if_t<
              (std::conjunction_v<std::is_same<
                std::remove_cv_t<std::remove_reference_t<Ptrs>>,
                device_ptr>...>)>>
  void free(Ptrs &&...d) {
    (free(d), ...);
  }

  void send(device_ptr &dest, const void *src);
  void recv(void *dest, const device_ptr &src);
};

列表6:支持实时设备回调函数的特性。

template <typename Derived>
class device_callback_trait {
public:
  void launch_callback(const std::string &callbackName,
                       const std::vector<device_ptr> &args);
  void launch_callback(const std::string &callbackName, device_ptr &result,
                       const std::vector<device_ptr> &args);
};

列表7:支持在QCS设备上程序二进制上传和执行的特性。

template <typename Derived>
class quantum_control_trait {
public:
  void upload_program(const std::vector<std::byte> program_data);
  void trigger(device_ptr &result, const std::vector<device_ptr> &args,
               const cudaqx::heterogeneous_map& config);
};

列表8:支持通过远程直接内存访问(RDMA)进行数据移动的特性。

template <typename Derived, typename RDMADataType>
class rdma_trait {
public:
  RDMADataType& get_rdma_connection_data() const;
};

此设备架构旨在支持各种时域模态和实时数据处理能力。具体设备类型的实例化允许用户以编程方式定义独特的逻辑QPU架构。它们与架构特定的量子内核编译一起使用,允许开发实时量子-经典工作流,原生利用GPU协处理。

4.2 编译量子内核

NVQLink架构将通用量子内核编译视为将用户意图映射到脉冲处理器上可执行指令的手段。我们不局限于静态电路编译,而是考虑完全参数化的功能表示,利用通用经典控制流。此外,我们允许非确定性控制流(例如由量子测量结果决定)。我们采用以CUDA-Q内核为中心的方法,但也寻求启用第三方编译和二进制加载,只要第三方内核支持我们提出的device_call能力。

我们提倡提前编译策略,并依赖标准代码链接技术来构建混合量子-经典可执行文件和库。因此,NVQLink架构为库提出了一个扩展点,使能编译内核生成。我们在列表9中表示编译的内核代码。

列表9:NVQLink对编译量子内核的表示。

struct qcontrol_program {
  std::vector<std::byte> binary;
  std::size_t qdevice_id;
};

class compiled_kernel {
protected:
  std::string kernel_name;
  std::vector<qcontrol_program> control_programs;
public:
  const std::string &name() const;
  const std::vector<qcontrol_program> &get_programs() const;
};

我们将编译的量子内核表示为单个单元,但由可能许多单独的二进制程序(qcontrol_program)组成。逻辑QPU预计由许多quantum_control_trait设备组成(例如许多脉冲处理器),此设计允许表达每个组成控制设备的二进制程序。每个程序跟踪其打算运行的设备。CUDA-Q中的量子内核通过其函数名和签名分配内核名称。我们保留此信息并将其标记到compiled_kernel实例。

为了生成编译的内核实例,NVQLink提出了一个编译器接口,用于架构特定的编译可扩展性。此类在列表10中定义。

列表10:NVQLink对架构特定编译器的表示。

struct qcontrol_program {
  std::vector<std::byte> binary;
  std::size_t qdevice_id;
};

class compiled_kernel {
protected:
  std::string kernel_name;
  std::vector<qcontrol_program> control_programs;
public:
  const std::string &name() const;
  const std::vector<qcontrol_program> &get_programs() const;
};

此API支持架构特定的预编译代码加载(例如从对象文件)以及JIT代码编译。每个能力以架构定义的quantum_control_trait设备作为输入,以便编译的内核完全感知架构。

4.3 整体内核执行

NVQLink架构提倡一种硬件感知能力,用于在可用和指定的quantum_control_trait设备上触发内核启动。

列表11:NVQLink对架构特定内核执行器的表示。

template <typename Derived>
class executor {
public:
  void
  trigger_execution(std::unordered_map<std::size_t, any_device> &qcs_devices,
                    device_ptr &res, const std::vector<device_ptr> &args);
};

内核启动的意图是NVQLink实现将所有需要的程序上传到指定的quantum_control_trait设备。一旦所有二进制程序都已上传,将使用架构特定的执行器来触发所有二进制脉冲程序的同步执行。执行器提供对集体脉冲处理单元的单一视图,有效地建模单个虚拟脉冲处理器。此类型不仅可以用于硬件特定的程序触发。作为量子代码执行的有效适配器,可以利用此扩展点提供实时指令流式传输和调度。

4.4 逻辑QPU驱动程序API

至此,我们提出了一种用于构建逻辑QPU实例的架构,这些实例能够实现实时(在相干时间内)数据编排和处理。对于设想的高级用例,在NVQLink提出的类型之上定义一个库API将是有益的,以实现高效的逻辑QPU数据管理、变更以及内核和设备回调调用。为此,我们提出NVQLink驱动程序API,公开熟悉的接口,用于协处理器数据分配、释放、变更以及内核加载和启动。

列表12:NVQLink逻辑QPU驱动程序API。

template <typename... DeviceTypes>
void initialize(DeviceTypes &&...in_devices);
void shutdown();

std::size_t get_num_qcs_devices();
std::size_t get_num_classical_devices();

device_ptr malloc(std::size_t size);
device_ptr malloc(std::size_t size, std::size_t devId);
template <typename T>
device_ptr malloc(std::optional<std::size_t> device_it = std::nullopt);

void free(device_ptr &d);
template <
  typename... Ptrs,
  typename = std::enable_if_t<
    (std::conjunction_v<std::is_same<
      std::remove_cv_t<std::remove_reference_t<Ptrs>>, device_ptr>...>)>>
void free(Ptrs &&...d) {
  (free(d), ...);
}

void memcpy_to_qpu(device_ptr &arg, const void *src);
void memcpy_from_qpu(void *dest, const device_ptr &src);
template <typename T>
T memcpy_from_qpu(const device_ptr &src);

handle load_kernel(const std::string &location,
                   const std::string &kernel_name);
handle load_kernel_from_code(const std::string &code,
                             const std::string &kernel_name);

void launch_kernel(handle kernelHandle, device_ptr &result,
                   const std::vector<device_ptr> &args);
void launch_kernel(handle kernelHandle, const std::vector<device_ptr> &args);
template <typename Ret, typename... Args>
Ret launch_kernel(handle kernelHandle, Args &&...args);

NVQLink提出了列表12中描述的函数API。库规范以通用初始化和关闭函数开始。初始化以组成逻辑QPU的用户指定具体设备作为输入。库提出了熟悉的面向用户的数据分配和释放函数集(malloc和free)。这些函数允许指定数据驻留的逻辑QPU内的目标设备。如果未指定具体设备ID,则定位实时主机内存空间。这些函数返回并操作上述device_ptr实例。库提倡设备特定的数据变更API(memcpy),允许向逻辑QPU移动数据或从逻辑QPU移动数据。

API公开了一种加载和启动量子内核的机制。库应在此方面可配置,允许指定架构特定的编译器和执行器实例。从文件加载预编译的内核,或从源字符串JIT编译,委托给指定的编译器实现并返回编译内核的句柄。此句柄用于后续对launch_kernel的调用。内核启动以内核参数作为输入,通过此API在实时主机上预分配。对于返回值的内核,可以向launch_kernel提供适当大小的device_ptr。


5. 初步规范

我们在此提出一组前瞻性需求,旨在预告未来向成熟规范方向的工作,并激发读者提供对该规范的反馈和输入。

(1) PPU的固件定义必须保持可由QSC构建者在现场重新编程。

(2) NVQLink系统必须支持一种操作模式,其中PPU指令对实时主机不透明。特别地,操作者必须可以选择加密这些指令,而不会在实时域中失去功能。

(3) 网络接口必须保证与实时主机和互操作,网络的性能特征应公开记录并可供最终用户随时测量。

(4) 实时主机必须可通过C++、CUDA和CUDA-Q编程。

(5) 实时主机可包括其他处理资源,包括CPU-GPU片上系统(SoC)、FPGA或ASIC。

(6) QSC提供商可提供虚拟脉冲处理单元(VPPU),用于离线开发和测试其PPU指令集(第7.1小节)。

(7) 从QSC到实时主机再返回的往返数据延迟必须可通过CUDA-Q库函数测量,此函数调用的结果必须返回其输入集合上每个测量样本的延迟(待定)。


6. QPU级工作负载

本节将NVQLink抽象转化为具体的QPU级工作负载。我们首先处理一个最小但具有代表性的QEC子程序——T门态隐形传态,以说明内核嵌入的设备回调和解码器交互(第6.1小节)。然后,我们分析在格点手术下的可扩展容错执行,将解码器吞吐量和反应时间与并行窗口策略及GPU批量执行联系起来(第6.2小节)。最后,我们在第6.3和第6.4小节中描述紧耦合HPC的可用性如何有益于具有快速参数化控制的校准和QCVV工作负载。

6.1 示例:CUDA-Q中的T门隐形传态

容错量子计算子程序的实验演示是量子计算中活跃的研究课题,也是实用量子计算的基本步骤。为了从实验走向生产,开发人员需要访问量子编程语言中的新原语,包括综合征数据的实时处理和FPGA与GPU之间的低延迟数据交换。

一个依赖于这些实时能力的规范子程序是魔态蒸馏和隐形传态。一旦通过魔态蒸馏、培育或类似方法在逻辑辅助量子比特上准备好魔态,就可以通过隐形传态将其应用于目标量子比特(Bravyi和Kitaev,2005;Gidney等人,2024)。辅助量子比特的逻辑测量结果确定了是否必须应用条件S门来完成隐形传态协议。此测量步骤是解码器可能阻塞执行的地方,因为来自目标和辅助量子比特两者的综合征历史被分析以预测故障位置并确定逻辑可观测量是否被翻转。

以下示例说明了从CUDA-Q调用解码器执行T门隐形传态所涉及的关键组件。解码器首先初始化并等待数据,然后启动CUDA-Q内核,在执行期间向解码器内核发送调用。

大部分复杂性在于配置解码器服务器,以理解预期什么数据、如何将原始稳定子测量转换为检测器事件,以及需要解码哪些逻辑可观测量。

列表13:T门隐形传态示例的CUDA-Q C++主函数。

// 客户端/服务器解码器示例
int main(){
  // 配置解码器
  // 正确设置解码器需要关于量子内核结构的信息
  auto config = config_from_kernel(example_kernel, nData, nAncx, nAncz,
                                    x_schedule, z_schedule);
  cudaq::qec::decoding::config::configure_decoders(config);

  // 设置实验参数
  // ...
  // 这里示例内核以逻辑量子比特中的物理量子比特为参数。

  auto run_result = cudaq::run(numShots, example_kernel, nData, nAncx, nAncz,
                                x_schedule, z_schedule);

  parse_logical_results(run_result);
  cudaq::qec::decoding::config::finalize_decoders();
}

列表14显示了具有隐形传态例程主要逻辑的示例内核。T门生产本身可以是任何例程,但许多都有重复直到成功的组件。我们没有实现t_distill_attempt,但展示了一个示例,它位于while循环下,直到返回协议已成功。在这种情况下,在底层进行简单的标志检查,但更一般地,这也可能需要调用解码器。

列表14:CUDA-Q内核主体,设置和执行隐形传态。

__qpu__ void example_kernel(int nData, int nAncx, int nAncz,
                            const std::vector<std::size_t> &x_schedule,
                            const std::vector<std::size_t> &z_schedule) {
  // 声明物理量子比特的逻辑数据/辅助量子比特
  cudaq::qvector data(nData);
  cudaq::qvector ancx(nAncx);
  cudaq::qvector ancz(nAncz);

  patch logicalQ1{data, ancx, ancz};

  // 初始化到|0>_L
  initialize(logicalQ1);

  // 尝试T态蒸馏直到成功
  int attempts = 0;
  bool success = false;
  cudaq::qvector t_ancilla(nData + nAncx + nAncz);
  patch logicalT{t_ancilla.first(nData),
                 t_ancilla.slice(nData, nAncx),
                 t_ancilla.last(nAncz)};

  while (!success && attempts < maxAttempts) {
    success = t_distill_attempt(logicalT, x_schedule, z_schedule);
    attempts++;
  }

  if (!success) return; // 或处理失败

  // 执行QEC周期以获取用于解码的综合征数据
  // 同时积累syndrome用于Pauli框架跟踪
  std::vector<cudaq::measure_result> syndromes;
  for (int cycle = 0; cycle < d_m; ++cycle) {
    auto syndrome = stabilizer_round(/*deviceID=*/decoder_device,
                                     /*tagID=*/cycle,
                                     logicalQ1, x_schedule, z_schedule);
    syndromes.push_back(syndrome);
  }

  // 测量辅助(T态)量子比特以进行隐形传态
  // 使用X_L = X^{⊗n}逻辑测量
  for (std::size_t i = 0; i < logicalT.data.size(); ++i)
    h(logicalT.data[i]);
  auto teleport_measure = mz(logicalT.data);

  // 对目标量子比特进行条件S门(如果需要)
  // S_L = S^{⊗n},条件取决于逻辑测量结果
  if (teleport_measure parity) {
    // 应用S_L校正
    for (std::size_t i = 0; i < logicalQ1.data.size(); ++i) {
      s(logicalQ1.data[i]);
    }
    // 对于非Clifford部分可能需要额外的T门校正
  }

  // 应用前馈后额外的QEC周期
  for (int cycle = 0; cycle < additional_cycles; ++cycle) {
    auto syndrome = stabilizer_round(/*deviceID=*/decoder_device,
                                     /*tagID=*/d_m + cycle,
                                     logicalQ1, x_schedule, z_schedule);
    syndromes.push_back(syndrome);
  }

  // 最终测量
  auto data_readout = mz(logicalQ1.data);
  return data_readout;
}

列表15:执行稳定子轮次并将数据传输到解码器的CUDA-Q子内核。

// 通过cnot调度指定的X稳定子和Z稳定子
__qpu__ std::vector<cudaq::measure_result>
stabilizer_round(int deviceID, int tagID, patch logicalQubit,
                 const std::vector<std::size_t> &x_schedule,
                 const std::vector<std::size_t> &z_schedule) {
  for (std::size_t i = 0; i < logicalQubit.ancx.size(); i++)
    reset(logicalQubit.ancx[i]);
  for (std::size_t i = 0; i < logicalQubit.ancz.size(); i++)
    reset(logicalQubit.ancz[i]);

  // x_stabilizer电路
  h(logicalQubit.ancx);
  for (std::size_t xi = 0; xi < logicalQubit.ancx.size(); ++xi)
    for (std::size_t di = 0; di < logicalQubit.data.size(); ++di)
      if (x_schedule[xi * logicalQubit.data.size() + di] == 1)
        cudaq::x<cudaq::ctrl>(logicalQubit.ancx[xi], logicalQubit.data[di]);
  h(logicalQubit.ancx);

  // z_stabilizer电路
  for (size_t zi = 0; zi < logicalQubit.ancz.size(); ++zi)
    for (size_t di = 0; di < logicalQubit.data.size(); ++di)
      if (z_schedule[zi * logicalQubit.data.size() + di] == 1)
        cudaq::x<cudaq::ctrl>(logicalQubit.data[di], logicalQubit.ancz[zi]);

  // 解码器约定:
  // S = (S_X, S_Z), (x翻转综合征, z翻转综合征)。
  // x翻转触发z稳定子(ancz)
  // z翻转触发x稳定子(ancx)
  auto syndrome_bits = mz(logicalQubit.ancz, logicalQubit.ancx);

  // 可以使用CUDA-Q包装调用实现设备可移植性
  // int decoderID = deviceID;
  // cudaq::qec::decoding::enqueue_syndromes(decoderID, syndrome_bits);

  // 或调用自定义库实现
  auto syndrome_packed = cudaq::to_integer(syndrome);
  cudaq::device_call(custom_library::enqueue_syndromes_ui64,
                     deviceID, syndrome_packed, decoder_id, tagID);
  return syndrome_bits;
}

在此示例中,T门被隐形传态到新初始化的逻辑量子比特上,但该例程还演示了如何将隐形传态应用于处于一般量子状态的逻辑量子比特。在这种情况下,量子比特在此步骤之后仍然存在,并参与后续的Clifford和非Clifford门操作,而不是如这里所示立即测量。

示例中未显示的是显式的cudaq::device_call语句。此省略突出了该方法的一个重要方面:不同硬件平台对经典交互有不同要求,因此从量子内核内部调用经典资源的灵活接口至关重要。

cudaq::device_call机制支持这种灵活性。一般而言,CUDA-Q提供旨在支持多种量子比特技术的高级API,同时仍允许硬件开发人员通过cudaq::device_call集成自己解决方案的模块化、以库为中心的框架。

在延迟敏感模式下,量子内核可能类似于上面显示的示例,其中仅启用所需的最小动态性——例如重复直到成功逻辑和条件S门。在具有更大延迟容差的硬件上,设计可以允许更频繁的设备调用。例如,解码器可以根据中间计算结果动态重新配置。格点手术例程的即时编译是另一个有前途的方向,可以实现逻辑双量子比特操作更有效的路由。

6.2 可扩展的容错量子程序

在这里插入图片描述
(a)

在这里插入图片描述

(b)

图9. (a) 通过d=3表面码块的格点手术实现的逻辑Y⊗Y⊗X测量示例。黄色顶点对应数据量子比特,灰色顶点对应辅助量子比特。红色(蓝色)方块对应XX(ZZ)型稳定子。扭曲缺陷由黄色方块表示。白色顶点表示补丁合并时第一轮综合征测量中的随机稳定子测量。然而,具有白色顶点的所有稳定子的乘积对应于Y⊗Y⊗X测量的奇偶性。合并表面码块的稳定子测量在d_m轮中进行,之后路由空间区域中的数据量子比特以XX基测量,将表面码块分割回其原始形式。(b) 将合并格点的2D切片划分为提交(红色框)区域和清理区域(黄色框)。所有提交区域中的错误并行解码。同样,所有清理区域中的错误并行解码。对于提交区域,使用来自红色框以及周围缓冲区(由蓝色、紫色和棕色框显示)的稳定子测量进行错误校正。

给定用作资源态的魔态访问,任何通用量子算法都可以编译为一系列多量子比特Pauli测量序列(Litinski,2019)。在使用拓扑码(如表面码)的硬件架构中,当受限于最近邻相互作用时,执行多量子比特Pauli测量的容错需要一种称为格点手术的技术(Fowler和Gidney,2018;Litinski,2019;Chamberland和Campbell,2022a)。在格点手术实验中,可能存在逻辑类空间故障(如发生在逻辑量子比特上的逻辑XX、YY或ZZ错误)或逻辑类时间故障,后者发生在获得多量子比特Pauli测量的错误奇偶性时。类空间故障随码距d增加而指数抑制,而类时间故障随多量子比特Pauli算子测量期间执行的综合征测量轮数d_m增加而指数抑制(Chamberland和Campbell,2022a, b)。因此算法的运行时间取决于d和d_m(例如参见文献(Chamberland和Campbell,2022a)中的公式(C7)-(C9))。Y⊗Y⊗X测量的示例如图9(a)所示。

在下文中,我们假设量子算法的深度对应于顺序非Clifford门的数量(例如T门或Toffoli门)。参见文献(Litinski,2019)中的图6示例(注意多个非Clifford门如T门可以并行完成,电路的深度来自不能并行化的非Clifford门)。在实现第j’个顺序非Clifford门之前,必须知道应用该门之前的Pauli框架(Terhal,2015;Chamberland等人,2018)。因此,必须处理直到魔态消耗的所有综合征测量轮次。如文献(Chamberland等人,2023)所示,当使用滑动窗口方法解码综合征测量轮次时,解码第j个顺序非Clifford门的魔态消耗的所有综合征测量轮次所需的等待时间为:

Tbj=cjrTsj−1+Tl[Ts1−j(cj−Tsj)c−Ts]T^{b_j} = \frac{c^j r}{T_s^{j-1}} + T_l \left[ \frac{T_s^{1-j}(c^j - T_s^j)}{c - T_s} \right]Tbj=Tsj1cjr+Tl[cTsTs1j(cjTsj)]

其中我们假设线性时间解码器解码r轮综合征测量需要T_DEC® = cr时间,其中c是常数。在公式(1)中,T_s是执行一轮稳定子测量所需的时间,T_l是实时互连的往返通信延迟。对于双量子比特门时间为100 ns、辅助量子比特测量+重置时间为1 μs的PQPU,我们可以为表面码设置T_s = 1.4 μs。如果我们假设在消耗用于实现第一个非Clifford门的魔态之前的综合征测量轮次数为33(这适用于d≈20的表面码,使用格点手术执行Z⊗Z测量),并取入站延迟T_l = 20 μs(注意在本工作中,展示了4 μs往返延迟),文献(Chamberland等人,2023)表明c ≲ T_s导致等待时间T^{b_j}呈次指数增长。c ≲ T_s的要求在用现实硬件和当前最先进的QEC解码器实现时具有挑战性。

在文献(Skoric等人,2023;Tan等人,2023)中,通过用并行窗口解码器替换滑动窗口解码器获得了改进。假设需要解码L ≥ r轮以消耗魔态并获取当前Pauli框架的状态。L轮被划分为提交和缓冲区域(每个包含O(d)轮)。使用来自提交区域以及提交区域前后缓冲区域的综合征来校正给定提交区域中的错误。执行此类校正后,执行清理区域中的校正以消除任何剩余的残余错误。参见文献(Skoric等人,2023)中的图3。注意所有提交和清理区域都可以并行解码,这是在下文中实现实时解码的关键假设。设N_par为并行资源数,n_com为提交区域中的轮数,n_W为清理区域中的轮数。设2T_DEC为解码提交区域和清理区域的时间。文献(Skoric等人,2023)表明,如果N_par满足以下条件,可以避免指数积压问题:

Npar≥2TDEC(ncom+nW)(Tl+Ts)N_{par} \geq \frac{2T_{DEC}}{(n_{com} + n_W)(T_l + T_s)}Npar(ncom+nW)(Tl+Ts)2TDEC

上述关于并行窗口解码的讨论纯粹集中在时间域。执行格点手术时,合并表面码补丁的有效距离d_eff可以非常大(例如见图9(a))。解码d_eff ≫ d的表面码补丁可能导致T_DEC时间过大而不实用。然而,提交/缓冲和清理区域也可以在时间域之外的空间域使用。图9(b)提供了一个示例。在此类设置中,提交区域及其对应的缓冲区域具有空间和时间分量,都可以并行解码。空间清理区域对应于在执行提交区域校正后需要校正的格点残余部分。类似于提交区域,清理区域具有空间和时间分量,也并行解码。凭借足够的空间提交/清理区域并行资源,即使d_eff ≫ d,格点手术的T_DEC也可以与纯内存设置中距离d的编码的T_DEC时间相当。

我们以评论GPU特别适合并行窗口解码协议来结束本节。解码可以被视为一个推理问题,其中每个提交/缓冲区域对应于输入批量大小的一个元素(清理区域 similarly)。在基于AI的解码器背景下,如果GPU有足够的内存来存储模型,每个批量元素原则上可以并行处理。虽然基于AI的解码器难以扩展到 large 码距(Bausch等人,2024),但基于AI的预解码器已被证明可以扩展到非常大的码距(Chamberland等人,2023;Gicev等人,2025)。预解码器校正大多数局部错误链(这些是拓扑码中错误的主要来源),因此可用于显著加速全局算法解码器。NVIDIA当前正在进行的工作是构建预解码器,可以加速算法解码器一个数量级以上,AI模型在GPU上具有高效实现(Olle等人)。由于现代GPU可以高效处理大批量,获得满足公式(2)的N_par变得更加 straightforward。

6.3 QPU校准

在未来大规模量子计算机的整个硬件栈中,将有许多编译时和运行时决策必须在线做出,无需用户干预,以决定诸如校准工作流的遍历方向(给定测量数据)、特定表征协议应映射到本地控制FPGA还是主机CPU,以及如何解码一组错误综合征以及使用哪种计算资源。特别地,具有紧耦合CPU和GPU计算的控制系统将显著改善条件校准工作流的开发和实现,这些工作流利用深入表征程序在存在多种噪声源和时间依赖漂移的情况下启动和维护物理量子比特。

最近的工作详细介绍了从未校准状态启动一组量子比特然后使用条件、有向、无环校准图维护其性能的方法(Kelly等人,2018)。在此前提下,QPU开发人员设计由图结构描述的校准流,运行实验,分析其测量输出以确定被测参数是否在其所需规范内,然后根据系统当前状态确定下一个要运行的校准步骤。单个校准步骤可以很简单,从扫描控制频率以确定量子比特的共振,到利用门集断层扫描(Nielsen等人,2021)或随机基准测试(Knill等人,2008;Magesan等人,2011)等表征技术生成信息参数更新的更复杂例程。这些表征例程(在第6.4节中更详细讨论)可以为设计鲁棒实验、在QPU上快速高效地运行复杂电路以及拟合结果引入更多的计算复杂性。像NVQLink这样能够更容易编程这些校准图结构的架构将使QPU开发团队能够更快地启动其设备并保持高性能,而无需投入过多开销来开发启用此功能的固件和软件系统。

对于简单校准例程,所需的分析可能涉及简单的峰值检测或曲线拟合,而更复杂的例程可能需要复杂的表征。例如,即使对两个量子比特运行门集断层扫描也可能需要运行数千个量子电路,以及计算量大的优化例程,在桌面CPU上解决需要数小时。这通常不允许快速反馈,而快速反馈对校准很有用。已有在FPGA中硬件加速实现较小表征例程(如量子态断层扫描)的演示(Miller等人,2023),但即使此协议也遇到了小型FPGA LUT和DSP资源的限制。将校准例程卸载到紧耦合HPC系统可以实现使用更多计算资源,显著缩短表征和校准所需的时间,而不会引入过多延迟。

6.4 QCVV和基准测试

量子计算机今天的计算能力受到噪声和控制错误的严重限制。噪声表征和校准实验对于理解这种噪声和最大化这些设备的能力至关重要。量子表征、验证和确认(QCVV)实验,如门集断层扫描(Nielsen等人,2021)或随机基准测试(Knill等人,2008;Magesan等人,2011),是改进硬件性能的宝贵工具,但在实验上具有挑战性,很容易超出经典控制系统的能力。这些协议可以包含数百或数千个独特的量子电路,有时可以利用随机门(Magesan等人,2011;Wallman和Emerson,2016),并且可能需要根据测量结果进行自适应设计(Proctor等人,2020)。电路可能需要基于测量结果进行自适应设计(Marceaux和Young,2023)并以低延迟调度到QPU。校准实验必须进一步修改低级脉冲参数(Rudinger等人,2025),频率可能高达每次电路执行后甚至单个电路内。现有的经典控制基础设施往往无法胜任此任务。

满足这些苛刻要求的一个主要障碍是依赖主机驱动的任意波形发生器(AWG)进行脉冲生成。在这种传统架构中,每个控制通道由任意波形发生器驱动,其输出在主机计算机上预计算,上传到仪器的板载内存,并在电路执行期间逐字播放。由于AWG内存有限,完整的QCVV电路集通常无法一次存储,需要将实验分成小批量。对于每批,所有波形必须编译、传输到仪器并顺序执行。这种分批禁止遍历完整电路列表,其中从每个电路依次取一次快照,重复直到达到所需的总快照数。数据采集的遍历揭示时间相关性,可以减少由于漂移导致的误差估计偏差,但分批使其不可能。这些缺点因涉及的上传时间长而加剧。传输成百上千批电路的波形需要几分钟到几小时。此类延迟不仅导致大量量子停机时间,而且使实验过程碎片化,难以在特定时间点捕获设备性能的精确快照。

下表总结了四类QCVV实验的控制器资源需求:传统"静态"QCVV、自适应QCVV、单发校准和使用深度强化学习的校准。每种都对控制器子系统的不同组合施加压力。

应用控制器内存计算吞吐量实时互连延迟主机连接延迟实时脉冲更新控制流灵活性
传统"静态"QCVV
自适应/在线QCVV
校准(单发)
校准(RL)

传统"静态"QCVV协议包括常见实验,如随机基准测试和门集断层扫描(GST),涉及构建可能数百甚至数千个电路的实验,这些电路经过特殊结构化以学习量子处理器的一个或多个属性,例如门或SPAM保真度,大多数计算分析在主机系统上执行后处理。虽然这些实验不严重依赖对实时计算资源的访问,但它们经常使可用内存资源紧张,特别是在较旧的基于AWG的控制器中。基于FPGA或RFSoC的实时控制器能够基于少比特关键词即时生成波形。在这些情况下,控制工作流中增加的灵活性显著减少了控制器内存需求和与主机系统的延迟需求(Xu等人,2023)。

自适应QCVV实验——旨在实时学习量子处理器特性并具有动态构建实验设计的实验——和实时校准协议对控制硬件要求更高。它们需要控制器和主机之间的近实时互连,以实现逐次快照更新控制参数,甚至单次内更新。即使轻微的延迟也会阻碍反馈回路的性能并使分支控制逻辑的执行复杂化。同时,实时决策所需的计算吞吐量在这些任务之间差异很大。例如,简单的快速反馈例程可能只需要基本算术和最小内存,但当控制器集成复杂算法(如基于深度强化学习或需要解码QEC综合征数据的算法)时,它们越来越多地对控制系统的每个方面施加压力。

基于FPGA或RFSoC的现代实时控制器将数字波形合成和排序直接集成在硬件中。它们不上传大波形缓冲区,而是实时生成参数化脉冲,实现自适应控制、反馈和细粒度同步,而不会出现主机端编译和传输的瓶颈,也没有存储预编译波形的内存需求。控制工作流中这种增加的灵活性显著减少了控制器内存需求和与主机系统的延迟需求(Xu等人,2023)。进一步整合到低延迟互连到快速经典协处理可以支持甚至最苛刻的自适应校准和表征例程。像NVQLink这样的分层异构控制架构非常适合满足这些需求,将轻量级计算任务(如基本算术或小型神经网络推理)卸载到FPGA硬件进行快速处理。更复杂的任务,包括统计模型或大型神经网络的训练和推理,通过延迟稍高的连接在CPU或GPU节点上处理。

从主机控制的AWG控制器转向这些低延迟架构不仅将允许现有QCVV和校准例程按预期运行,而且还将鼓励开发和部署新类别的协议,使硬件开发人员和用户能够以越来越精细的分辨率和速度探测和缓解错误。


7. 开发和仿真

虽然NVQLink架构的主要动机是支持规模化量子计算,但我们认识到任何平台的效用都强烈取决于在该平台上开发和维护软件的能力。本节描述了支持量子程序开发和验证的离线工具,这些工具在实时执行路径之外,使开发人员能够在部署到物理硬件之前测试和改进量子程序。

CUDA-Q(CUDA-Q开发团队,2025)提供逻辑级电路仿真器(状态向量、密度矩阵、张量网络)(cuQuantum开发团队,2024)以支持量子计算研究和应用开发(NVIDIA Corporation,CUDA-QX开发团队,2025)。

除此逻辑层之外,我们区分了物理硬件仿真的两个互补能力:VPPU,它仿真PPU指令级行为以实现对编译量子程序的离线测试;以及PQPU仿真器,它们在Hamiltonian级建模量子动力学以提供对物理实现保真度的洞察。这些工具在不同的架构层运行——VPPU在PPU编译器和指令集架构(ISA)级运行,PQPU仿真器在量子态演化级运行。

VPPU抽象在第7.1小节中介绍,我们在第7.2小节中包含了一些关于PQPU仿真作用的说明。

此处特别关注的一个重要用例是QEC编码程序的仿真,我们在第7.3小节中讨论。

7.1 虚拟脉冲处理单元

为紧耦合系统开发和验证量子程序呈现了一个根本性挑战:编译程序必须针对具有精确时序约束的PPU特定指令集,但验证这些程序传统上需要部署到物理硬件。

这给开发带来了瓶颈,因为对量子控制逻辑、实时协议(QEC解码、自适应校准)和脉冲序列的迭代需要持续访问硬件。

VPPU通过提供可替代的PPU仿真器解决了这一挑战,该仿真器使离线程序验证能够在PTD中进行。最近的原型尝试(Ye和Khoo,2025)在实现完整管道验证方面显示出前景。

通过将ISA指令转换为用于物理QPU仿真的适当信号表示(例如PQPU控制Hamiltonian中的V(t),其中t在PTD中演化),VPPU允许开发人员在提交物理执行之前测试指令序列、验证时序约束和调试脉冲调度,从而加速量子程序和实时经典协议的开发周期。

如第2.1小节中所定义,VPPU必须可替代物理PPU。这种可替代性确保为物理硬件编译的量子程序可以不经修改地进行离线测试和验证。VPPU实现通过实现运行时架构(第4.1小节)中定义的quantum_control_trait接口来实现这一点,呈现与其对应物理PPU设备相同的编程接口。

如果提供,VPPU实现必须:

  • 完整实现目标PPU的指令集(ISA)
  • 将ISA控制指令转换为可用于PQPU动力学仿真的信号表示
  • 仿真PQPU读出:将PQPU仿真中的信号表示转换为正确的PPU数据格式
  • 保持与PPU编译器的兼容性
  • 支持与其物理PPU或QSC相同的特性接口

VPPU产生的信号表示支持编译脉冲序列的离线检查和可视化。开发人员可以分析时序关系、识别潜在的资源冲突,并在部署到物理硬件之前验证脉冲调度逻辑。此能力对于调试复杂的多量子比特操作和验证编译程序满足目标QPU模态的时序约束特别有价值。

VPPU实现维护将ISA指令转换为PTD中信号表示的接口。为了实现此输出,实现者可以选择各种方法——从简单波形的查找表到完整量子动力学仿真。某些VPPU实现可能使用物理QPU仿真器(第7.2小节)作为计算后端,用于从ISA指令计算例如V(t),但这完全是对调用代码不可见的实现选择。VPPU接口严格保持在PPU指令级(ISA → V(t)),保持与Hamiltonian级仿真的清晰架构分离。基于强化学习的校准(第6.3小节)或QEC解码器训练(第7.3小节)等高级优化任务是独立工具,可能使用VPPU作为库组件。

7.2 物理QPU仿真

物理QPU仿真器是在Hamiltonian级建模量子动力学的计算工具,通常在量子态向量或密度矩阵上操作。虽然VPPU仿真PPU指令执行(ISA → V(t)),但PQPU仿真器建模基本量子态演化(Hamiltonian → |ψ⟩),其中控制Hamiltonian中的时间变量t在PTD中演化。

PQPU仿真器可以作为VPPU实现的后端,以在物理噪声下提供量子态保真度建模,作为物理参数表征和优化的工具,或作为独立的研究工具。虽然它们不需要在RTD中作为实时应用程序运行,但我们预计实际上它们将在实时主机上以分时模式得到有用的支持。

7.3 QEC仿真

量子程序的仿真对量子算法研究和开发至关重要,在量子纠错(QEC)研究中也是如此。然而,QEC协议对仿真提出了独特需求,与传统算法工作负载相比强调不同维度。

与量子算法一样,仿真QEC例程允许研究人员验证和优化新提案。这些研究中的一个关键焦点是特定协议的逻辑错误率。例如,量子内存实验可能涉及准备逻辑量子态并执行重复的纠错轮次以将逻辑量子比特的寿命延长到其组成物理量子比特之外。此类过程可以仿真,其中结果逻辑错误率取决于三个主要因素:量子电路、噪声模型和解码器。理解这些因素中的每一个如何影响逻辑量子比特保真度是寻求设计下一代容错量子架构的研究人员的中心任务。

虽然QEC仿真的效用相当大,但这些协议的结构对传统方法提出了挑战。因为逻辑量子比特编码到许多物理量子比特中,QEC仿真在使用密度矩阵(DM)或态向量(SV)仿真等技术时扩展性不佳。当纠缠保持稀疏时,张量网络(TN)仿真器可以处理更大的量子比特数,但QEC电路通常采用多层双量子比特门,很快达到TN效率的极限。此外,QEC工作流中常见的频繁中途测量进一步复杂化了这些仿真方法。

一个主要的机会在于QEC的许多部分涉及Clifford操作,可以使用稳定子仿真器(如Stim(Gidney,2021))高效仿真。Stim使研究人员能够探索电路、噪声模型和解码器的相互作用:QEC研究的三个基本组件。其设计擅长离线解码工作负载,其中生成大量模拟快照批次,然后解码以评估协议性能。Stim的电路语言针对此情况优化并优先执行速度,尽管它不支持条件门应用。

跨越这些仿真方法的差距是无法建模完整QEC工作流,包括魔态蒸馏和基于中途解码结果的条件门执行等场景。解决这一差距是NVQLink架构的关键动机,该架构通过cudaq::device_call接口支持此类工作流。可以编写库代码以在真实QPU执行和仿真仿真模式之间无缝切换。

列表16:入队综合征包装函数。

__qpu__ void
enqueue_syndromes(std::uint64_t decoder_id,
                  const std::vector<cudaq::measure_result> &syndromes,
                  std::uint64_t tag) {
#ifdef LIBSIM
  cudaq::device_call(enqueue_syndromes_simulation, decoder_id, syndromes, tag);
#else
  uint64_t syndrome_size = syndromes.size();
  uint64_t syndrome = cudaq::to_integer(syndromes);
  cudaq::device_call(enqueue_syndromes_ui64, decoder_id, syndrome_size,
                     syndrome, tag);
#endif
}

在列表16中,我们展示了发送测量数据到解码器的示例。当库以-DLIBSIM编译时,enqueue_syndromes函数生成针对仿真优化的二进制,通过直接使用std::vector的size字段消除了将测量数据打包到整数的需要。当针对真实硬件时,开发人员显式打包测量结果并指定综合征比特数。示例中显示了两种情况,使相同的应用程序代码可以在针对实验控制系统之前仿真下验证。

通过将解码器调用和条件门逻辑直接纳入应用程序代码,此设计还跨仿真策略泛化。例如,对于非常接近Clifford的场景的扩展稳定子仿真,或当量子比特数低但需要高级噪声建模时回到态向量仿真。基于稳定子的仿真将服务于许多QCE工作负载的自然起点,但以此风格编写的CUDA-Q内核可以重新定位到任何仿真策略或硬件后端,只要通过适当的cudaq::device_call绑定定义了必要的数据传输语义。


8. 结论

我们提出了NVQLink,一种将高性能经典计算与量子处理器控制系统紧密集成的平台架构。该架构定义了一个逻辑QPU模型,包括通过低延迟实时互连连接的CPU、GPU和PPU,并区分了四个时间域——物理(PTD)、确定性(DTD)、实时(RTD)和应用(ATD)——以推理正确性、延迟预算和其他性能需求。

基于RoCE的概念验证展示了使用商用网络设备和GPU驻留环回路径的亚4微秒稳态往返延迟,表明了在保持低抖动的同时扩展基数和带宽的实用途径。

我们展示了CUDA-Q的拟议扩展,具有设备可寻址的实时回调(cudaq::device_call)和异构内存抽象(cudaq::device_ptr),使量子内核能够调用实时加速计算,并进行编译器管理的编排。

我们概述了跨延迟模式的编译策略——用于短时标模态的脉冲/ISA的AOT降级与RDMA和持久内核,以及用于较长时标模态的具有JIT的主机介导流式传输——通过Quake/CC MLIR和统一降级表达。

我们提出的运行时架构提供了一种零开销、基于特性的模型,用于组合设备能力——显式数据编排、设备回调、量子控制(quantum_control_trait)和RDMA——以及编译量子内核的表示、可插拔编译器/执行器,以及用于在物理PPU和可替代VPPU上分配、传输和启动的逻辑QPU驱动程序API。

我们调查了QPU级工作负载,包括T态蒸馏的示例,展示了GPU批量推理和预解码器如何减少积压并与RTD约束对齐。对于校准和QCVV,我们展示了如何从主机驱动的AWG播放转向参数化实时控制与GPU/CPU协处理,如何启用自适应协议、短周期漂移缓解和单次内前馈。

最后,我们描述了开发工具:VPPU作为PPU ISA边界的即插即用仿真器、用于Hamiltonian级研究的PQPU仿真器,以及用于逻辑级测试的CUDA-Q仿真器——允许相同的源代码通过device_call在仿真和硬件之间重新定位。

我们邀请QPU和QSC构建者、HPC中心和研究人员评估我们的提案并与我们沟通。我们的意图是在QPU域中实现实时加速计算的务实、开放路径,从今天的产品扩展到容错系统。


致谢

作者感谢以下个人在准备本文材料时提供的有益讨论和反馈:

Owen Arnold, Simeon Baker-Finch, Francesco Battistel, Gilad Ben-Shach, Matthew Bradley, Gustavo Cancelo, Sergio Cantu, Arnaud Carignan-Dugas, Yonatan Cohen, Coleman Collins, Niccolo Coppola, Erik Davis, Patrick Deuley, Nicolas Didier, Mengke Feng, Brett Freeman, Louis Fry-Bouriaux, Joanna Fulton, Pranav Gokhale, Eric Holland, Andrew Houck, Matthew Hutchings, Jerome Javelle, Ronan Jezequel, Gwen Johnson, Glenn Jones, Ryan Jones, William Kindel, Shuyi Liu, Jie Luo, Jeffrey Marshall, Josh Moles, Yasunobu Nakamura, Tom Noel, Thomas Ohki, Simon Philips, Laurent Prost, Matthew Reagor, David Reilly, Hengjiang Ren, David Rivas, Yoav Romach, Christoph Rühle, Colm Ryan, Kentaro Sano, Andre Saraiva, Mitsuhisa Sato, Laura Schulz, Michael Sorenson, Ramon Szmuk, Ryousei Takano, Brian Tarasinski, Jeff Thompson, Sho Uemura, Oded Wertheim, Evan Zalys-Geller, David van Zanten, Avishai Ziv.

还要感谢美国能源部科学办公室国家量子信息科学研究中心量子系统加速器在空军合同号FA8702-15-D-0001下的支持。这些结果部分基于美国能源部科学办公室国家量子信息科学研究中心量子科学中心支持的工作。本文表达的任何意见、发现、结论或建议仅代表作者(们)的观点,不一定反映能源部的观点。

Y.J.感谢新加坡国家研究基金会国家量子计算办公室及其国家量子计算中心和混合量子-经典计算1.0计划的支持。A*STAR在C23091703和Q.InC战略研究与转化推进方面的资金支持。

Y.X.、G.H.、I.S.感谢美国能源部科学办公室高级科学计算研究(ASCR)量子试验台计划根据合同号DE-AC02-05CH11231的支持。

桑迪亚国家实验室是一个多任务实验室,由桑迪亚国家技术工程解决方案有限责任公司管理运营,该公司是霍尼韦尔国际公司的全资子公司,为美国能源部国家核安全管理局根据合同DE-NA0003525运营。本文描述客观的技术结果和分析。本文表达的任何主观观点或意见不一定代表美国能源部或美国政府的观点。


参考文献

(以下参考文献按原文顺序列出,保留原文作者、标题、期刊/会议、年份和DOI信息)

  1. Mohseni et al. (2024). How to Build a Quantum Supercomputer: Scaling Challenges and Opportunities. arXiv:2411.10406.

  2. Burgholzer et al. (2025). The Munich Quantum Software Stack: Connecting End Users, Integrating Diverse Quantum Technologies, Accelerating HPC. arXiv:2509.09954.

  3. Eric Mansfield, Stefan Seegerer, Panu Vesanen, Jorge Echavarria, Burak Mete, Muhammad Nufail Farooqi, and Laura Schulz. First Practical Experiences Integrating Quantum Computers with HPC Resources: A Case Study With a 20-qubit Superconducting Quantum Computer. arXiv:2509.12949.

  4. Buchs et al. (2025). The role of quantum computing in advancing scientific high-performance computing: A perspective from the adac institute. arXiv:2508.11765.

  5. Shapourian et al. (2025). Quantum Data Center Infrastructures: A Scalable Architectural Design Perspective. arXiv:2501.03415.

  6. Camps et al. (2024). Evaluation of the Classical Hardware Requirements for Large-Scale Quantum Computations. ISC High Performance 2024. doi: 10.23919/ISC.2024.10528937.

  7. Klimov et al. (2024). Optimizing quantum gates towards the scale of logical qubits. Nature Communications, 15, 2442. doi: 10.1038/s41467-024-46623-y.

  8. Yoder et al. (2025). Tour de gross: A modular quantum computer based on bivariate bicycle codes. arXiv:2506.03094.

  9. Google Quantum AI and Collaborators et al. (2024). Quantum error correction below the surface code threshold. Nature. doi: 10.1038/s41586-024-08449-y.

  10. Pino et al. (2021). Demonstration of the trapped-ion quantum-CCD computer architecture. Nature, 592, 209-213. doi: 10.1038/s41586-021-03318-4.

  11. Bluvstein et al. (2024). Logical quantum processor based on reconfigurable atom arrays. Nature.

  12. Radnaev et al. (2025). Hardware-efficient quantum error correction via concatenated bosonic qubits. Nature, 638, 927-934. doi: 10.1038/s41586-025-08642-7.

  13. Veldhorst et al. (2017). A two-qubit logic gate in silicon. Nature, 526, 410-414.

  14. Boter (2022). Spin-qubit quantum computing in silicon and germanium. PhD thesis, Delft University of Technology.

  15. Bartolucci et al. (2023). Fusion-based quantum computation. Nature Communications, 14, 4379.

  16. Pattison et al. (2021). Improved quantum error correction with soft information.

  17. Hanisch et al. (2024). Using neural networks to decode surface code with soft information.

  18. Bausch et al. (2024). Learning quantum error correction with neural networks.

  19. Akahoshi et al. (2025). Enhancing quantum error correction with soft-information decoding.

  20. Terhal (2015). Quantum error correction for quantum memories. Reviews of Modern Physics, 87, 307-346.

  21. Bravyi et al. (2016). Tradedoffs for reliable quantum information storage in surface codes and color codes.

  22. Horsman et al. (2012). Surface codes: Towards practical large-scale quantum computation. Physical Review Letters, 108, 120504.

  23. Litinski (2019). A Game of Surface Codes: Large-Scale Quantum Computing with Lattice Surgery. Quantum, 3, 128.

  24. Smith and Sohi (1995). The microarchitecture of superscalar processors. Proceedings of the IEEE, 83, 1609-1624.

  25. Panteleev and Kalachev (2021). Degenerate quantum LDPC codes with good finite length performance. Quantum, 5, 585.

  26. Wu and Zhong (2023a). Fusion Blossom: Fast MWPM Decoders for QEC. IEEE International Conference on Quantum Computing and Engineering.

  27. Higgott and Gidney (2025). Sparse blossom: correcting a million errors per core second with minimum weight matching.

  28. Chan (2024). Algorithmic improvements for quantum error correction. PhD thesis, University of Waterloo.

  29. Hillmann et al. (2024). Scalable quantum error correction with rotated surface codes.

  30. Ziad et al. (2024). Towards a general-purpose neutral atom quantum computer.

  31. Gong et al. (2024). A benchmark study of quantum error mitigation with neural networks.

  32. Beni et al. (2025). Decoding surface codes with deep learning.

  33. Müller et al. (2025). Decoding quantum LDPC codes with neural networks.

  34. Wang et al. (2025). Real-time quantum error correction with AI decoders.

  35. Wolanski and Barber (2025). Benchmarking neural network quantum decoders.

  36. Zhang et al. (2025). Towards practical quantum error correction with machine learning.

  37. Turner et al. (2025). Scalable decoding of topological quantum codes.

  38. Barber et al. (2025). Quantum error correction with neural decoders: a comprehensive study.

  39. Blue et al. (2025). AlphaQubit: Large-scale quantum error correction with neural networks.

  40. Lange (2025). AI-powered quantum error correction. PhD thesis, Technical University of Munich.

  41. Mi and Mueller (2025). Transformer-based decoders for quantum error correction.

  42. Hu et al. (2025). Graph neural networks for quantum error correction.

  43. Cao et al. (2023). Machine learning for quantum error correction: a review.

  44. Liu et al. (2025). Reinforcement learning for adaptive quantum error correction.

  45. Varbanov et al. (2025). Neural network decoders for near-term quantum devices.

  46. Gicev et al. (2025). GPU-accelerated AI decoders for quantum error correction.

  47. Putterman et al. (2025). Breaking even with magic: Demonstration of a high-fidelity logical non-Clifford gate.

  48. Sivak et al. (2023). Real-time quantum error correction beyond break-even. Nature, 616, 50-55. doi: 10.1038/s41586-023-05782-6.

  49. Brock et al. (2025). Quantum error correction of qudits beyond break-even. Nature, 641, 612-618. doi: 10.1038/s41586-025-08899-y.

  50. Ryan-Anderson et al. (2021). Realization of Real-Time Fault-Tolerant Quantum Error Correction. Physical Review X, 11, 041058. doi: 10.1103/PhysRevX.11.041058.

  51. da Silva et al. (2024). Demonstration of logical qubits and repeated error correction with better-than-physical error rates.

  52. Dasu et al. (2025). Breaking even with magic: Demonstration of a high-fidelity logical non-Clifford gate.

  53. Yamamoto et al. (2025). Quantum Error-Corrected Computation of Molecular Energies.

  54. Bedalov et al. (2024). Fault-Tolerant Operation and Materials Science with Neutral Atom Logical Qubits.

  55. Rines et al. (2025). Demonstration of a Logical Architecture Uniting Motion and In-Place Entanglement: Shor’s Algorithm, Constant-Depth CNOT Ladder, and Many-Hypercube Code.

  56. Reichardt et al. (2025). Fault-tolerant quantum computation with a neutral atom processor.

  57. Muniz et al. (2025). Repeated ancilla reuse for logical computation on a neutral atom quantum computer.

  58. Caune et al. (2024). Demonstrating real-time and low-latency quantum error correction with superconducting qubits.

  59. Maurer et al. (2025). Real-time decoding of the gross code memory with FPGAs.

  60. Battistel et al. (2023). Real-Time Decoding for Fault-Tolerant Quantum Computing: Progress, Challenges and Outlook. Nano Futures, 7, 032003. doi: 10.1088/2399-1984/aceba6.

  61. Kurman et al. (2024a). Controller-decoder system requirements derived by implementing Shor’s algorithm with surface code.

  62. Kurman et al. (2024b). Benchmarking the ability of a controller to execute quantum error corrected non-Clifford circuits.

  63. Riverlane (2024). GPUs, ASICs or FPGAs? Here’s how they measure up for quantum error correction. Riverlane Blog.

  64. Liyanage et al. (2024). FPGA-based distributed union-find decoder for surface codes. IEEE Transactions on Quantum Engineering.

  65. Tan et al. (2023). Scalable Surface-Code Decoders with Parallelization in Time. PRX Quantum, 4, 040344. doi: 10.1103/PRXQuantum.4.040344.

  66. Bravyi et al. (2024). High-threshold and low-overhead fault-tolerant quantum memory. Nature, 627, 778-782.

  67. Derks et al. (2024). Designing fault-tolerant circuits using detector error models.

  68. Wu and Zhong (2023b). Fusion Blossom: Fast MWPM Decoders for QEC. IEEE International Conference on Quantum Computing and Engineering.

  69. Wu (2023). Fusion Blossom: A Python Package for Quantum Error Correction Decoding.

  70. Skoric et al. (2023). Parallel window decoding enables scalable fault tolerant quantum computation.

  71. Chamberland et al. (2023). Techniques for optimizing fault-tolerant quantum circuits.

  72. Chamberland and Campbell (2022a). Universal quantum computing with twist-free and temporally encoded lattice surgery. PRX Quantum, 3, 010331.

  73. Bravyi and Kitaev (2005). Universal quantum computation with ideal Clifford gates and noisy ancillas. Physical Review A, 71, 022316.

  74. Gidney et al. (2024). Magic state cultivation: growing T states as cheap as CNOT gates.

  75. Kelly et al. (2018). Physical qubit calibration on the surface code. Nature Physics, 14, 565-569.

  76. Nielsen et al. (2021). Gate set tomography. Quantum, 5, 557.

  77. Knill et al. (2008). Randomized benchmarking of quantum gates. Physical Review A, 77, 012307.

  78. Magesan et al. (2011). Characterizing quantum gates via randomized benchmarking. Physical Review A, 83, 012308.

  79. Miller et al. (2023). Hardware-accelerated quantum state tomography on FPGA.

  80. Marceaux and Young (2023). Adaptive quantum characterization.

  81. Proctor et al. (2020). Measuring the capabilities of quantum computers. Nature Physics, 16, 1060-1064.

  82. Wallman and Emerson (2016). Noise tailoring for scalable quantum computation via randomized compiling. Physical Review A, 94, 052325.

  83. Rudinger et al. (2025). Characterizing and calibrating quantum devices with adaptive protocols.

  84. The CUDA-Q development team (2025). CUDA-Q: A platform for integrated quantum-classical computing. NVIDIA.

  85. The cuQuantum Development Team (2024). cuQuantum: SDK for accelerating quantum computing workflows. NVIDIA.

  86. NVIDIA Corporation, CUDA-QX Development Team (2025). CUDA-QX: Extensions for quantum computing research. NVIDIA.

  87. Ye and Khoo (2025). VPPU: Virtual pulse processing unit for quantum control validation.

  88. Xu et al. (2021). QICK: Quantum instrument control kit. arXiv:2110.00557.

  89. Xu et al. (2023). Real-time quantum control with the QICK. Review of Scientific Instruments, 94, 114711.

  90. Liu (2023). Cryogenic control electronics for quantum computing. PhD thesis, MIT.

  91. Underwood et al. (2023). Cryogenic CMOS for quantum computing control. Nature Electronics, 6, 234-242.

  92. Bartee et al. (2025). Deep cryogenic control systems for scalable quantum computing.

  93. Gidney (2025). Halving the cost of quantum addition. Quantum, 2, 74.

  94. Gidney and Ekerå (2021). How to factor 2048 bit RSA integers in 8 hours using 20 million noisy qubits. Quantum, 5, 433.

  95. ope (2025). Open quantum ecosystem for HPC integration. Quantum Computing Report.

  96. gpu (2025). DOCA GPUNetIO: GPU-accelerated networking for data center applications. NVIDIA.

  97. hsb (2025). NVIDIA Holoscan Sensor Bridge for real-time sensor processing. NVIDIA.

  98. Gidney (2021). Stim: a fast stabilizer circuit simulator. Quantum, 5, 497.

  99. Chamberland and Campbell (2022b). Universal quantum computing with twist-free and temporally encoded lattice surgery. PRX Quantum, 3, 010331.

  100. Chamberland et al. (2018). Optimal ancilla-free Clifford+T approximation of z-rotations. Quantum, 2, 60.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值