4月18日,IBM Quantum的研究人员在《Nature Computational Science》期刊发表题为“Benchmarking the performance of quantum computing software for quantum circuit creation, manipulation and compilation”(量子计算软件开发工具包在量子电路创建、操作和编译方面的性能基准测试)的研究论文,Paul Nation为论文第一作者兼通讯作者。
本文介绍了Benchpress,这是一个用于评估多个量子计算软件开发工具包性能和功能范围的基准测试套件。该套件包含1000多个测试,用于测量由多达930个量子比特和O(10^6)个双量子比特门组成的量子电路上各种操作的关键性能指标,同时还提供一个执行框架,以统一的方式对多个量子软件包进行测试。研究详细介绍了这个基准测试套件及其方法,并给出对七个不同量子软件包的代表性测试结果。Benchpress框架的灵活性使其不仅能够跟上量子硬件的改进步伐,还能预先评估未来设备架构的量子电路处理成本。
研究背景
量子计算凭借其在特定任务上超越经典计算方法的潜力,成为科研领域的焦点。随着量子比特数量的增加,量子计算机的计算能力有望实现质的飞跃,为解决复杂问题提供新途径。但量子计算机并非孤立运行,它在数据预处理和后处理环节高度依赖经典计算资源。在量子电路的构建、操作和优化过程中,经典计算的开销逐渐成为制约量子计算发展的重要因素。
当前,多种量子计算软件开发工具包(SDK)不断涌现,如Braket、BQSKit、Cirq、Qiskit等,它们在量子电路的预执行处理中发挥着关键作用,涵盖电路构建、操作和优化等功能。但这些SDK的性能参差不齐,在输出电路质量、运行时间和内存消耗等方面表现各异。此前对这些SDK性能的评估存在诸多局限性。一方面,量子电路集合通常以OpenQASM兼容格式存储,在转译过程中未充分考虑电路合成的性能,而且跨SDK测试难度较大;另一方面,以往的测试框架难以适应大规模量子比特数量和长时间运行的测试需求,在测试灵活性上也有所欠缺,无法满足对不同2Q纠缠门拓扑结构测试、快速添加新SDK以及存储多样化输出指标的要求。
因此,系统地研究主流量子计算SDK在大规模量子电路集合上的相对性能,开发一种灵活且统一的测试方法,成为推动量子计算发展的迫切需求。这不仅有助于科研人员深入了解各SDK的优势与不足,还能为开发者优化SDK性能提供方向,同时帮助终端用户根据实际需求选择合适的SDK,Benchpress基准测试套件应运而生。
Benchpress架构介绍
测试套件组织
Benchpress测试套件以一种无需安装的方式进行部署,执行测试依赖pytest和特定SDK的依赖项,同时借助pytest-benchmark工具来精准测量测试时间,并以JSON格式生成结果信息。考虑到测试时间可能较长,Benchpress采用了修改版的pytest-benchmark,将每个测试封装在子进程中,可根据设定的超时时间自动终止测试,避免长时间等待,提高测试效率。
在测试定义方面,Benchpress引入了“workouts”抽象测试类,每个测试都被定义为Python类中的一个方法,方法名即测试名,并默认使用xpytest-benchmark进行装饰。这些测试类通过pytest-benchmark进行逻辑分组,不同SDK的实际测试通过重载“workouts”中的抽象定义来实现。为确保测试的规范性和独立性,Benchpress设置了验证机制,保证每个SDK的测试在单独环境中执行,同时利用Qiskit的兼容性和相关能力来补充其他SDK缺失的功能,为测试提供统一的参考实现。
测试结果定义
“PASSED”表示SDK具备运行测试所需的功能,并且测试能在规定时间内无错误完成;“SKIPPED”意味着SDK不具备执行该测试的功能,或者测试不符合问题的约束条件,例如输入电路的宽度超过目标拓扑的限制;“FAILED”说明SDK虽具备必要功能,但测试未能通过或在规定时间内未完成;“XFAIL”则代表测试会不可恢复地失败,被标记为“预期失败”而不再执行,如测试所需内存超过可用内存的情况。通过这样清晰的定义,Benchpress可以全面、准确地反映每个SDK对不同测试的支持程度和执行情况,为评估SDK的功能广度和性能提供可靠依据。
电路构建与操作测试
在电路构建测试中,包含8个针对不同类型100比特电路构建的测试,如量子体积(QV)电路构建、哈密顿模拟电路构建等。这些测试不仅关注电路构建所需的时间,还通过选择具有代表性的电路类型,模拟实际应用中的复杂场景,深入考察SDK在处理不同规模和结构电路时的性能。同时,还包括参数绑定时间测试以及从OpenQASM文件导入的测试,进一步评估SDK在与外部文件交互和处理参数化电路方面的能力。
电路操作测试则聚焦于对已构建电路的操作处理能力。其中,两个基础变换测试用于检验SDK将输入的OpenQASM文件转换为不同门集表示的能力;多控制电路分解测试通过测量将特定多控制电路分解为QASM兼容门集所需的时间,以及最终电路中的2Q门数量,来评估SDK将抽象量子电路转换为基本组件的能力;Pauli twirling测试则记录在哈密顿模拟电路中对大量CNOT门进行twirling操作所需的时间,综合反映SDK在处理复杂电路操作时的效率和性能。
研究方案
在Benchpress中,电路转译测试分为设备转译测试和抽象转译测试,以此全面评估SDK的转译性能。 设备转译测试的电路来源广泛,包含100比特的多种电路类型,如量子体积、量子傅里叶变换等电路,还有从特定哈密顿量生成的电路以及参数化电路。为测试SDK的合成属性,加入基于HamLib库哈密顿量的抽象电路、Feynman电路集合和OpenQASM格式电路。因目标量子系统物理比特数限制,部分测试可能被跳过。
抽象转译测试重点在于寻找与输入电路匹配的最小拓扑结构,用户可在default.conf文件配置基础门集,增强测试灵活性。测试性能指标涵盖2Q门数量、深度和转译运行时间,同时记录其他相关信息。
测试时为保证一致性和可比性,给不同SDK设置了统一优化级别,如Tket为2、BQSKit为1、Qiskit和QTS在本文中均为2(Qiskit从1.3.0版本起该级别将成默认值)、Staq为2 。还设置3600秒超时限制,超时测试标记为“FAILED”。
Benchpress精心选择哈密顿量以确保测试全面、有代表性。这些哈密顿量来自HamLib库,涵盖多领域问题。选择时,随机选取但偏向反映库中哈密顿量的特征分布,如比特数和Pauli项数分布。
为保证测试可行,限制所选哈密顿量的比特数≤1092、Pauli项数10000或更少,同时尽量避免选择同一哈密顿量的不同编码形式,倾向“独特”的哈密顿量。最终本版本Benchpress纳入100个HamLib哈密顿量,化学和凝聚态物理问题类各35个,离散和二元优化问题类各15个,全面测试SDK处理不同电路的性能。
测试不同SDK时,研究还考虑了各种特定因素以保证结果准确可靠。
研究发现
SDK功能广度差异显著
利用Benchpress对7种不同量子计算SDK(Braket、BQSKit、Cirq、Qiskit、QTS、Staq和Tket)的全面测试,发现各SDK在功能广度上存在显著差异。部分SDK侧重于电路创建和操作功能,而另一些则在电路转译方面表现突出,还有些SDK在多个功能领域都有涉及,但具体实现和性能各不相同。这种差异反映了当前量子计算软件开发的多样性和复杂性,也表明不同SDK在应对量子计算实际需求时的侧重点有所不同。
电路构建与操作测试结果多样
在电路构建测试中,Qiskit表现卓越,是唯一通过所有电路构建测试的SDK,且完成时间仅为2.0秒。Tket紧随其后,完成了除一项之外的所有测试,用时14.2秒,而BQSKit则在测试中失败两项,且成功测试的总完成时间最慢,达50.9秒。
不同SDK在特定测试中展现出各自的优势,如Cirq在构建一组哈密顿模拟电路时,速度比最接近的竞争对手Qiskit快55倍;Qiskit在参数绑定测试中表现出色,比次优的SDK快13.5倍。
电路操作测试方面,Qiskit和Tket均完成了所有测试,Qiskit用时5.5秒,Tket用时7.1秒。Tket在多控制电路分解测试中表现突出,生成的电路中2Q门数量最少,仅为4457个,而Qiskit和Cirq分别为7349个和17414个。这些结果表明,不同SDK在电路构建和操作的各个环节各有所长,为用户根据具体需求选择合适的SDK提供了参考。
设备和抽象转译测试性能各异
在设备和抽象转译测试中,Qiskit是唯一通过全部转译测试的SDK,因此被用作性能基准。整体来看,在2Q门数量方面,Qiskit优于BQSKit、Staq和Tket,尤其是在连接性有限的拓扑结构中表现更为明显;在2Q门深度方面,Tket整体表现优于Qiskit,在一些连接性较强的拓扑结构中优势显著,例如在某些哈密顿模拟测试中,Tket相对于Qiskit在2Q门深度上有大幅降低。
在运行时间上,Staq是转译流程中速度最快的,而QTS和Tket比Qiskit慢一个数量级以上,BQSKit的运行时间最长,比Qiskit慢两个数量级。通过估计完整转译测试套件的运行时间,发现Staq预计用时少于Qiskit,为0.15天,而BQSKit、QTS和Tket估计运行时间分别为20.5天、1.3天和4.73天。
这些结果展示了各SDK在转译性能上的差异,对开发者优化SDK性能和用户选择合适的工具具有重要指导意义。
图1:a,软件开发工具包(SDK)功能的维恩图。b,根据方法部分给出的定义,每个SDK的1066项测试的状态。由于用于设备转译的目标量子比特数量不足,有22项测试被统一跳过。
图2:Benchpress中电路构建和操作部分的基准测试结果。
图3:Benchpress中设备和抽象转译测试生成的结果。
主要研究人员
Paul Nation,IBM Quantum首席研究科学家,主要研究领域为量子物理学、量子光学、计算物理学。
[2]https://scholar.google.com/citations?user=jh5qRs0AAAAJ&hl=en