AI智能总结
声明 本报告所载的材料和信息,包括但不限于文本、图片、数据观点、建议等,均不构成投资或法律建议,也不应替代律师意见本报告所有材料或内容的知识产权归量子信息网络产业联盟所有(注明是引自其他方的内容除外),并受法律保护。如需转载需联系本联盟并获得授权许可。转载、摘编或利用其它方式使用本报告文学、图表或者观点的,应注明“来源:量子信息网络产业联盟”。违反上述声明者,本联盟将道究其相关法律责任。 量子信息网络产业联盟联系电话:010-62300592邮箱:qiia@caict.ac.cn 编制说明 量子计算以量子比特为基本单元:利用量子叠加和十涉等原理实现并行计算,能在某些计算复杂问题上提供指数级加速,是未来计算能力跨越式发展的重要方向。近年来,国内外量子计算处理器呈现并行发展态势,量子比特数、逻辑门保真度等关键性能指标逐步提升。与此同时,量子计算软件作为接使用者与量子计算硬件处理器的关键细带、也在保持同步发展,其与量子计算硬件处理相结合,可为科学研究和行业应用提供有力支持。 量子软件开发工具链涉及量了汇编语言、量子中间表示和高级量子程序设计语言等,其中量子汇编语言、量子中间表示作为面向量子计算硬件处理器的底层软件,是现阶段研发重点,国内外科技巨头及量子初创企业争相布局。为深人广解量子汇编语言和量子中间表示的最新进展,分析其未来发展趋势,联盟组织研究编写了《量子汇编语言和量子中间表示发展白皮书》,旨在为业界知悉相关前沿进展提供一定参考。 编制单位:华为技术有限公司、中国信息通信研究院、北京中科弧光量子软件技术有限公司、国开启科量子技术(北京)有限公司、中国科学技术大学、上海图灵智算量子科技有限公司、广东国腾量子科技有限公司、本源量子计算科技(合肥)股份有限公司 编写组:翁文康、刘武新、崔江煜、徐旭升、张凯、邹作恒、罗茂林、李钦、姚飞、张萌、付祥、楼华哲、陈敬伟、梁福田、施恺然、邓芮、谢欢文、吴湘宁、窦猛汉、方圆 当目 一、量了计算与量了编程概述1 (一)量子计算1(二)量子编程 二、高级量子程序设计语言概述及分类6 (一)概述6(二)嵌入式量了程序设计语言8(三)独立式量子程序设计语言10 三、量子汇编语言现状及进展15 (一)概述15(二)OpcnQASM17(三) Quil26(四)QASM30(五)cQASM38(六)QCIS41(七)其他汇编语言44(八)小结45 四、量子中间表示现状及进展47 (一)概述47(二) QIR51(三)ScaffCC-TR54(四)XACC-IR56(五.) OriginIR58(六)isQ-IR59 (-七) Quingo-IR60 (九)小结t9 五、总结展望与建议67 (一)总结67(二)展举和建议69 附录:中英文词汇对照表72 图目录 图1常见的量子遇辑门和量子测量操作2图2量子计算系统全栈示意图4图3高级量子程序设计语言的三种不同的执行模型14图4量子程序的编译和执行模型27图5经典量子反馈模型29图6量子经典异构架构8E图7NetQASM架构示意图46图8虽子中间表示52图9QIR组件结构图57 表目录 表1量子编程语言概览6表2量子汇编语言概览18表3子中间表示概览53表4QIR代码仓结构56表5量子中间表示的分类67表6高级量子程序设计语言的生态统计70表7量子中问表示(或编译器)的生态统计70 一、量子计算与量子编程概述一、量子计算与量子编程概述 (一)量子计算一)量子计算 随着社会生产力的发展,人们对高性能计算提出了更高的要求。面对摩尔定律的逐渐失效,科学家和工程师正全力研究发展新的计算技术,推动算力发展。量子计算以量子比特为基本计算单元,利用量子叠加等原理实现并行计算,能在某些计算困难问题上提供指数级加速,是未来计算能力实现跨越式发展的重要方向。随着社会生产力的发展,人们对高性能计算提出了更高的要求。面对摩尔定律的逐渐失效,科学家和工程师正全力研究发展新的计算技术,推动算力发展。量子计算以量子比特为基本计算单元,利用量子登加等原理实现并行计算,能在某些计算困难问题上提供指数级加速,是未来计算能力实现跨越式发展的重要方向。 当前,量子计算正处于发展初期阶段,超导、离子阱、中性原子、光量子、半导体等多种硬件处理器平台并行发展,开放竞争,技术路线尚未收敛。随着量子计算硬件平台逐渐进入具有百位量子比特的中规模含噪声量子(NoisyIntermediate-ScaleQuantum,NISQ)处理器时代,基于NISQ样机开展应用研究探索已成为产业界和行业用户的共同目标。近年来,量子计算应用聚焦组合优化、量子模拟、量子人工智能等多类问题展开探索。量子组合优化通过利用量子算法在大量可能方案中更高效准确的找到最佳方案,具体可用于金融投资组合、金融衍生品定价、物流优化、旅行商问题等问题。量子模拟运用人工可控的量子系统模拟另外一个量子系统的性质和演化规律,应用范围涵盖基础物理研究、生命科学、制药、化工等多个领域。量子人工智能将量子计算与人工智能相结合,在处理大数据模型时具备潜在的加速优势,有望在机器学习、自然语言处理、大数据分析等问题中实现应用价值。当前,量子计算正处于发展初期阶段,超导、离子阱、中性原子、光量子、半导体等多种硬件处理器平台并行发展,开放竞争,技术路线尚未收敛。随着量子计算硬件平合逐渐进入具有百位量子比特的中规模含噪声量子(NoisyIntermediate-ScaleQuantum,NISQ)处理器时代,基于NISQ样机开展应用研究探索已成为产业界和行业用户的共同目标。近年来,量子计算应用聚焦组合优化、量子模拟、量子人工智能等多类间题展开探索。量子组合优化通过利用量子算法在大量可能方案中更高效准确的找到最佳方案,具体可用于金融投资组合、金融衍生品定价、物流优化、旅行商间题等间题。量子模拟运用人工可控的量子系统模拟另外一个量子系统的性质和演化规律,应用范围涵盖基础物理研究、生命科学、制药、化工等多个领域。量子人工智能将量子计算与人工智能相结合,在处理大数据模型时具备潜在的加速优势,有望在机器学习、自然语言处理、大数据分析等问题中实现应用价值。 量子应用在量子计算机上的执行需要借助特定的量子算法来实现 。 当 前 , 实 现 量 子 算 法 的 一 种 主 要 的 方 式 是 数 字 量 子 计 算量子应用在量子计算机上的执行需要借助特定的量子算法来实现。当前,实现量子算法的一种主要的方式是数学量子计算 (Digital Quantum Computing),它与基于数字逻辑门的经典计算机类似,根据具体的量子芯片处理器底层架构,构建了一套通用量子逻辑门操作(简称为“量子门”)。可以证明,特定的量子门集合能够满足图灵完备性,可以完成通用的量子计算任务。量子计算机在执行量子算法之后,返回的是量子态。为了获得具体的量子态信息,我们还需要执行量子测量操作。根据量子力学基本原理,测量后的量子态会发生塌缩,单次测量会得到确定的状态输出。通过重复制备相同的量子态,进行多次测量,可以统计出不同状态的概率,获得更具体的量子态信息。量子计算机的输出结果通常是不同量子态的概率。常见的量子门和量子测量门图标如图1所示1。基于量子门和量子测量门的集合,按照特定的顺序进行编排,可以构建出量子线路,实现一些常见的通用量子算法,如Deutsch算法、Shor算法和Grover算法等。(DigitalQuantumComputing),它与基于数学逻辑门的经典计算机类似,根据具体的量子芯片处理器底层架构,构建了一套通用量子逻辑门操作(简称为“量子门”)。可以证明,特定的量子门集合能够满足图灵完备性,可以完成通用的量子计算任务。量子计算机在执行量子算法之后,返回的是量子态。为了获得其体的量子态信息,我们还需要执行量子测量操作。根据量子力学基本原理,测量后的量子态会发生塌缩,单次测量会得到确定的状态输出。通过重复制备相同的量子态,进行多次测量,可以统计出不同状态的概率,获得更具体的量子态信息。量子计算机的输出结果通常是不同量子态的概率。常见的量子门和量子测量门图标如图1所示。基于量子门和量子测量门的集合,按照特定的顺序进行编排,可以构建出量子线路,实现一些常见的通用量子算法,如Deutsch算法、Shor算法和Grover算法等。 在NISQ阶段,量子计算机端到端解决问题的能力还较弱。在量子测量得到结果之后,利用经典计算机根据测量结果更新量子计算机所需要运行的量子线路,然后再继续利用量子计算机得到量子测量结果。这种利用经典计算机来辅助量子计算机,进行迭代计算的在NISQ阶段,量子计算机端到端解决间题的能力还较弱。在量子测量得到结果之后,利用经典计算机根据测量结果更新量子计算机所需要运行的量子线路,然后再继续利用量子计算机得到量子测量结果。这种利用经典计算机来辅助量子计算机,进行迭代计算的:obq1:HPSq2:[H 模式叫做经典-量子混合计算,这类算法通常被称为变分量子算法,可以应用到量子化学模拟、量子组合优化和量子机器学习等领域。 量子计算机是实现量子计算应用的基石,其构建涉及量子硬件平台、量子软件、量子算法等多项必备要素,其中量子软件包括应用开发软件和量子计算编译软件两大类。量子计算编译软件作为底层软件,需要满足量子计算的底层理论与算法逻辑,涵盖量子汇编语言、量子中间表示等,特异性与专业性较强,目前处于设计开发与生态构建的早期阶段,是国内外研究布局的重点。本文重点聚焦量子汇编语言和量子中间表示,调研当前量子编程的发展现状,并探讨未来的发展方向。 (二)量子编程 量子计算机是一个综合软件和硬件的复杂系统,从量子应用到量子硬件的过程,简单来说可以用下面的量子计算全栈系统图来描述,如图2所示2。从图中可以看到,量子编程是处于量子算法和量子硬件的中间层,是将量子计算的应用成功在量子计算机上执行的承上启下的一个重要部分。 量子编程需要借助一些工具来实现,这个工具就是量子编程语言。参照量子编程语言在整个量子计算机全栈系统图中所处的层次,可以将量子编程语言分为如下几类:高级量子程序设计语言(High-level Quantum Programming Language)、量子中间表示(QuantumIntermediateRepresentation,QIR) 和 量 子 汇 编 语 言 (Quantum Assembly Language,QASM)。类比于经典编程语言,高级量子程序设计语言是一种面向用户的程序语言,开发者通过调用预制的量子算法库和自定义算法,从而可以方便的实现自己的量子应用。量子汇编语言则是更加贴近于量子硬件的编程语言,可以通过量子操作系统直接调用底层量子指令。在当前阶段,量子编程语言和量子硬件仍然处在发展阶段,人们可以直接通过高级量子程序设计语言来生成量子汇编语言,将量子汇编语言作为构建编译器的中间表示。对于小规模的量子任务,人们也可以直接根据量子算法需求直接用量子汇编语言来编写程序,并且在量子硬件上执行。AssemblyLanguage,QASM)。类比于经典编程语言,高级量子程序设计语言是一种面向用户的程序语言,开发者通过调用预制的量子算法库和自定义算法,从而可以方便的实现自已的量子应用。量子汇编语言则是更加贴近于量子硬件的编程语言,可以通过量子操作系统直接调用底层量子指令。在当前阶段,量子编程语言和量子硬件仍然处在发展阶段,人们可以直接通过高级量子程序设计语言来生成量子汇编语言,将量子汇编语言作为构建编译器的中间表示。对于小规模的量子任务,人们也可以直接根据量子算法需求直接用量子汇编语言来编写程序,并且在量子硬件上执行, 量子中间表示也是将高级量子程序设计语言编译成量子汇编语言的工具,它是一种特殊的数据结构,能够方便的使用一些经典的编译工具和自定义编译优化方法,将量子程序编译的更为高效。在编写量子线路已经固定的、整个执行逻辑比较简单的量子算法时,可能很难会需要用到特殊的量子中间表示来进行编译。但是在涉及