量子比特的实现方式有多种,超导量子比特是其中技术最成熟的方案之一。在现阶段的超导量子计算机中,量子比特是存储的基本单元,而计算需要通过外界的模拟信号来对量子比特进行一系列操作来完成。在超导量子计算机中,需要一个额外的控制架构作为量子软硬件之间的桥梁,来帮助完成量子计算的执行。前人已有工作搭建起了量子控制架构的相关框架,但随着量子比特数量的增长,这一架构的效率和可扩展性也随之受到了挑战。
因为超导量子比特相对较短的退相干时间(在多比特系统中目前常见为几十微秒),量子控制处理器中任何的处理不及时都会导致额外累积的退相干错误,从而使得计算结果的正确性降低。针对当前量子控制处理器中存在的处理并行度较低,难以扩展的问题,腾讯量子实验室的相关团队提出了一种新颖的量子控制微体系结构QuAPE,包括:1)通过多核架构来对不同子电路进行动态调度,以实现电路层级并行度;2)通过量子超标量架构来高效地并行执行量子指令,以实现量子操作层级并行度。我们的多核架构在一个含大量反馈的复杂算法的测试中取得了2.59倍的加速(理论最高为3.11倍);我们的超标量架构在多个其他常见量子算法的测试中通过取得了平均4.04倍的性能提升。这些新的高并行性控制方法为构建适用于大规模量子计算机的控制层打下了重要基础。
除了洞见量子控制微体系结构所面临的挑战并且提出相应的解决方案外,一支由计算机体系结构研究员,物理研究员,FPGA工程师,和硬件工程师等组成的跨专业团队也通过合作与不懈努力,将其转化为一项系统性工程并进行了软硬件一体化实现,向构建全栈量子计算机迈出了坚实的一步。
相关论文: Exploiting Different Levels of Parallelism in the Quantum Control Microarchitecture for Superconducting Qubits, M. Zhang, L. Xie, Z. Zhang, Q. Yu, G. Xi, H. Zhang, F. Liu, Y. Zheng, Y. Zheng, S. Zhang, The 54th IEEE/ACM International Symposium on Microarchitecture (MICRO), 2021, to appear.
01 量子控制微体系结构介绍
在相当长的一段时间中,量子算法和量子硬件是量子计算领域中两个得到了较多关注,但又相对独立发展的方向。随着量子计算领域逐渐走出实验室,构建一台中等规模的量子计算机系统,并研究如何让其在含噪环境(Noisy Intermediate Scale Quantum)[1] 下高效运行成为了近期工作的重点之一。为了达到这一目标,量子软硬件需要进行紧密协作。在传统控制方法中,量子软件的输出无法直接在量子硬件上执行,因此需要额外的中间控制层来将二者联系起来。基于此,我们需要按照图1所示组织结构来构建一台全栈量子计算机。具体层级分类如下:
1. 量子芯片层:上面工作着量子比特,是量子计算的基本单元;
2. 控制与测量仪器层:这套设备完成控制和读取信号在经典世界和量子世界之间的转换。对超导量子芯片来说,本层次需要完成的是数字信号和模拟(微波)信号之间的转换;
3. 体系结构层:这部分和经典计算机类似,由指令集和微体系结构组成。通常在实现上,我们会基于该控制微体系结构实现一个量子控制处理器 (Quantum Control Processor),通过对接控制与测量仪器,来实时地完成对量子芯片的测控;
4. 量子软件层,这一部分包含了量子算法,量子高级语言和编译器。编译器会将上层软件编译为基于量子指令集的汇编代码,并在量子控制处理器上执行。
图1. 全栈量子计算机组织结构示意图。
现有的工作 [2, 3] 中已经对于构建量子领域专用的量子指令集和控制微体系结构有了初步的探索,并实现了可以稳定工作的原型机。在实际的工作中,量子编译器会生成由量子指令集来描述的程序,作为软件层给下层的输出;而这些指令随后会作为硬件的输入由量子控制处理器执行,并通过驱动控制与测量仪器,最终将对应的微波操作发送至量子硬件。同时在这种工作框架下,还可以实现基于量子-经典信息实时交互的反馈控制。
虽然量子计算体系结构已经有了上述进展,但随着需要控制的量子比特数量不断增长,以及量子电路的复杂程度不断上升,量子控制处理器的处理效率也受到了越来越多的挑战。与经典计算机不同的是,一个低效率的量子控制处理器不仅会使得计算速度变慢,还会给最终的计算结果引入额外的退相干错误。造成这种处理延时的主要原因是量子控制处理器中受限的操作发射速度,而这一点可以通过提高处理器的并行能力来解决。
我们发现,基于量子电路的特点,量子程序中有很多控制层的并行机会可以加以利用。通过实现这些不同层级的并行度,我们可以很大程度上缓解上述问题,使得在系统规模逐步扩大时量子程序的运行免受控制处理器的限制。基于此,我们提出了一种新颖的量子控制微体系结构QuAPE (Quantum control microArchitecture for Parallelism Exploitation),该结构适用于超导量子比特(计算)场景下的控制层的并行性利用。我们利用FPGA实现了该架构的原型机并使用多个量子算法进行测试以评估其性能。最终,我们将整体测控系统连接至真实量子芯片并运行实验作为原理性验证。
本论文的主要贡献为:
1. 提出了一种多核控制结构,通过设计多个处理单元及程序块的动态调度,可以实现不同子电路间的电路层级并行,包括动态电路。这一机制可以并发处理多个子电路,并通过额外的机制来减少子电路切换时的开销。
2. 提出了一种量子超标量结构来在运行时对指令进行并行处理,通过针对性地设计调度方案,这一方法可以用确定性的时序向量子芯片同时发射大量操作。此外,我们还提出了一种机制用于减少并行执行简单反馈控制时的延时。
02 量子程序中不同层级的并行度
我们在这里定义两种量子程序中会出现的并行度:
1. 电路层级并行度(Circuit Level Parallelism, CLP):不同电路或子电路之间的并行度。
2. 量子操作层级并行度 (Quantum Operation Level Parallelism, QOLP) :指并行量子操作反应到量子程序上的并行度,其中并行量子操作指的是同时在不同量子比特上进行的操作(无论这个操作的时间长短)。
我们用一个由两个并行RUS (Repeat-Until-Success) 子电路组成的电路来解释一下电路层级并行度和实现这一并行度的必要性。RUS电路是一种比较特殊的量子电路,它会重复执行一系列量子操作并对一些量子比特进行测量,直到期望的测量结果出现。在描述该电路的量子程序中,我们倾向于用两个独立的程序块来分别描述这两个不同的子电路。显然,用单个程序流来执行这样的程序时,在第一个子电路结束前并不会处理任何第二个子电路中的指令,因为第一个处理中的程序块“阻塞”住了程序流。在这种情况下,理想中的并行执行 (图2(a)) 被强制转化为了串行执行 (图2(b))。这种情况时间利用率非常低,对于超导量子计算来说是不可接受的。因此,我们需要设计新的量子控制微体系结构来利用量子程序中的电路层级并行度。
图2. 两个并行RUS子电路在不同情况下的执行结果。
对于并行量子操作来说,其所对应的指令之间就存在量子操作层级并行度,并可以在量子控制处理器上被并行执行。当量子比特的数量增加,同时需要处理的并行量子操作数量也会随之增加。为了衡量控制处理器实现量子操作层级并行度的性能,我们定义一个CES(Cycles Each Step)指标,即在控制处理器中执行电路中某一步(circuit step: 量子电路中的一部分,包含了某一时间点上所有的并行量子操作)所需花费的周期数。我们将CES理解为由四部分组成:执行量子指令的周期数(CEQI: Cycles Each Quantum Instruction,执行每个量子指令所花的周期数;QICES: Quantum Instruction Count Each Step,每一步中量子指令的个数),执行经典指令的周期数,经典控制流程带来的暂停,以及反馈控制在控制处理器上所花的时间。
对于量子控制处理器来说,需要做的就是在一定时间内能够完成这些指令的处理,即实现一定程度的量子操作层级并行度。为了量化这一目标,我们提出了指标TR (Time Ratio)。TR指的是处理一个程序时,量子控制处理器上所花的执行时间和量子芯片上所花时间的比例。对于电路中某一步来说,TR写作:
其中QCP (Quantum Control Processor) 指量子控制处理器(见图1),QPU (Quantum Processing Unit) 指量子芯片。在每个电路步骤中,QPU 都是完全并行地执行量子操作,这使得我们可以用量子门时间来表示 QPU 时间。对于理想的量子控制处理器来说,它对所有量子程序都应达到 TRi < 1,也就是QCP并不比QPU上实际执行量子操作花费的时间更长,这样使得芯片上的比特不会因为等待QCP导致额外的退相干错误。
03QuAPE概览
在经典体系结构中,并行性利用是一个被广泛研究的领域。但是,经典的解决方案并不能直接被量子控制微体系结构所借鉴。由于独特的量子控制特性,量子控制微体系结构需要解决以下几点问题:
1. 量子反馈控制是一种量子场景下特殊的控制流程,需要建立在QCP和QPU实时交互的基础上。它包括了电路中间测量,以及基于测量结果的分支跳转。反馈控制会在量子控制处理器中引入流水线暂停,且这一控制流程会在量子电路中同时发生,因此极大地增加了QCP中实现不同层级并行度的难度。
2. 时序控制是一种量子控制处理器中特殊的机制,它要求用处理器中带有不确定性的指令处理来发出基于确定性时序的量子操作。这为不同指令间引入了额外的时序依赖性,而为了保证时序控制不被破坏,我们需要尽可能消除在实现并行度时可能出现的不确定性执行时间。
3. QPU需要QCP来确定性地提供量子操作。经典场景中的分支预测,缓存架构可以带来整体上的性能提升,但如果发生cache miss或预测失败等情况,其所带来的penalty对于超导量子比特来说难以接受。
基于以上的思考,我们提出了QuAPE作为新一代的量子控制微体系结构来实现前面介绍的两种并行度。首先,我们不能仅依靠提升处理器的指令处理速度来实现电路层级并行度,因为量子程序中的各种控制流程会阻碍这一情况。相较而言,一个可行的方法是同时对多个程序块并发处理。基于此,我们提出了多核架构来实现电路层级并行度。
这一架构的的基本结构如图3所示。在这个方案中,量子程序的所有指令都存放在指令存储器(Instruction Memory)中,并由所有处理单元(Processor)共享,而对应每个处理单元也有一个指令缓存(Private Instruction Cache,PIC)。每个处理单元内包含了译码器(Decoder),经典执行单元(Classical Execution Unit)和量子执行单元(Quantum Execution Unit)。在对多个并行子电路进行调度分配时,我们需要需要消除由程序执行的不确定性带来的额外延时。因此,我们在调度单元实现了一个可以对多个子电路进行动态调度的方案。此外,我们通过添加指令预取功能来进一步减少了子电路切换时造成的额外开销,这有助于电路保持其时序依赖性。
图3. 量子控制微体系结构中的多核架构,其中红色虚线框代表了控制多个处理单元的模块。
在多核架构中的每一个处理单元内,我们进一步实现了一个量子超标量架构来利用量子操作层级并行度,如图4所示。对于超标量架构来说,在指令预解码阶段引入太多的比较复杂度会限制可以实现的发射单元数量。因此,我们的方案通过实现一种专门针对量子控制层的调度方案来避免这一情况。此外,我们还应用了一个允许单独分派不同类型指令的Lookahead策略,这有助于吸收潜在的分支延迟,从而达到降低CES的目的。而对于一些可能出现大量并行的简单反馈控制(如Active qubit reset),我们专门设计了一种快速上下文切换机制,来降低花费在反馈控制上的时间和资源开销。
图4. 量子超标量架构概览。
04 测控系统实现
基于我们提出的控制微体系结构QuAPE,我们使用FPGA将其实现为一个量子控制处理器。此外,我们同样用FPGA实现了控制和读取单元,并将其集成进一套测控系统硬件中。其中控制单元被称为AWG (Arbitrary Waveform Generator) 部分,读取单元被称为DAQ (Digital AcQuisition) 部分,系统整体结构如图5所示。
图5. 组成控制层的系统示意图,包含了量子控制处理器,AWG和DAQ。
量子控制处理器中实现了QuAPE架构,并使用了高速串行接口来实现低延时的数据传输。在实际工作中,DAQ会将测量结果传输到控制处理器上,用于完成分支跳转等功能,判断结果再以Codeword的形式传输至AWG上,并最终将操作发送至量子芯片。AWG和DAQ中除了FPGA外,还使用了DAC (Digital-to-Analog Converter) 和ADC (Analog-to-Digital Converter) 来分别完成数字->模拟转换和模拟->数字转换。
我们对整套系统进行了高度集成化的设计,一套系统可以提供288个DA通道和32个AD通道,并实现了所有通道的亚纳秒级同步。通过提升了并行处理能力的量子控制处理器,整套系统可以完成任意通道间的低延时反馈控制。图6给出了该测控系统的实物图。
图6. 测控系统实物图。
05 评估结果
在硬件上实现了QuAPE后,我们对电路层级并行度和量子操作层级并行度在FPGA上进行了测试以评估其性能。在对电路层级进行评估的benchmark上,我们选择了一个Shor syndrome measurement电路,主要是因为这个电路中存在大量反馈控制相关操作。其对应的量子程序由288条量子指令和252条经典辅助指令组成。我们通过一个简单的编译工具,将其划分为50个不同的程序块以方便我们的多核架构来进行电路级的并行处理。我们分别测试了用单核,两核,四核和六核的运行结果,结果如图7所示。除了实测多核架构的加速效果外,我们同样计算了理论上该电路能达到的最大加速效果(假设所有的调度和程序块切换的延时均为0)。可以看到,六核架构在理论最优为3.11倍加速的情况下,我们的实现方案能够取得最多达2.59倍的加速,极大地利用了这个电路所提供的电路层级并行度。
在对量子操作层级并行度的评估上,我们从ScaffCC [4], Qiskit [5] 和RevLib [6] 中选择了多个常见的量子算法。并使用一个8路超标量设计来运行这些算法并计算了TR值。实测结果如图8所示,我们在TR指标上达到了平均4.04倍的提升,并且可以保证所有时刻的TR均小于1。
此外,我们还在一个真实量子芯片上使用该架构运行了一个simRB (simultaneous Randomized Benchmarking) 实验来对整个框架进行可行性验证。最终的结果表明我们的设计可以在实际运行中良好的工作,值得一提的是,基于指令集框架的设备在实测时会明显提升实验速度,主要是因为不需要配置长波形至测控系统。
06 总结
从提出一种新型量子控制微体系结构,到在硬件上实现了全套的测控系统,再到搭建起真实量子芯片的工作环境并完成实验,这整套的工作是由来自计算机体系结构,物理,电子工程,量子纠错等不同背景的专业人员紧密合作完成的。多元化背景的科研团队是完成这项工作的主要助力,也体现了计算机工程和物理实验在构建量子计算机时逐渐融合所带来的益处。
后续我们会在已完成工作的基础上继续推进,包括量子控制体系结构的研究和工程实现的完善,以及探索量子纠错在控制层上的实现等。我们也会在编译器方面积极探索,期待构建全栈量子计算机后,让量子算法和量子硬件能够摩擦出更多的思想火花,推进量子行业的踏实发展。
References
[1] Preskill, John. Quantum computing in the NISQ era and beyond. Quantum 2: 79, 2018
[2] Fu, Xiang, et al. An experimental microarchitecture for a superconducting quantum processor. Proceedings of the 50th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO). 2017.
[3] Fu, Xiang, et al. eQASM: An executable quantum instruction set architecture. IEEE International Symposium on High Performance Computer Architecture (HPCA), 2019.
[4] JavadiAbhari, Ali, et al. ScaffCC: a framework for compilation and analysis of quantum computing programs. Proceedings of the 11th ACM Conference on Computing Frontiers. 2014.
[5] Aleksandrowicz, Gadi, et al. Qiskit: An open-source framework for quantum computing. Accessed on: Mar 16, 2019.
[6] Wille, Robert, et al. RevLib: An online resource for reversible functions and reversible circuits. Proceedings of the 38th International Symposium on Multiple Valued Logic (ismvl), 2008.