Skip to content

Benchmark ​

该基准测试是基于 IBM 的 Qiskit benchpress。我们在其基础上为 pyqpanda3 添加了测试项,以完成相关测试。我们的测试代码可以在 https://github.com/OriginQ/benchpress 中找到。我们在文献《QPanda3: A High-Performance Software-Hardware Collaborative Framework for Large-Scale Quantum-Classical Computing Integration》中介绍了更详细的实验内容。本页引用了文章中的重要实验结果。

"Benchpress 开源基准测试套件包含 1,000 多项不同的测试。这些是由量子计算社区的其他成员设计的标准化基准测试。例如,Benchpress 比较 SDK 生成 QASMBench 线路、费曼线路和哈密顿线路的能力。它还包括测试 SDK 为特定硬件(例如 IBM 量子处理器的重六边形架构及其他通用量子比特布局)转译线路能力的测试。"

— IBM Qiskit

量子线路构造 ​

多个量子计算 SDK 在线路构造方面的表现如图 Quantum Circuit Construct 所示。可以发现,QPanda3、qiskit 和 cirq 通过了全部 7 个测试用例。对于test_multi_control_circuit、test_bigint_qasm2_import、test_param_circSU2_100_build和test_clifford_build等4个测试用例,QPanda3的用时最少。对于测试用例test_QV100_qasm2_import、test_param_circSU2_100_build和test_QV100_build等3个测试用例,QPanda3用时多于qiskit,明显少于cirq、braket和bqskit。对于测试用例test_DTC100_set_build,QPanda3用时少于qiskit,多于cirq,是用时第二少的。该图显示了QPanda3在线路构造方面的优势。

Quantum Circuit Construct

操作 ​

Benchpress 文献《Benchmarking the performance of quantum computing software》指出 Manipulate 是衡量 SDK 的一个重要指标。如下图 Manipulate 所示,只有 QPanda3 和 qiskit 通过了全部的 4 个测试用例。QPanda3在test_QV100_basis_change测试中,是用时最少的。对于test_random_clifford_decompose、test_multi_control_decompose和test_DTC100_twirling三个测试用例,QPanda3用时仅超过qiskit且与qiskit相差很小。该图表示,QPanda3在Manipulate指标上具有优势。

Manipulate

量子线路编译 ​

在我们的实验中,只有 QPanda3 和 qiskit 通过了大部分关于编译的测试用例。我们将对应的实验结果绘制成了如图 Quantum Circuit Transpilation 所示的多张散点图,分别展示了对于不同的拓扑结构,QPanda3 和 qiskit 在 2Q Gate Count、2Q Gate Depth 和编译用时方面的差异。其中,各图中的蓝色虚线表示 QPanda3 和 qiskit 在对应指标下的数值是相等的。在蓝色虚线上方的点表示 QPanda3 对应的数值小于 Qiskit。

从图 Quantum Circuit Transpilation 可以发现,对于 2Q Gate Count 和 2Q Gate Depth,大部分散点密集地分布在蓝色虚线上或极其相近的位置,这说明 QPanda3 和 qiskit 的表现基本相同。然而,对于编译用时,图 Quantum Circuit Transpilation 中的四张子图中,散点全部分布在蓝色虚线上方,这说明 QPanda3 比 qiskit 具有更高的编译效率,而且这个特征不受拓扑结构的限制,同时对大量不同的线路均有效。同时,可以观察到,只有极个别测试用例使用 QPanda3 的用时会超过 10 秒。这些都说明 QPanda3 的编译效率十分高。

Quantum Circuit Transpilation

pyqpanda3 0.5.0 对比 Qiskit 2.5.2 —— benchpress 全量对比(2026 年 9 月) ​

测量配置 ​

伴随 pyqpanda3 0.5.0 的发布,benchpress 完整套件在同一台服务器上与 Qiskit 2.5.2 重新进行了对比测试。两个 SDK 运行于同一台服务器、同一解释器与同一 benchpress 修订版本之上,因此每个用例均可一一配对,无需跨机器校准。测量配置如下:

项目取值
主机Intel(R) Xeon(R) Gold 6226R CPU @ 2.90 GHz,64 核
解释器CPython 3.14.7
数值栈NumPy 2.5.3、SciPy 1.18.1
被测方pyqpanda3 0.5.0 —— benchpress 运行 0069_qpanda3(2026-09-21)
参照方Qiskit 2.5.2(含 qiskit-ibm-runtime 0.49.0)—— benchpress 运行 0055_qiskit(2026-09-15)
配对用例1,044
套件状态双方各自 1,044 通过、0 失败;双方各有 22 个参数化占位用例跳过
线路规模范围1 至 930 个量子比特

双方的腿均通过了全部 1,044 个用例,因此不存在缺失用例,也没有任何结果为推断值。计时指标为配对用例的 pytest-benchmark stats.mean,直接取自测试框架自身产出的结果文件。

本节通篇并列报告两种比值统计量,二者回答的是不同问题:

  • 逐用例比值的几何平均 描述典型用例,对每条线路等权;
  • 平均用时求和之比 描述整体聚合,因而由最慢的线路主导。

只引用其中一种都可能在任一方向上产生误导,因此下文的分套件表格同时给出两者。

总体结果 ​

在全套件上,pyqpanda3 0.5.0 在 1,044 个配对用例中的 1,040 例上用时更短,几何平均时间比为 0.233x,平均用时求和之比为 0.259x。按整轮累计,被测方耗时 2,708.3 秒,参照方耗时 5,191.2 秒——墙钟时间比为 0.522。

按编译目标划分,892 个抽象编译用例(不含设备耦合图)的几何平均为 0.212x,140 个设备定向用例为 0.400x。

分套件结果 ​

套件用例数几何平均比平均用时求和之比更快的用例数双比特门比双比特深度比
抽象哈密顿量编译4000.303x0.234x3990.834x0.783x
QASMBench small1680.140x0.340x1681.009x1.003x
QASMBench medium920.207x0.289x920.981x0.976x
QASMBench large2320.157x0.259x2320.985x0.942x
设备哈密顿量编译810.380x0.282x810.776x0.748x
Feynman500.452x0.320x501.013x1.006x
Summit 100Q90.329x0.200x91.049x1.100x
线路操作40.790x0.973x3——
线路构造80.400x0.468x61.000x1.000x
全套件1,0440.233x0.259x1,0400.957x0.915x

由此可得两点观察。其一,优势并不局限于单一线路家族:每个编译套件在几何平均上都快于参照方,从 QASMBench 小线路的 0.140x 到 Feynman 套件的 0.452x。其二,几何平均一致优于平均用时求和之比,说明该优势是广泛分布于各用例的,而非由少数极端用例拉动。

按类别统计的每用例平均用时如图 pyqpanda3 0.5.0 vs Qiskit 2.5.2 —— 每用例平均用时 所示,该图采用平均用时求和之比的基准绘制。

pyqpanda3 0.5.0 vs Qiskit 2.5.2 每用例平均用时

对耦合图拓扑的依赖 ​

892 个抽象编译用例分布在四种耦合图上。在图中采用的平均用时求和之比基准下,pyqpanda3 0.5.0 完成配对用例的用时分别为 Qiskit 2.5.2 的 0.18x(all-to-all)、0.24x(heavy-hex)、0.28x(square)与 0.29x(linear)。在几何平均基准下,同样这四种拓扑族分别读作 0.12x、0.24x、0.25x 与 0.27x。

all-to-all 图在两种基准下均显示出最大优势,且该族中 223 个用例全部更快。三种稀疏图则彼此聚集在一条狭窄区间内。值得注意的是,优势并未随耦合图约束变紧而衰减:linear 与 square 是该集合中约束最强的两种图,二者仍远低于持平线。

图 pyqpanda3 0.5.0 vs Qiskit 2.5.2 —— 逐用例编译用时 以对数坐标逐用例对比了两个 SDK 在 892 个抽象编译用例上的编译用时,每种拓扑一张子图;虚线下方的点表示 pyqpanda3 更快的用例。可以观察到,四张子图中的散点几乎全部位于虚线下方(892 例中的 891 例),且该优势不局限于特定拓扑或特定线路家族。

逐用例编译用时散点图

逐用例比值的分布 ​

上述聚合指标刻画的是集中趋势,而分布刻画的是稳定性。在 1,044 个配对用例上,逐用例时间比落入以下区间:

比值区间(pyqpanda3 / Qiskit)用例数
低于 0.10x231
0.10x – 0.25x214
0.25x – 0.50x317
0.50x – 0.75x247
0.75x – 1.00x31
1.00x 及以上4

分位数分别为 p10 = 0.056、p25 = 0.112、中位数 = 0.310、p75 = 0.525、p90 = 0.629。相当一部分用例——1,044 例中的 445 例,约 43%——在参照方用时的四分之一以内完成;1,044 例中的 1,009 例(96.6%)低于 0.75x。仅 4 例达到或超过持平线。

在 1,032 个编译用例中,恰好只有一例超过持平线,为 1.07x(ham_fh-graph-1D-grid-nonpbc-qubitnodes_Lx-90)。以编译用时超过 10 秒的用例数计,pyqpanda3 为 6 例,参照方为 28 例;被测方最慢的单个用例耗时 22.0 秒,而对应的参照方用例为 76.3 秒。

输出质量 ​

只有在产出的线路仍具可比性时,速度才有意义,因此本节直接对比了转译输出。在全套件上求和,pyqpanda3 0.5.0 输出线路的双量子比特门数为 Qiskit 2.5.2 的 0.957x;在 892 个抽象编译用例上,双量子比特深度合计为 0.918x。速度优势总体上并未以线路质量为代价。

在设备定向用例上,被测方在两项指标上均领先(门数 0.921x,深度 0.883x);在抽象用例上,被测方在深度上领先(0.918x),门数持平(0.960x)。分到各套件后,情况更为细致:在哈密顿量族上被测方产出的双量子比特门显著更少(抽象 0.834x,设备 0.776x),线路也相应更浅;而在 Summit 100Q 与 Feynman 族上则略多(1.049x 与 1.013x)——以几个百分点的差异换取了上文报告的用时缩减。

在双方均报告双量子比特门数的 1,035 个用例中,pyqpanda3 0.5.0 在 277 例上产出更少的双量子比特门,410 例数量完全相同,348 例更多。因此该分布并非单向:总体 0.957x 是大量改进与退化共同作用的净结果,并以缩减幅度最大的哈密顿量族为主导。

参照方用时更短的用例 ​

1,044 个用例中有 4 例由 Qiskit 2.5.2 取得。四例均限于毫秒量级的操作,且没有任何一例超过 1.6x:

用例分组比值pyqpanda3Qiskit 2.5.2
test_QV100_build线路构造1.58x6.43 ms4.08 ms
test_multi_control_decompose线路操作1.29x17.35 ms13.42 ms
test_param_circSU2_100_build线路构造1.28x2.06 ms1.61 ms
ham_fh-graph-1D-grid-nonpbc-qubitnodes_Lx-90抽象哈密顿量编译1.07x122.5 ms114.6 ms

四例中有三例属于构造与操作分组,而这两个分组在 1,044 个用例中合计仅占 12 例;承载 1,032 个用例的各编译分组只贡献了一条略高于持平线的记录。

Released under the MIT License.