量子汇编语言和量子中间表示发展白皮书.docx

上传人:王** 文档编号:1056134 上传时间:2024-03-22 格式:DOCX 页数:72 大小:341.51KB
下载 相关 举报
量子汇编语言和量子中间表示发展白皮书.docx_第1页
第1页 / 共72页
量子汇编语言和量子中间表示发展白皮书.docx_第2页
第2页 / 共72页
量子汇编语言和量子中间表示发展白皮书.docx_第3页
第3页 / 共72页
量子汇编语言和量子中间表示发展白皮书.docx_第4页
第4页 / 共72页
量子汇编语言和量子中间表示发展白皮书.docx_第5页
第5页 / 共72页
量子汇编语言和量子中间表示发展白皮书.docx_第6页
第6页 / 共72页
量子汇编语言和量子中间表示发展白皮书.docx_第7页
第7页 / 共72页
量子汇编语言和量子中间表示发展白皮书.docx_第8页
第8页 / 共72页
量子汇编语言和量子中间表示发展白皮书.docx_第9页
第9页 / 共72页
量子汇编语言和量子中间表示发展白皮书.docx_第10页
第10页 / 共72页
亲,该文档总共72页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《量子汇编语言和量子中间表示发展白皮书.docx》由会员分享,可在线阅读,更多相关《量子汇编语言和量子中间表示发展白皮书.docx(72页珍藏版)》请在优知文库上搜索。

1、一、量子计算与量子编程概述I(一)量子计算I(二)量子编程3二、高级量子程序设计语言概述及分类6(一)概述6(一)嵌入式量子程序设计语言8(三)独立式量子程序设计语言W三、量子汇编语言现状及进展15(一)概述15(二)OpenQASM17(三)Quil26(四)eQASM30(五)eQASM38(六)QCIS41(七)其他汇编语言44(八)小结45四、量子中间表示现状及进展47(一)概述47(二)QIR51(三)ScaffCC-IR54(四)XACC-IR56(五)OriginlR58(六)isQ-IR59(七)Quingo-IR60(八)其他IR63(九)小结64五、总结展望与建议67(一)

2、总结67(二)展望和建议69附录:中英文词汇对照表72图目录图1常见的量子逻辑门和量子测量操作2图2量子计算系统全栈示意图4图3高级量子程序设计语言的三种不同的执行模型14图4量子程序的编译和执行模型27图5经典量子反馈模型29图6量子经典异构架构38图7NetQASM架构示意图46图8量子中间表示52图9QlR组件结构图57表目录表1量子编程语言概览6表2量子汇编语言概览18表3量子中间表示概览53表4QIR代码仓结构56表5量子中间表示的分类67表6高级量子程序设计语言的生态统计70表7量子中间表示(或编译器)的生态统计70一、量子计算与量子编程概述(一)量子计算随着社会生产力的发展,人们

3、对高性能计算提出了更高的要求。面对摩尔定律的逐渐失效,科学家和工程师正全力研究发展新的计算技术,推动算力发展。量子计算以量子比特为基本计算单元,利用量子叠加等原理实现并行计算,能在某些计算困难问题上提供指数级加速,是未来计算能力实现跨越式发展的重要方向。当前,量子计算正处于发展初期阶段,超导、离子阱、中性原子、光量子、半导体等多种硬件处理器平台并行发展,开放竞争,技术路线尚未收敛。随着量子计算硬件平台逐渐进入具有百位量子比特的中规模含噪声量子(NoisyIntermediate-ScaleQuantum,NISQ)处理器时代,基于NISQ样机开展应用研究探索已成为产业界和行业用户的共同目标。近

4、年来,量子计算应用聚焦组合优化、量子模拟、量子人工智能等多类问题展开探索。量子组合优化通过利用量子算法在大量可能方案中更高效准确的找到最佳方案,具体可用于金融投资组合、金融衍生品定价、物流优化、旅行商问题等问题。量子模拟运用人工可控的量子系统模拟另外一个量子系统的性质和演化规律,应用范围涵盖基础物理研究、生命科学、制药、化工等多个领域。量子人工智能将量子计算与人工智能相结合,在处理大数据模型时具备潜在的加速优势,有望在机器学习、自然语言处理、大数据分析等问题中实现应用价值。量子应用在量子计算机上的执行需要借助特定的量子算法来实现。当前,实现量子算法的一种主要的方式是数字量子计算(Digital

5、QuantumComputing),它与基于数字逻辑门的经典计算机类似,根据具体的量子芯片处理器底层架构,构建了一套通用量子逻辑门操作(简称为“量子门”)。可以证明,特定的量子门集合能够满足图灵完备性,可以完成通用的量子计算任务。量子计算机在执行量子算法之后,返回的是量子态。为了获得具体的量子态信息,我们还需要执行量子测量操作。根据量子力学基本原理,测量后的量子态会发生塌缩,单次测量会得到确定的状态输出。通过重复制备相同的量子态,进行多次测量,可以统计出不同状态的概率,获得更具体的量子态信息。量子计算机的输出结果通常是不同量子态的概率。常见的量子门和量子测量门图标如图1所示1。基于量子门和量子

6、测量门的集合,按照特定的顺序进行编排,可以构建出量子线路,实现一些常见的通用量子算法,如DeUtSCh算法、ShOr算法和Grover算法等。在NlSQ阶段,量子计算机端到端解决问题的能力还较弱。在量子测量得到结果之后,利用经典计算机根据测量结果更新量子计算机所需要运行的量子线路,然后再继续利用量子计算机得到量子测量结果。这种利用经典计算机来辅助量子计算机,进行迭代计算的图8常见的子逻辑门和子测操作模式叫做经典-量子混合计算,这类算法通常被称为变分量子算法,可以应用到量子化学模拟、量子组合优化和量子机器学习等领域。量子计算机是实现量子计算应用的基石,其构建涉及量子硬件平台、量子软件、量子算法等

7、多项必备要素,其中量子软件包括应用开发软件和量子计算编译软件两大类。量子计算编译软件作为底层软件,需要满足量子计算的底层理论与算法逻辑,涵盖量子汇编语言、量子中间表示等,特异性与专业性较强,目前处于设计开发与生态构建的早期阶段,是国内外研究布局的重点。本文重点聚焦量子汇编语言和量子中间表示,调研当前量子编程的发展现状,并探讨未来的发展方向。(二)量子编程量子计算机是一个综合软件和硬件的复杂系统,从量子应用到量子硬件的过程,简单来说可以用下面的量子计算全栈系统图来描述,如图2所示2。从图中可以看到,量子编程是处于量子算法和量子硬件的中间层,是将量子计算的应用成功在量子计算机上执行的承上启下的一个

8、重要部分。量子编程需要借助一些工具来实现,这个工具就是量子编程语言。参照量子编程语言在整个量子计算机全栈系统图中所处的层次,可以将量子编程语言分为如下几类:高级量子程序设计语言(High-levelQuantumProgrammingLanguage)、量子中间表示(QUantUmIntermediateRepresentation,QIR)和量子汇编语言(Quantum子应用量子算法高级量子程序设计语言蚣式I独立式量子编程量子编译器量子中间表示子汇编语言量子硬件图9子计算系统全栈示意图2AssemblyLanguage,QASM)o类比于经典编程语言,高级量子程序设计语言是一种面向用户的程序

9、语言,开发者通过调用预制的量子算法库和自定义算法,从而可以方便的实现自己的量子应用。量子汇编语言则是更加贴近于量子硬件的编程语言,可以通过量子操作系统直接调用底层量子指令。在当前阶段,量子编程语言和量子硬件仍然处在发展阶段,人们可以直接通过高级量子程序设计语言来生成量子汇编语言,将量子汇编语言作为构建编译器的中间表示。对于小规模的量子任务,人们也可以直接根据量子算法需求直接用量子汇编语言来编写程序,并且在量子硬件上执行。量子中间表示也是将高级量子程序设计语言编译成量子汇编语言的工具,它是一种特殊的数据结构,能够方便的使用一些经典的编译工具和自定义编译优化方法,将量子程序编译的更为高效。在编写量

10、子线路已经固定的、整个执行逻辑比较简单的量子算法时,可能很难会需要用到特殊的量子中间表示来进行编译。但是在涉及到复杂的量子算法,比如经典-量子混合算法时,使用量子中间表示构建的编译器就可以更容易实现一些加速优化方法。比如在进行经典-量子混合算法时,可能会遇到迭代的过程中,所有的量子门操作参数均为O的情况。这种情况下,所有的量子门操作等价于恒等操作(identity),量子线路的运行结果就是其初始的量子态。通常如果是直接使用量子汇编语言来编写的量子算法,那么这种操作也会在量子计算机上运行。如果是用高级量子程序设计语言来编写,并且使用量子中间表示来进行编译、转换和优化,那么在编译优化的过程中可以方

11、便的定义一些优化转换的方法,使得这种不会产生任何实际效果的迭代结果可以直接得到,不需要使用量子计算机。并且与直接使用量子汇编语言作为中间表示进行的编译相比,量子中间表示可以让整个编译过程更加高效,功能更加丰富。基于量子中间表示的量子编译器是运行复杂量子算法的必由之路。自从量子计算机理念被提出来后,人们就开始了量子编程语言的设计。下表统计了部分量子编程语言,并区分了其在整个量子计算机系统中的层级。在后面的章节中,我们先简要介绍高级量子程序设计语言,然后再详细介绍本白皮书重点关注的,与量子硬件关系更为密切的量子汇编语言和量子中间表示。表1量子编程语言概览3时间量子编程语言抽象层级研发单位1998Q

12、CL低维也纳研究所(奥地利)2003Qlanguage高图卢兹实验室(法国)2014ScaffCC低普林斯顿大学(美国)2016QASM低洛斯阿拉莫斯国家实验室(美国)2016ProjectQ高苏黎世联邦理工学院(瑞士)2016Quil高RigettiComputing(美国)2017OpenQASM(2.0)低IBM(美国)2017eQASM低代尔夫特理工大学(荷兰)2017QiskitIBM(美国)2017QPanda高本源量子(中国)2018eQASM低代尔夫特理工大学(荷兰)2018Cirq高Google(美国)2018XACC低橡树岭国家实验室(美国)2018QPanda高本源量子(

13、中国)2019QRunes低本源量子(中国)2020QIR低QIR联盟(美国)2020Quingol国防科技大学、华东师范大学(中国)2021NetQASM低代尔夫特理工大学(荷兰)2021QCIS低中国科学技术大学(中国)2021MindQuantum高MindSpore开源组织(中国)2021OpenQASM3.0低IBM(美国)2022isQ低弧光量子(中国)二、高级量子程序设计语言概述及分类1.)概述高级量子程序设计语言是专为设计和实现量子算法而创建的工具。随着量子计算技术的发展,越来越多的高级量子程序设计语言正在被开发出来,以帮助研究人员和开发者更好地利用量子计算机的潜力。在这些高级

14、量子程序设计语言中,我们可以根据它们是否依赖于现有的经典编程语言来分为两类:嵌入式量子程序设计语言和独立式量子程序设计语言。嵌入式量子程序设计语言是一种嵌入式领域特定语言(embeddedDomain-SpecificLanguage,eDSL),它是基于现有经典编程语言(如C+或PythOn)构建的。这些语言通常作为库或框架集成到宿主语言中,允许开发者使用熟悉的语法和工具来编写量子程序。嵌入式量子程序设计语言可以轻松地与经典代码交互,并利用经典编程生态系统的强大功能,例如编译器、调试器和开发环境等。止匕外,嵌入式量子程序设计语言还可以简化经典-量子混合计算的编程任务独立式量子程序设计语言则是

15、从零开始设计的高级量子程序设计语言,不依赖于任何现有的其他编程语言,其定位类似于经典编程语言中的C+或Python等通用的编程语言。独立式量子程序设计语言的目标是提供一个更直观且与硬件无关的抽象层,以便专注于量子算法的设计和优化。由于它们独立于任何特定的经典编程语言,因此独立式量子程序设计语言可能需要开发者学习新的语法和编程范式。然而,这种全新的设计也为开发者提供了更多自由度,能够更好地表达量子计算特有的概念,比如叠加态、纠缠和测量等。无论是嵌入式还是独立式量子程序设计语言,它们都旨在降低量子计算的入门门槛,使更多的研究人员和开发者能够参与到这个快速发展的领域中来。下面我们将针对部分嵌入式和独立式量子程序设计语言进行更为深入的介绍。(二)嵌入式量子程序设计语言典型的嵌入式量子程序设计语言包括Qiskit.ProjectQMindSporeQuantum、QPanda

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!