2. 量子计算资源度量体系
在量子计算资源估算工程中,最忌讳的一件事是“只报一个数”。例如说“这个算法需要 1000 个量子比特”,这句话在工程上几乎不可用,因为它没有说明是逻辑量子比特还是物理量子比特,也没有说明需要多少个 T 门、多深的电路、多长的运行时间。资源估算的本质,是把一个算法需求翻译成一组相互约束的度量指标,并让这些指标能够与硬件能力对齐。本节先建立这套度量体系,明确每个指标的定义、量纲和彼此之间的换算关系。
一、两类量子比特:逻辑与物理
逻辑量子比特(logical qubit)是算法层面的抽象单位,是量子程序正确运行所需的“无差错”量子比特数量。它由算法本身决定,例如 Shor 算法分解一个 n 位整数,逻辑量子比特数大致与 n 成正比。物理量子比特(physical qubit)是硬件实际提供的、带噪声的量子比特。两者之间通过量子纠错码连接:一个逻辑量子比特需要若干个物理量子比特编码,这个比例称为编码率。
以表面码(surface code)为例,在给定的物理错误率 p 和目标逻辑错误率 ε 下,码距 d 需要满足 ε ≈ (p/p_th)^((d+1)/2),其中 p_th 是纠错阈值(约 1%)。一个逻辑量子比特大约需要 2d² 个物理量子比特。若 p = 0.1%、目标 ε = 10⁻¹⁰,则 d 约为 21,单个逻辑量子比特约需 882 个物理量子比特。这个换算关系是资源估算中最关键的一步:物理量子比特数 ≈ 逻辑量子比特数 × 每个逻辑比特的物理开销。注意,这里的开销不是常数,它随错误率、码型和目标精度变化,因此估算时必须把假设写清楚。
二、门级指标:T 门、CNOT 与电路深度
量子程序最终被编译成基本门序列。在容错计算中,最昂贵的操作是 T 门,因为它通常需要魔术态蒸馏(magic state distillation)来制备,而蒸馏本身要消耗大量物理量子比特和门操作。T 门数量是算法所需 T 门的总个数,直接决定蒸馏工厂的规模和运行时间。T 深度是电路中 T 门串行层数,即无法并行执行的 T 门层数,它决定算法的最短时间下界。
CNOT 数量是两比特纠缠门的总数,反映电路的整体复杂度;电路深度是所有门(含单比特门、CNOT、T 门)串行层数的最大值,决定时钟周期数。它们的关系可以概括为:T 门数量 ≥ T 深度,CNOT 数量 ≥ CNOT 深度,电路深度 ≥ max(T 深度, CNOT 深度)。并行度越高,深度相对数量越小,但受限于量子比特连接拓扑,并行往往不能任意展开。
三、时间与内存:从门数到工程约束
运行时间由电路深度乘以单层门时间得到。容错场景下,单层时间通常由纠错周期决定,例如表面码一个周期约 1 μs。若电路深度为 10⁹ 层,运行时间约 1000 秒。但 T 门蒸馏往往成为瓶颈:若蒸馏工厂每 10 μs 产出一个魔术态,而算法需要 10⁸ 个 T 门,则仅蒸馏就需 1000 秒,且需要多个工厂并行。内存占用则指存储量子态、魔术态缓冲和经典控制数据所需的资源,在容错架构中通常以物理量子比特数乘以每比特的经典控制开销来估算。
四、指标之间的约束与权衡
这些指标不是独立的,它们之间存在硬约束。增加纠错码距 d 可以降低逻辑错误率,但物理量子比特数按 d² 增长,同时每个纠错周期变长,运行时间上升。减少 T 门数量可以缩短蒸馏时间,但可能增加 CNOT 数量或电路深度。提高并行度可以压缩深度,但需要更多物理量子比特同时工作,内存占用随之上升。因此资源估算不是求单个最小值,而是在给定硬件约束下寻找可行解。
一个实用的做法是建立参数表,把假设固定下来,再逐项推算。例如:
| 指标 | 符号 | 示例值 | 来源/假设 |
|---|---|---|---|
| 逻辑量子比特数 | n_L | 1000 | 算法分析 |
| 物理错误率 | p | 0.1% | 硬件标定 |
| 目标逻辑错误率 | ε | 10⁻¹⁰ | 算法容错要求 |
| 码距 | d | 21 | 由 p、ε 推算 |
| 物理量子比特数 | n_P | ≈ 8.8×10⁵ | n_L × 2d² |
| T 门数量 | N_T | 10⁸ | 算法编译 |
| T 深度 | D_T | 10⁶ | 并行度分析 |
| 电路深度 | D | 10⁹ | 编译结果 |
| 单层时间 | t_g | 1 μs | 纠错周期 |
| 运行时间 | T_run | ≈ 1000 s | D × t_g |
这张表的意义在于:任何一项估算结果都可以追溯到假设。当硬件参数变化时,只需替换对应行,重新推算即可。例如把 p 从 0.1% 改为 0.05%,d 可能降到 15,物理量子比特数降到约 4.5×10⁵,运行时间也因纠错周期缩短而下降。资源估算工程的核心能力,就是维护这样一套可追溯、可更新的度量体系。
最后需要强调,所有指标都必须带单位和假设。逻辑量子比特是“个”,T 门数量是“个”,T 深度和电路深度是“层”,运行时间是“秒”,内存占用是“比特”或“字节”。在跨团队沟通时,建议统一使用“逻辑量子比特数 / 物理量子比特数 / T 门数量 / T 深度 / CNOT 数量 / 电路深度 / 运行时间 / 内存占用”这八个字段作为最小报告集,任何一项缺失都会让估算结果失去可比性。