2. 量子计算栈与Benchmark对象

量子计算不是“一块芯片”的孤立性能问题,而是一条从应用意图到物理读出的完整栈。Benchmark 工程的第一件事,是把这条栈拆成可观测、可注入、可复现的层次,并明确每层的“被测对象”和“接口契约”。如果层次划分不清,测出来的数字往往无法归因:一个算法失败,可能是编译映射差、控制脉冲失真、硬件退相干、读出串扰,也可能是应用层问题建模本身有误。

六层栈的职责与可测对象

从上层到下层,量子计算栈通常可划分为:应用层、编译层、控制层、脉冲层、硬件层、读出层。注意读出层在物理上依附于硬件,但在 Benchmark 中必须独立成层,因为读出保真度、判别阈值和串扰会直接污染上层所有指标。

  • 应用层:被测对象是量子线路/算法语义,如 QAOA 的代价哈密顿量、VQE 的拟设、量子傅里叶变换的输入态。可测指标包括线路深度、双比特门数量、期望值误差、成功概率。接口是“量子线路 IR + 测量基 + shots”。
  • 编译层:被测对象是映射与优化策略,包括初始布局、SWAP 插入、门分解、路由。可测指标为编译后 CNOT 数、深度、映射保真度估计。接口是“逻辑线路 → 物理线路 + 布局表”。
  • 控制层:被测对象是波形生成与调度,如 AWG 采样率、混频器本振、门时序对齐。可测指标为控制延迟、通道间偏斜、相位误差。接口是“物理门序列 → 模拟/数字波形”。
  • 脉冲层:被测对象是具体脉冲包络,如 DRAG 参数、高斯宽度、微分系数。可测指标为单门保真度、泄漏率、脉冲面积误差。接口是“波形 → 微波/激光激励”。
  • 硬件层:被测对象是量子比特与耦合器,如 T1、T2、读出频率、耦合强度。可测指标为相干时间、门错误率、串扰矩阵。接口是“物理激励 → 量子态演化”。
  • 读出层:被测对象是测量链路,如谐振腔频率、放大链噪声、判别器。可测指标为读出保真度、QND 性、测量串扰。接口是“量子态 → 经典比特串”。

这六层不是简单串联,而是存在反馈:读出结果会用于校准脉冲,编译布局依赖硬件连通图,应用层指标又反过来约束编译策略。因此 Benchmark 必须区分“层内指标”和“端到端指标”。

量子计算栈:六层对象、接口与端到端瓶颈 应用层 对象:量子线路/算法语义 · 指标:期望值误差、成功概率 · 接口:线路IR + 测量基 + shots 瓶颈:问题建模与采样成本 编译层 对象:映射/路由/门分解 · 指标:CNOT数、深度、映射保真度 · 接口:逻辑线路 → 物理线路 + 布局表 瓶颈:连通性约束与SWAP开销 控制层 对象:波形生成与调度 · 指标:控制延迟、通道偏斜、相位误差 · 接口:物理门序列 → 模拟/数字波形 瓶颈:时序对齐与通道间同步 脉冲层 对象:脉冲包络/DRAG参数 · 指标:单门保真度、泄漏率、面积误差 · 接口:波形 → 微波/激光激励 瓶颈:脉冲失真与泄漏控制 硬件层 对象:量子比特/耦合器 · 指标:T1、T2、门错误率、串扰矩阵 · 接口:物理激励 → 量子态演化 瓶颈:退相干与串扰 读出层 对象:谐振腔/放大链/判别器 · 指标:读出保真度、QND性、测量串扰 · 接口:量子态 → 经典比特串 瓶颈:判别阈值与测量串扰 读出反馈校准 端到端瓶颈 = 各层误差累积 × 接口失配 × 反馈延迟

接口契约:Benchmark 可复现的关键

每层之间的接口必须用机器可读的格式固定下来,否则同一份“量子线路”在不同工具链上会得到不同物理线路,指标不可比。以超导平台为例,一个可用的接口契约至少包含:

  • 应用→编译:逻辑线路(OpenQASM 3 或 QIR)、测量基、shots、优化等级。
  • 编译→控制:物理线路、量子比特映射表、门时序约束(如“CNOT 仅允许 0-1、2-3”)。
  • 控制→脉冲:通道编号、采样率、本振频率、脉冲包络参数、对齐方式。
  • 脉冲→硬件:微波/激光功率、相位、持续时间、触发同步信号。
  • 硬件→读出:读出频率、积分窗口、判别阈值、分类器模型。

接口一旦固定,Benchmark 就可以做“单层替换”:保持其他层不变,只替换编译策略或脉冲参数,观察端到端指标变化,从而定位瓶颈层。

端到端性能瓶颈的识别方法

端到端指标通常包括:算法成功率、期望值误差、线路执行时间、总 shots 消耗。瓶颈识别的基本方法是误差预算分解:把端到端误差拆成各层贡献,再比较哪一层占比最大。

例如,一个 4 比特 QAOA 示例(以下为教学假设参数,非实测):目标期望值误差 ≤ 0.05。分解后得到:读出误差贡献 0.018,双比特门错误贡献 0.022,编译 SWAP 引入的额外门贡献 0.009,控制相位偏斜贡献 0.004。此时瓶颈在“双比特门错误”和“读出误差”,应优先优化脉冲层和读出层,而不是继续调编译。

具体操作上,可以按以下顺序做分层扫描:

  1. 读出层标定:用 |0⟩ 和 |1⟩ 各 10000 shots,统计判别错误率,得到读出保真度 F_readout。若 F_readout < 0.97,先修读出。
  2. 硬件层标定:测 T1、T2、单比特随机基准(RB)、双比特 RB。若双比特 RB 错误率 > 1%,优先调脉冲。
  3. 脉冲层扫描:固定硬件,扫描 DRAG 系数 β 从 -0.5 到 0.5,观察泄漏率与门保真度,选最优 β。
  4. 编译层对比:固定物理线路深度,比较不同初始布局的 CNOT 数,选最小者。
  5. 应用层回归:在以上优化后重跑端到端任务,确认期望值误差是否达标。
Benchmark 报告必须写明每层使用的标定版本、脉冲参数、编译策略和读出阈值。缺少任一层的版本信息,端到端数字就不可复现。

一个可复用的分层 Benchmark 记录表

下表给出一个最小可用的记录结构,字段直接对应六层对象,便于在实验中逐层填写。示例值仍为教学假设。

层次被测对象关键参数/指标示例值判定阈值
应用层QAOA 线路期望值误差0.043≤ 0.05
编译层映射+路由CNOT 数 / 深度28 / 41≤ 32 / ≤ 50
控制层AWG 通道通道偏斜12 ps≤ 20 ps
脉冲层DRAG 脉冲单门保真度99.82%≥ 99.7%
硬件层TransmonT1 / T268 μs / 92 μs≥ 50 μs / ≥ 70 μs
读出层谐振腔+判别器读出保真度97.6%≥ 97%

这张表的价值在于:当端到端指标不达标时,可以逐行检查哪一层越界。若所有层都达标但端到端仍失败,则问题通常出在接口失配或反馈延迟,而不是单层性能。

常见误区与工程建议

第一个误区是“只测硬件层”。T1、T2 好不代表算法成功率高,因为编译和读出可能吃掉大部分预算。第二个误区是“忽略读出层”。读出保真度低于 97% 时,任何上层优化都会被测量噪声淹没。第三个误区是“接口不固定”。同一线路在不同编译版本下 CNOT 数可能差 30% 以上,导致 Benchmark 不可比。

工程建议:先固定接口契约,再逐层标定,最后做端到端回归。每层保留原始数据(波形、标定曲线、判别阈值),并在报告中标注版本号。这样,当硬件或软件升级时,可以快速定位是“哪一层变了”导致端到端指标波动。

总结来说,量子计算栈的 Benchmark 对象不是单一指标,而是六层对象、五组接口和一条端到端误差预算。只有把每层的可测对象、接口格式和瓶颈判据都定义清楚,后续的基准测试、对比和优化才有可复现的基础。