CN116523053A - 量子线路模拟方法、装置、设备、存储介质及程序产品 - Google Patents
量子线路模拟方法、装置、设备、存储介质及程序产品 Download PDFInfo
- Publication number
- CN116523053A CN116523053A CN202210077584.7A CN202210077584A CN116523053A CN 116523053 A CN116523053 A CN 116523053A CN 202210077584 A CN202210077584 A CN 202210077584A CN 116523053 A CN116523053 A CN 116523053A
- Authority
- CN
- China
- Prior art keywords
- function
- input parameters
- objective function
- input
- converted
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004088 simulation Methods 0.000 title claims abstract description 111
- 238000000034 method Methods 0.000 title claims abstract description 104
- 238000003860 storage Methods 0.000 title claims abstract description 30
- 239000013598 vector Substances 0.000 claims abstract description 112
- 230000008569 process Effects 0.000 claims abstract description 34
- 230000010354 integration Effects 0.000 claims abstract description 29
- 230000006870 function Effects 0.000 claims description 392
- 238000012545 processing Methods 0.000 claims description 63
- 238000006243 chemical reaction Methods 0.000 claims description 54
- 238000005259 measurement Methods 0.000 claims description 53
- 230000005428 wave function Effects 0.000 claims description 44
- 238000005457 optimization Methods 0.000 claims description 27
- 238000010801 machine learning Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 15
- 238000002910 structure generation Methods 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 description 37
- 238000010586 diagram Methods 0.000 description 15
- 238000004422 calculation algorithm Methods 0.000 description 13
- 230000001133 acceleration Effects 0.000 description 8
- 230000008901 benefit Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 239000011159 matrix material Substances 0.000 description 6
- 239000004433 Thermoplastic polyurethane Substances 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 230000004069 differentiation Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 239000002096 quantum dot Substances 0.000 description 4
- 229920002803 thermoplastic polyurethane Polymers 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000005283 ground state Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000000342 Monte Carlo simulation Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- UYNVMODNBIQBMV-UHFFFAOYSA-N 4-[1-hydroxy-2-[4-(phenylmethyl)-1-piperidinyl]propyl]phenol Chemical compound C1CC(CC=2C=CC=CC=2)CCN1C(C)C(O)C1=CC=C(O)C=C1 UYNVMODNBIQBMV-UHFFFAOYSA-N 0.000 description 1
- 238000012935 Averaging Methods 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000010923 batch production Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000004907 flux Effects 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 229960003998 ifenprodil Drugs 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 229940050561 matrix product Drugs 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000002907 substructure search Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N10/00—Quantum computing, i.e. information processing based on quantum-mechanical phenomena
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N10/00—Quantum computing, i.e. information processing based on quantum-mechanical phenomena
- G06N10/20—Models of quantum computing, e.g. quantum circuits or universal quantum computers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N10/00—Quantum computing, i.e. information processing based on quantum-mechanical phenomena
- G06N10/60—Quantum algorithms, e.g. based on quantum optimisation, quantum Fourier or Hadamard transforms
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B82—NANOTECHNOLOGY
- B82Y—SPECIFIC USES OR APPLICATIONS OF NANOSTRUCTURES; MEASUREMENT OR ANALYSIS OF NANOSTRUCTURES; MANUFACTURE OR TREATMENT OF NANOSTRUCTURES
- B82Y10/00—Nanotechnology for information processing, storage or transmission, e.g. quantum computing or single electron logic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N10/00—Quantum computing, i.e. information processing based on quantum-mechanical phenomena
- G06N10/40—Physical realisations or architectures of quantum processors or components for manipulating qubits, e.g. qubit coupling or qubit control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02E—REDUCTION OF GREENHOUSE GAS [GHG] EMISSIONS, RELATED TO ENERGY GENERATION, TRANSMISSION OR DISTRIBUTION
- Y02E60/00—Enabling technologies; Technologies with a potential or indirect contribution to GHG emissions mitigation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Condensed Matter Physics & Semiconductors (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种量子线路模拟方法、装置、设备、存储介质及程序产品,属于量子技术领域。所述方法包括:获取量子线路模拟所涉及的原始函数,以及确定原始函数中需要并行化的第一输入参数;其中,原始函数用于实现量子线路模拟中的目标步骤;根据原始函数以及第一输入参数,将原始函数转换为目标函数;其中,目标函数的输入参数包括第一输入参数对应的转换后第一输入参数,转换后第一输入参数对应的张量,是第一输入参数对应的多个并行化张量的整合结果;执行目标函数,得到目标函数对应的执行结果;基于目标函数对应的执行结果,执行量子线路模拟的过程。本申请将向量并行化的思想引入到量子线路模拟,提升了量子线路模拟的效率。
Description
技术领域
本申请实施例涉及量子技术领域,特别涉及一种量子线路模拟方法、装置、设备、存储介质及程序产品。
背景技术
量子线路模拟是指通过经典计算机和数值计算的方式,来模拟和近似量子计算机的行为。
目前,量子线路模拟的效率并不高。
发明内容
本申请实施例提供了一种量子线路模拟方法、装置、设备、存储介质及程序产品。所述技术方案如下:
根据本申请实施例的一个方面,提供了一种量子线路模拟方法,所述方法包括:
获取量子线路模拟所涉及的原始函数,以及确定所述原始函数中需要并行化的第一输入参数;其中,所述原始函数用于实现所述量子线路模拟中的目标步骤;
根据所述原始函数以及所述第一输入参数,将所述原始函数转换为目标函数;其中,所述目标函数的输入参数包括所述第一输入参数对应的转换后第一输入参数,所述转换后第一输入参数对应的张量,是所述第一输入参数对应的多个并行化张量的整合结果;
执行所述目标函数,得到所述目标函数对应的执行结果;
基于所述目标函数对应的执行结果,执行所述量子线路模拟的过程。
根据本申请实施例的一个方面,提供了一种量子线路模拟装置,所述装置包括:
函数获取模块,用于获取量子线路模拟所涉及的原始函数,以及确定所述原始函数中需要并行化的第一输入参数;其中,所述原始函数用于实现所述量子线路模拟中的目标步骤;
函数转换模块,用于根据所述原始函数以及所述第一输入参数,将所述原始函数转换为目标函数;其中,所述目标函数的输入参数包括所述第一输入参数对应的转换后第一输入参数,所述转换后第一输入参数对应的张量,是所述第一输入参数对应的多个并行化张量的整合结果;
函数执行模块,用于执行所述目标函数,得到所述目标函数对应的执行结果;
线路模拟模块,用于基于所述目标函数对应的执行结果,执行所述量子线路模拟的过程。
根据本申请实施例的一个方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现上述量子线路模拟方法。
根据本申请实施例的一个方面,提供了一种计算机可读存储介质,所述存储介质中存储有计算机程序,所述计算机程序由处理器加载并执行以实现上述量子线路模拟方法。
根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中,处理器从所述计算机可读存储介质读取并执行所述计算机指令,以实现上述量子线路模拟方法。
本申请实施例提供的技术方案可以带来如下有益效果:
通过将向量并行化的思想引入到量子线路模拟,通过将原始函数转换为目标函数,目标函数的输入参数包括需要并行化的第一输入参数对应的转换后第一输入参数,该转换后第一输入参数对应的张量是第一输入参数对应的多个并行化张量的整合结果,通过执行目标函数就可以将原本需要执行多次的计算过程,并行化为一次计算过程来执行,这样只需要和单次计算相同的时间就可完成,充分提升了量子线路模拟的效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个实施例提供的量子线路模拟方法的流程图;
图2是本申请一个实施例提供的vmap接口的功能示意图;
图3是本申请另一个实施例提供的量子线路模拟方法的流程图;
图4是本申请一个实施例提供的目标量子线路的数值模拟的示意图;
图5是本申请一个实施例提供的并行化地处理输入波函数的示意图;
图6是本申请一个实施例提供的并行化地优化线路变分参数的示意图;
图7是本申请一个实施例提供的张量网络包含参数化结构信息的示意图;
图8是本申请一个实施例提供的并行化地生成线路结构的示意图;
图9是本申请一个实施例提供的实验结果的示意图;
图10是本申请一个实施例提供的量子线路模拟装置的框图;
图11是本申请一个实施例提供的计算机设备的示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在对本申请技术方案进行介绍之前,先对本申请中涉及的一些关键术语进行解释说明。
1.量子计算:基于量子逻辑的计算方式,存储数据的基本单元是量子比特(qubit)。
2.量子比特:量子计算的基本单元。传统计算机使用0和1作为二进制的基本单元。不同的是量子计算可以同时处理0和1,系统可以处于0和1的线性叠加态:|ψ>=α|0>+β|1>,这边α,β代表系统在0和1上的复数概率幅。它们的模平方|α|2,|β|2分别代表处于0和1的概率。
3.量子线路:量子通用计算机的一种表示,代表了相应量子算法/程序在量子门模型下的硬件实现。若量子线路中包含可调的控制量子门的参数,则被称为参数化量子线路(Parameterized Quantum Circuit,简称PQC)或变分量子线路(Variational QuantumCircuit,简称VQC),两者为同一概念。
4.哈密顿量:描述量子系统总能量的一个厄密共轭的矩阵。哈密顿量是一个物理词汇,是一个描述系统总能量的算符,通常以H表示。
5.本征态:对于一个哈密顿量矩阵H,满足方程:H|ψ>=E|ψ>的解称之为H的本征态|ψ>,具有本征能量E。基态则对应了量子系统能量最低的本征态。
6.量子经典混合计算:一种内层利用量子线路(如PQC)进行计算得出相应物理量或损失函数,外层用传统的经典优化器调节量子线路变分参数的计算范式,可以最大限度地发挥量子计算的优势,被相信是有潜力证明量子优势的重要方向之一。一般我们也会把这种量子经典混合计算的范式称为变分量子算法。
7.NISQ(Noisy Intermediate-Scale Quantum):近期中等规模有噪声的量子硬件,是量子计算发展现在所处的阶段和研究的重点方向。这一阶段量子计算暂时由于规模和噪声的限制,无法作为通用计算的引擎应用,但在部分问题上,已经可以实现超越最强经典计算机的结果,这通常被称作量子霸权或量子优势。
8.变分量子本征求解器(Variational Quantum Eigensolver,简称VQE):通过变分线路(即PQC/VQC)实现特定量子系统基态能量的估计,是一种典型的量子经典混合计算范式,在量子化学领域有广泛的应用。
9.泡利字符串(Pauli string):在不同格点多个泡利矩阵的直积组成的项,一般的哈密顿量通常可以拆解为一组泡利字符串之和。VQE的测量也一般都按照泡利字符串分解来逐项测量。每项泡利字符串的期望值可以在量子线路上通过多次测量取平均来估计。
10.比特字符串(bitstring,或称为经典比特串):一串由0,1组成的数字。对量子线路每次测量得到的经典结果,可以根据在测量基上的自旋构型的上下分别由0,1表示,从而总的一次测量结果对应一个比特字符串。每次测量泡利字符串的测量值都有比特字符串计算给出。
11.量子线路软件模拟:通过经典计算机和数值计算的方式,来模拟和近似量子计算机的行为。量子线路软件模拟简称为“量子线路模拟”。
12.向量并行化:向量并行化通过将原始函数的各个算子逐一做硬件支持的向量化实现,从而实现高层函数的高速并行。这一实现通常和静态图编译一起进行。例如,对于函数f(x)=2×x,我们输入为1时返回2,即f(1)=2。而向量并行化版本fv(x),可以实现fv([1,2])=[2,4]。这一过程不是依次计算的,而是可以利用硬件上的向量指令集(或称为向量化指令集)同时完成计算,因此计算fv([1,2])的时间和f(1)几乎相同,会比依次计算f(1)、f(2)的时间少一半。如果向量的维度(并行维度/batch维度)的大小进一步增加,那么加速会更加明显。在这个例子中,f(x)是原始函数,乘法是唯一出现的算子,这一计算的向量化支持取决于硬件,如CPU(Central Processing Unit,中央处理器)或GPU(GraphicsProcessing Unit,图形处理器)上的向量指令集。高层函数指的就是这里的f,我们不需要考虑硬件细节和f的底层实现,就可以利用现代机器学习框架封装好的接口,实现其向量并行化。静态图编译过程即是现代机器学习框架提供的将高层计算API(ApplicationProgramming Interface,应用程序编程接口)编译融合成硬件底层操作的过程,可以实现数值计算的加速。
13.泡利算符:也称为泡利矩阵,是一组三个2×2的幺正厄米复矩阵(又称酉矩阵),一般都以希腊字母σ(西格玛)来表示。其中,泡利X算符为泡利Y算符为泡利Z算符为/>
14.可微结构搜索(Differentiable Architecture Search,简称DARTS):一种热门的NAS(Neural Architecture Search,神经网络结构搜索)方案,通过允许不同节点之间多个操作层按权重相加,从而可以在超级网络(super network)中进行端到端的微分计算和梯度下降搜索,极大提升了神经网络结构搜索的速度。DARTS不去搜索离散的候选结构,而是让搜索空间变为连续的,这样可以通过梯度下降根据验证集的性能优化网络结构。基于梯度的优化算法,相较于低效的黑盒搜索,让DARTS可以匹敌当前顶尖的性能,同时计算少了几个量级。
15.量子结构搜索(Quantum Architecture Search,简称QAS):尝试对量子线路的结构、模式和排布进行自动化和程序化搜索的一系列工作和方案的总称。传统上量子结构搜索的工作通常会采用贪心算法、强化学习或基因算法作为其核心技术。较新的可微量子结构搜索技术,则可以高通量的按批来迭代评估量子线路结构的优劣。
16.张量网络(tensor network):是一系列张量及其之间连接的信息,可以用更少的信息来表示高维的张量。同时每一个量子线路都可以映射成一个张量网络,因此可以通过张量网络缩并的方式,来模拟量子线路。
在量子线路模拟的应用场景中,对于一些需要并行化的维度,通常进行简单的串行的循环计算,也即简单for loop来实现相应的多次计算。这种方式的并行度为0。因此若待并行维度的大小是1000,则需要1000倍单次计算的时间来实现软件模拟。
一种稍微优化的方案是利用多进程或多线程技术,来对待并行的计算部分进行加速,使得需要并行维度的不同计算,分布在不同进程上同时计算。但这种方案通常受到硬件架构和操作系统的限制,对于不同硬件需要单独实现。原因在于,多进程和多线程实现的高层程序接口,严重依赖于硬件细节和操作系统,因此不同的软硬件上运行,需要重写代码,导致代码的可复用性低。这会增加大量的开发和使用成本,同时GPU和TPU(TensorProcessing Unit,张量处理器)等异构硬件上,对多进程和多线程的支持并不友好。多进程情形下,每个任务只在单进程上计算,无法充分利用向量操作集(即硬件原生的向量操作集支持),对每个计算的时间也有负面影响。此外,这种多进程并行,受限于CPU核数,单机CPU通常只能实现几个或几十个计算模块的同时运行,对于待并行维度是1000的情形,仍需要单次计算几十倍或更多的时间来完成。
本申请提出将向量并行化的思想引入到量子线路模拟,本申请中的向量并行化,本质上是将并行维度视为了线性代数的一个额外的维度,直接从底层算子就实现了批(batch)并行能力,可以充分发挥GPU等硬件的优势。例如,对于并行维度大小是1000的情形,一般只需要和单次计算相同的时间。因此对于大规模量子模拟的效率,要远远高于之前的方案。同时该方案有良好的设计接口,且与后端硬件和系统的细节无关,对于使用和开发,都有极大的便利。
本申请实施例提供的量子线路模拟方法,各步骤的执行主体可以是经典计算机,如PC(Personal Computer,个人计算机),例如通过经典计算机执行相应的计算机程序以实现该方法。在下述方法实施例中,为了便于说明,仅以各步骤的执行主体为计算机设备进行介绍说明。
图1是本申请一个实施例提供的量子线路模拟方法的流程图。该方法各步骤的执行主体可以是计算机设备,如经典计算机。该方法可以包括如下几个步骤(110~140):
步骤110,获取量子线路模拟所涉及的原始函数,以及确定原始函数中需要并行化的第一输入参数;其中,原始函数用于实现量子线路模拟中的目标步骤。
量子线路模拟的过程中,可能涉及处理输入波函数、优化线路变分参数、生成线路噪声、生成线路结构、执行线路测量等步骤中的其中一个或多个步骤。可选地,原始函数用于实现量子线路模拟中的目标步骤,该目标步骤包括但不限于以下任意一种:处理输入波函数、优化线路变分参数、生成线路噪声、生成线路结构、执行线路测量。以原始函数用于处理输入波函数为例,该原始函数用于对目标量子线路的输入波函数进行计算得到相应的计算结果。以原始函数用于优化线路变分参数为例,该原始函数用于对目标量子线路的线路变分参数进行优化,得到优化后的线路变分参数。
原始函数的输入参数的数量可以是一个,也可以是多个。上述第一输入参数是指原始函数中需要并行化的输入参数。第一输入参数的数量可以是一个或多个。示例性地,原始函数f记为f(x,y,w),表示该原始函数f的输入参数有3个,包括x、y和w这3个输入参数。假设该原始函数f的3个输入参数中,需要并行化的输入参数为x,那么上述第一输入参数即为x,另外两个参数y和w不需要并行化。或者,假设该原始函数f的3个输入参数中,需要并行化的输入参数为x和y,那么上述第一输入参数即为x和y,另外一个参数w不需要并行化。
针对不同的原始函数,其输入参数可能会有所不同,相应地其需要并行化的第一输入参数也可能会有所不同。在实际应用中,在原始函数确定下来之后,其输入参数也就确定,我们可以根据实际情况,选择适合并行化处理的一个或多个输入参数,作为第一输入参数。
步骤120,根据原始函数以及第一输入参数,将原始函数转换为目标函数;其中,目标函数的输入参数包括第一输入参数对应的转换后第一输入参数,转换后第一输入参数对应的张量,是第一输入参数对应的多个并行化张量的整合结果。
目标函数的输入参数包括需要并行化的第一输入参数对应的转换后第一输入参数。可选地,如果原始函数的输入参数除了包括需要并行化的第一输入参数之外,还包括不需要并行化的目标输入参数,那么目标函数的输入参数除了包括该第一输入参数对应的转换后第一输入参数之外,还包括上述不需要并行化的目标输入参数。示例性地,原始函数f记为f(x,y,w),假设该原始函数f的3个输入参数中,x和y需要并行化,w不需要并行化,那么目标函数f′可记为f′(xs,ys,w),其中xs表示与输入参数x对应的转换后x,ys表示与输入参数y对应的转换后y,输入参数w不需要并行化因此无需对其进行转换。
可选地,如果第一输入参数对应的并行化尺寸(或称为“批处理尺寸(batchsize)”)为n,n为大于1的整数,即表示第一输入参数对应的n个张量进行并行化处理,那么转换后第一输入参数对应的张量则是上述n个张量的整合结果。
可选地,在目标维度对第一输入参数对应的多个并行化张量进行拼接,得到转换后第一输入参数对应的张量;其中,转换后第一输入参数对应的张量在目标维度的尺寸,与第一输入参数对应的并行化张量的数量相对应。
示例性地,如图2所示,对于原始函数f(x,y,w)中需要并行化的输入参数x,假设其对应的并行化尺寸为n,那么在目标维度将该输入参数x对应的n个张量进行拼接,该拼接得到的张量即为xs对应的张量。可选地,上述n的取值可以是2、10、50、100、200、500、1000等,具体可以根据实际需求进行设定,本申请对此不作限定。
步骤130,执行目标函数,得到目标函数对应的执行结果。
在将原始函数转换为目标函数之后,执行该目标函数得到对应的执行结果。可选地,采用向量并行化方式执行目标函数,得到目标函数对应的执行结果。在本申请实施例中,将向量并行化的思想引入到量子线路模拟中。由于目标函数的输入参数包括转换后第一输入参数,因此可以采用向量并行化方式对该转换后第一输入参数对应的张量进行处理,直接一步计算得到目标函数对应的执行结果。
假设原始函数的执行耗时为t,对于并行化尺寸为n的情形,如果采用简单循环的方式执行n次原始函数,则总耗时需要n×t,而将该原始函数转换为目标函数之后,采用向量并行化方式执行该目标函数所需的耗时理论上也是t,这相比于n×t将大大缩减,且随着n的增加,缩减效果将愈加显著。
步骤140,基于目标函数对应的执行结果,执行量子线路模拟的过程。
在得到目标函数对应的执行结果之后,便可以执行量子线路模拟的过程。以原始函数用于处理输入波函数为例,相应的目标函数对应的执行结果则包括多个输入波函数分别对应的处理结果,后续可以基于该多个输入波函数分别对应的处理结果,进行线路变分参数的优化等步骤。以原始函数用于优化线路变分参数为例,相应的目标函数对应的执行结果则包括多组线路变分参数分别对应的优化结果,后续可以基于该多组线路变分参数分别对应的优化结果,选择最优的一组线路变分参数作为最终的目标量子线路。
本申请提供的技术方案,通过将向量并行化的思想引入到量子线路模拟,通过将原始函数转换为目标函数,目标函数的输入参数包括需要并行化的第一输入参数对应的转换后第一输入参数,该转换后第一输入参数对应的张量是第一输入参数对应的多个并行化张量的整合结果,通过执行目标函数就可以将原本需要执行多次的计算过程,并行化为一次计算过程来执行,这样只需要和单次计算相同的时间就可完成,充分提升了量子线路模拟的效率。
图3是本申请另一个实施例提供的量子线路模拟方法的流程图。该方法各步骤的执行主体可以是计算机设备,如经典计算机。该方法可以包括如下几个步骤(310~350):
步骤310,获取量子线路模拟所涉及的原始函数,以及确定原始函数中需要并行化的第一输入参数;其中,原始函数用于实现量子线路模拟中的目标步骤。
步骤310和图1所示实施例中的步骤110相同,具体可参见图1实施例中的介绍说明,本实施例对此不再赘述。
步骤320,调用函数转换接口,向函数转换接口传入原始函数和第一信息,该第一信息用于指示原始函数中需要并行化的第一输入参数。
函数转换接口用于实现将原始函数转换为目标函数的功能。该函数转换接口可以是面向用户的接口,如API(Application Programming Interface,应用程序编程接口)。
第一信息用于指示原始函数中需要并行化的第一输入参数。可选地,第一信息用于指示原始函数中需要并行化的第一输入参数的位置。例如,原始函数f(x,y,w)中输入参数x、y、w的位置编号依次为0、1、2,假设需要并行化的输入参数为x,那么第一信息为0;或者,假设需要并行化的输入参数为x和y,那么第一信息为0和1。通过位置来指示原始函数中需要并行化的第一输入参数,可以实现准确且简短地指示。
步骤330,通过函数转换接口根据第一信息,将原始函数转换为目标函数;其中,目标函数的输入参数包括第一输入参数对应的转换后第一输入参数,转换后第一输入参数对应的张量,是第一输入参数对应的多个并行化张量的整合结果。
函数转换接口根据第一信息,确定原始函数中需要并行化的第一输入参数,然后基于该第一输入参数,将原始函数转换为目标函数。例如,对于原始函数中需要并行化的第一输入参数,在目标维度对第一输入参数对应的多个并行化张量进行拼接,得到转换后第一输入参数对应的张量;对于原始函数中不需要并行化的目标输入参数,直接保留该目标输入参数作为目标函数的输入参数。这样,目标函数的输入参数包括转换后第一输入参数,可选地还包括目标输入参数。函数转换接口支持向量并行化功能,经过函数转换接口的上述转换,目标函数能够用于输出并行计算多次原始函数的结果。
可选地,函数转换接口除了支持向量并行化功能之外,还支持自动微分功能,其转换得到的目标函数除了用于输出并行计算多次原始函数的结果之外,还用于输出原始函数相对于第二输入参数的导数信息,该第二输入参数是指原始函数的输入参数中需要求导的输入参数。第二输入参数的数量可以是一个或多个。另外,第二输入参数和第一输入参数有可能相同,也有可能不同。例如,原始函数f(x,y,w)中输入参数为x、y、w,其需要并行化的第一输入参数为x,需要求导的第二输入参数也为x;或者,其需要并行化的第一输入参数为x和y,需要求导的第二输入参数为x;或者,其需要并行化的第一输入参数为w,需要求导的第二输入参数为y,等等。
可选地,在调用函数转换接口时,向该函数转换接口传入原始函数、第一信息和第二信息,该第二信息用于指示原始函数中需要求导的第二输入参数。可选地,第二信息用于指示原始函数中需要求导的第二输入参数的位置。例如,原始函数f(x,y,w)中输入参数x、y、w的位置编号依次为0、1、2,假设需要并行化的第一输入参数为x和y,需要求导的第二输入参数为x,那么第一信息为0和1,第二信息为0。相应地,通过函数转换接口根据第一信息和第二信息,将原始函数转换为目标函数,目标函数用于输出并行计算多次原始函数的结果,还用于输出原始函数相对于第二输入参数的导数信息。
在一些实施例中,函数转换接口包括第一接口和第二接口;其中,第一接口用于根据第一信息,将原始函数转换为目标函数;第二接口用于根据第一信息和第二信息,将原始函数转换为目标函数。也即,第一接口是支持向量并行化功能的函数转换接口,或者说第一接口是仅支持向量并行化功能的函数转换接口。第二接口是支持向量并行化功能和自动微分功能的函数转换接口。
示例性地,第一接口为vmap接口,该vmap接口的函数签名示例性如下:vmap(f:Callable[...,Any],vectorized_argnums:Union[int,Sequence[int]]=0)→Callable[…,Any]。其中,f表示待并行化的原始函数,vectorized_argnums用于指示需要并行化的第一输入参数,如用于指示需要并行化的第一输入参数的位置。在上述vmap接口的函数签名中,f:Callable[...,Any]表示原始函数f可以是任意输入和输出都是张量的函数;vectorized_argnums:Union[int,Sequence[int]]=0表示vectorized_argnums可以是一个数值(如0或1或2或3等等),也可以是一串数值(如0,1或0,1,2或1,2等等),且vectorized_argnums的默认值为0。输出定义为Callable[…,Any]。
如图2所示,其示例性示出了vmap接口的功能示意图。对于任意原始函数f(如任何输入和输出都是张量的原始函数),经过vmap接口的函数转换,会输出另一个目标函数f′。f′=vmap(f,vectorized_argnums=(0,1)),其中,vectorized_argnums=(0,1)表示原始函数f中需要并行化的第一输入参数的位置编号为0和1,也即x和y需要并行化,w不需要并行化。该目标函数f′的输入格式(即输入参数的类型和形状)与原始函数f的输入格式相同,除了在vectorized_argnums指示的位置的输入参数,对应的张量形状比原始函数f相应的输入张量多了一个维度(即图2中的竖向维度,原始函数f中是不存在的),设该维度的大小为n,n为大于1的整数,该n也可以称为批处理尺寸。vmap接口转换得到的目标函数f′,其最终计算效果等价于计算n次原始函数f,每次原始函数f的输入为非vectorized_argnums位置的参数和vectorized_argnums位置的参数的一个低一维的切片。在图2中相同颜色的一个张量即为一个切片,如图2中虚线框所示即为一个切片。只不过这n次对原始函数f的调用,可以底层融合成统一的算子并行同时计算。
示例性地,第二接口为vectorized_value_and_grad接口,其可以简写为vvag接口。该vvag接口的函数签名示例性如下:vectorized_value_and_grad(f:Callable[...,Any],argnums:Union[int,Sequence[int]]=0,vectorized_argnums:Union[int,Sequence[int]]=0)→Callable[...,Tuple[Tensor,Tensor]]。其中,f表示待并行化的原始函数,vectorized_argnums用于指示需要并行化的第一输入参数,如用于指示需要并行化的第一输入参数的位置,argnums用于指示需要求导的第二输入参数,如用于指示需要求导的第二输入参数的位置。在上述vvag接口的函数签名中,f:Callable[...,Any]表示原始函数f可以是任意输入和输出都是张量的函数;vectorized_argnums:Union[int,Sequence[int]]=0表示vectorized_argnums可以是一个数值(如0或1或2或3等等),也可以是一串数值(如0,1或0,1,2或1,2等等),且vectorized_argnums的默认值为0;argnums:Union[int,Sequence[int]]=0表示argnums可以是一个数值(如0或1或2或3等等),也可以是一串数值(如0,1或0,1,2或1,2等等),且argnums的默认值为0。输出定义为Callable[...,Tuple[Tensor,Tensor]],表示输出包含2个张量,其中一个张量是并行计算多次原始函数f的结果,另一个张量是原始函数f相对于argnums所指示位置的输入参数的导数信息。
对于任意原始函数f(如任何输入和输出都是张量的原始函数),经过vvag接口的函数转换,会输出另一个目标函数f′。目标函数f′在vectorized_argnums指示的位置的输入参数,对应的张量形状比原始函数f相应的输入张量多了一个维度,这一点与vmap接口的功能相同。与此同时,经vvag接口转换得到的目标函数f′的返回,除了返回并行计算多次原始函数f的结果之外,还会返回原始函数f相对于argnums所指示位置的输入参数的导数信息。
示例性地,vvag接口对应的数学表达如下,原始函数为f,该原始函数f经过vvag接口转换得到的目标函数为f′:
f′=vvag(f,argnums=k,vectorized_argnums=p)
f′(arg[0],…,arg[p],…,arg[k],…)=(v,g)
vi=f(arg[0],…,arg[p][i],…,arg[k],…)
其中,argnums=k表示原始函数f的输入参数中,位置编号为k的输入参数是需要求导的输入参数。vectorized_argnums=p表示原始函数f的输入参数中,位置编号为p的输入参数是需要并行化的输入参数。arg[0],…,arg[p],…,arg[k],…表示目标函数f′的输入参数,其输出为v和g两个张量,其中v表示并行计算多次原始函数f的结果,g表示原始函数f相对于argnums所指示位置的输入参数的导数信息。arg[p][i]表示转换后位置编号为p的输入参数对应的张量中的第i个切片,若并行化尺寸为n,则i的取值为区间[0,n-1]中的整数。当p≠k时,当p=k时,/>
需要说明的是,在上述实施例中,仅以第一接口为vmap接口,第二接口为vvag接口为例,对本申请提供的上述两种不同功能的接口进行了介绍说明。本申请实施例对于上述两种接口的名称不作限定,这可以由开发人员自行设定。
可选地,函数转换接口是封装在机器学习库之上的API,该机器学习库提供用于执行目标函数的向量指令集。例如,上述底层的机器学习库可以是诸如tensorflow、jax等机器学习库,底层的机器学习库中提供有用于执行目标函数的向量指令集,函数转换接口封装在机器学习库之上,从而保证了向量并行化的实现与底层框架无关,仅需调用函数转换接口即可实现向量并行化的功能。
步骤340,采用向量指令集执行针对转换后第一输入参数对应的张量的向量并行化处理,得到目标函数对应的执行结果。
通过函数转换接口将原始函数转换为目标函数之后,可以进一步调用底层的机器学习库提供的向量指令集,通过在CPU、GPU或TPU等硬件上执行该向量指令集,从而执行针对转换后第一输入参数对应的张量的向量并行化处理,得到目标函数对应的执行结果。上述向量指令集提供了可供CPU、GPU或TPU等处理器执行的可执行指令,这些可执行指令可以实现诸如加法、乘法等底层算子的功能。在本实施例中,采用在CPU、GPU或TPU等处理器上执行向量指令集的方式实现向量并行化处理,相比于在操作系统上执行多进程或多线程,能够克服可并行数量的瓶颈,充分提升并行化尺寸。
步骤350,基于目标函数对应的执行结果,执行量子线路模拟的过程。
在得到目标函数对应的执行结果之后,便可以执行量子线路模拟的过程。步骤350和图1所示实施例中的步骤140相同,具体可参见图1实施例中的介绍说明,本实施例对此不再赘述。
本申请提供的技术方案,通过调用函数转换接口,向该函数转换接口传入原始函数和用于指示原始函数中需要并行化的第一输入参数的第一信息,从而能够通过该函数转换接口将原始函数转换为目标函数,实现向量并行化处理,以提升原始函数的计算效率,进而提升量子线路模拟的效率。
另外,在一些实施例中,函数转换接口除了支持向量并行化功能之外,还支持自动微分功能,从而使得转换得到的目标函数除了能够输出并行计算多次原始函数的结果之外,还能够输出原始函数相对于第二输入参数的导数信息,这特别适用于变分量子算法的场景,从而更加便利了变分量子算法的开发与研究。
下面,对向量并行化在量子线路模拟中的应用场景进行介绍说明。在本申请实施例中,向量并行化可应用在量子线路模拟的处理输入波函数、优化线路变分参数、生成线路噪声、生成线路结构、执行线路测量等步骤中,下面将通过几个实施例,对这些应用场景分别进行介绍说明。
图4示例性示出了一个目标量子线路的数值模拟的示意图。该目标量子线路可以实现变分量子算法的数值模拟。采用本申请提供的技术方案,该模拟的所有主要组件,都可以巧妙地支持向量并行化,从而在不同的应用场景中显著加速量子模拟。如图4所示,我们需要模拟计算的过程为,输入指定量子态(可以是矩阵乘积态或向量的形式),之后经过含参数且可能含噪声的量子线路的作用,对输出态按照测量给定的泡利字符串的形式,在不同的基上进行测量,从而得到优化函数值及关于权重(weight)的梯度供优化迭代。
在图4中,目标量子线路的输入量子态表示为|ψ0>,目标量子线路的线路参数表示为Uθ,测量结果表示为优化函数/>其中/>表示第i次测量结果,i为整数,/>表示Uθ的共轭转置。
1.并行化地处理输入波函数
在此示例中,原始函数用于实现量子线路模拟中的目标步骤,该目标步骤包括处理输入波函数,第一输入参数包括目标量子线路的输入波函数。
可选地,获取转换后第一输入参数对应的张量,该转换后第一输入参数对应的张量,是目标量子线路的多个输入波函数的整合结果;采用向量指令集执行针对转换后第一输入参数对应的张量的向量并行化处理,得到目标函数对应的执行结果;其中,目标函数对应的执行结果包括多个输入波函数分别对应的处理结果。
以变分量子线路模拟为例,变分量子线路模拟由输入波函数、线路酉矩阵和线路测量三部分组成。很多任务里,线路的输入波函数为全0直积态,此时不需要指明输入波函数。但在一些任务中,可能需要同一个线路结构,去接受不同的输入波函数进行处理和输出,这种情形就很适合将输入波函数这一参数做向量并行化来模拟。
例如,在量子机器学习类的任务中,我们需要对输入的数据集做批处理,每次需要同时计算一批输入数据的结果,而这批输入数据都是编码进波函数,以输入波函数的形式进入量子机器学习模型的。因此并行化地处理输入波函数,可以很方便地处理量子机器学习的批输入,实现大batch size(批处理尺寸)下的加速。数值实验表明,在GPU上,batchsize=512和batch size=1需要的计算时间几乎相同,这得益于向量并行化的底层架构优化,相当于直接把模拟加速了batch size倍。
图5示例性示出了一种并行化地处理输入波函数的示意图。以使用上文介绍的vvag接口为例,目标函数f′=vvag(f,vectorized_argnums=0,argnums=1),其中f为原始函数,vectorized_argnums=0表示需要并行化的输入参数为目标量子线路的输入波函数,argnums=1表示需要求导的输入参数为目标量子线路的权重。目标函数f′的输入参数包括目标量子线路的权重51,以及目标量子线路的多个输入波函数的整合结果52,采用向量并行化方式执行该目标函数f′,得到多个输入波函数分别对应的处理结果53,以及权重的导数信息54。
在此示例中,通过并行化地处理输入波函数,充分提升了量子线路模拟过程中针对输入波函数的批处理效率。
2.并行化地优化线路变分参数
在此示例中,原始函数用于实现量子线路模拟中的目标步骤,该目标步骤包括优化线路变分参数,第一输入参数包括目标量子线路的线路变分参数。
可选地,获取转换后第一输入参数对应的张量,该转换后第一输入参数对应的张量,是目标量子线路的多组线路变分参数的整合结果;采用向量指令集执行针对转换后第一输入参数对应的张量的向量并行化处理,得到目标函数对应的执行结果;其中,目标函数对应的执行结果包括多组线路变分参数分别对应的优化结果。
对于变分量子优化问题,梯度下降的参数往往会停留在局域极小值。这就要求我们从不同的初始参数出发,对同一问题,进行多次独立的优化,并从中选出使得优化函数最优的一组对应的参数。这些多次独立的优化尝试,在简单循环的方案下,耗时会增加优化次数倍。此时我们可以将线路变分参数对应的变量做向量并行化。
本申请实施例提出,用并行加速多次独立优化。特别是对于VQE这种很容易优化卡在局部极小的算法,我们通过并行的多路优化同时进行,来在最后选出最合适的一路收敛参数。这样多次优化的时间几乎和单次优化时间完全一致。我们称这种优化方案为批处理的VQE(batched VQE)优化。也即可以从底层算子实现,多次独立优化的并行运行。
图6示例性示出了一种并行化地优化线路变分参数的示意图。以使用上文介绍的vvag接口为例,目标函数f′=vvag(f,vectorized_argnums=0,argnums=0),其中f为原始函数,vectorized_argnums=0表示需要并行化的输入参数为目标量子线路的线路变分参数(如权重),argnums=0表示需要求导的输入参数也为目标量子线路的线路变分参数(如权重)。目标函数f′的输入参数包括目标量子线路的多组线路变分参数的整合结果61,采用向量并行化方式执行该目标函数f′,得到多组线路变分参数分别对应的优化结果62,以及线路变分参数的导数信息63。
在此示例中,通过并行化地优化线路变分参数,充分提升了量子线路模拟过程中针对线路变分参数的优化效率。
3.并行化地生成线路噪声
在此示例中,原始函数用于实现量子线路模拟中的目标步骤,该目标步骤包括生成线路噪声,第一输入参数包括用于生成目标量子线路的线路噪声的随机数。
可选地,获取转换后第一输入参数对应的张量,该转换后第一输入参数对应的张量,是用于生成目标量子线路的线路噪声的多组随机数的整合结果;采用向量指令集执行针对转换后第一输入参数对应的张量的向量并行化处理,得到目标函数对应的执行结果;其中,目标函数对应的执行结果包括多组随机数分别对应的噪声模拟结果。
在蒙特卡洛轨迹模拟器的场景下,不同的随机数来模拟噪声不同概率分布的行为。由于蒙特卡洛轨迹模拟器评估观测量,需要大量不同随机数构型的观测量结果做平均,很自然地,我们可以将随机数这一参数做向量并行化,从而实现同时模拟数十种甚至数百种随机构型。因此,本申请方案可以用来加速量子噪声的蒙特卡洛模拟,并行化不同的随机数输入,从而向量化地并行噪声的蒙特卡洛模拟。这里随机数作为并行维度和输入波函数作为并行维度的行为类似,不再单独展示示意图。
在此示例中,通过并行化地生成线路噪声,充分提升了量子线路模拟过程中生成线路噪声的效率。
以上三种情形,不需要对实现的函数做任何特殊的处理,即可直接调用vmap或vvag接口,并指定需要并行化的输入参数的位置,作为API中的vectorized_argnums参数即可转化为支持向量并行化的高效模拟。
以下的两种情形,需要在基于张量网络的线路模拟器基础上实现一些张量的参数化求和的效果,使得输入参数不同时,对应约化后的张量网络结构不同。这种参数化局域张量求和,并保持相同局域张量形状以嵌入整体张量网络实现不同张量网络结构(或者说量子线路结构)模拟的参数化控制的想法,如图7所示。图7展示了张量网络包含参数化结构信息的一个片段,这里的即为结构参数。不同的one-hot(独热)向量作为/>时,可以实现张量网络中我们关注的局部是CNOT(受控非)门/>或单比特旋转门直积对于更多子块的参数化结构模拟,我们只需在每一个局部引入一个独立的/>结构参数向量即可。而对于测量的参数化,也是类似的,只需要选取测量位置的局域张量为/>即可,其中λi表示第i个量子比特对应的一组四维向量,σ0=I(I算符为/>),σ1、σ2和σ3对应泡利矩阵X、Y和Z。那么此时我们传入一组形状为[量子比特,4]的参数张量,即可直接控制最后测量对应的泡利字符串。而所有计算过程和即时编译创建的计算图都完全相同,可以复用。例如测量参数[[1,0,0,0],[0,1,0,0],[0,0,0,1]]表示待测量期望的泡利字符串为I0X1Z2,简化表示为X1Z2。更重要的是,以上方案不改变张量网络在整体上的静态结构,由此可以仍然完美支持即时编译和张量缩并路径的提前优化搜索。
4.并行化地生成线路结构
在此示例中,原始函数用于实现量子线路模拟中的目标步骤,该目标步骤包括生成线路结构,该第一输入参数包括用于生成目标量子线路的线路结构的控制参数,不同的控制参数用于生成不同的线路结构。
可选地,获取转换后第一输入参数对应的张量,该转换后第一输入参数对应的张量,是用于生成目标量子线路的线路结构的多组控制参数的整合结果;采用向量指令集执行针对转换后第一输入参数对应的张量的向量并行化处理,得到目标函数对应的执行结果;其中,目标函数对应的执行结果包括多组控制参数分别对应的线路结构生成结果。
为了实现不同线路结构的并行化,需要充分利用底层模拟器是基于张量网络的模拟器的特性,对于可取不同结构的线路部分,做代表不同结构的张量的参数化求和,也即这些参数可以控制线路结构同时仍可以满足即时编译的限制。这是因为即使线路结构改变,由于最广义的参数化求和代表的超级网络,已经用固定的张量形状概括了所有可能性,因此即时编译还是可以正常实现。
DARTS启发的可微量子结构搜索,包括了在一个batch(批次)里评估大量不同的线路结构对应的目标优化函数的任务,恰好完美符合并行化线路结构的情景。由此,有向量并行化的量子软件将显著地提升可微量子结构搜索也即变分线路自动化设计的效率。这是张量模拟器特有,态模拟器很难实现的并行范式。
图8示例性示出了一种并行化地生成线路结构的示意图。以使用上文介绍的vvag接口为例,目标函数f′=vvag(f,vectorized_argnums=0,argnums=1),其中f为原始函数,vectorized_argnums=0表示需要并行化的输入参数为目标量子线路的线路结构的控制参数,argnums=1表示需要求导的输入参数为目标量子线路的权重。目标函数f′的输入参数包括目标量子线路的权重81,以及目标量子线路的线路结构的多组控制参数的整合结果82,采用向量并行化方式执行该目标函数f′,得到多组控制参数分别对应的线路结构生成结果,基于多组线路结构生成结果,我们可以相应得到多组测量结果83,以及测量结果相对于权重的导数信息84。
在此示例中,通过并行化地生成线路结构,充分提升了量子线路模拟过程中针对线路结构的生成效率。
5.并行化地执行线路测量
在此示例中,原始函数用于实现量子线路模拟中的目标步骤,该目标步骤包括执行线路测量,第一输入参数包括用于执行针对目标量子线路的线路测量的测量参数,不同的测量参数用于生成不同的测量结果。
可选地,获取转换后第一输入参数对应的张量,该转换后第一输入参数对应的张量,是用于执行针对目标量子线路的线路测量的多组测量参数的整合结果;采用向量指令集执行针对转换后第一输入参数对应的张量的向量并行化处理,得到目标函数对应的执行结果;其中,目标函数对应的执行结果包括多组测量参数分别对应的测量结果。
对于小尺寸的体系,数值模拟可以完整的保存量子线路末态输出的波函数信息,此时对于测量结果的数值模拟有多种不同方案。包括复用该波函数信息,并依此求出不同的泡利字符串算符在该波函数上的期望,以及更小体系可以内存中完整表示哈密顿量算符的矩阵形式时,我们也可以将泡利字符串的求和直接合并成一个独立的哈密顿量矩阵来计算期望,此时往往效率更好。
但对于仅能张量网络模拟器支持的大尺寸体系,对于不同的泡利字符串求期望,无法复用末态波函数(内存无足够空间存储)。且依次缩并张量网络求解不同的算符期望时,需要重新寻找缩并路径和进行即时编译,浪费大量时间。因此,可以仿照参数化线路结构求和的方案,实现参数化线路测量求和,由此可以通过输入参数的one-hot向量来控制对应的测量算符的泡利字符串。此时我们只需要一次即时编译,即可以支持所有不同的泡利字符串的期望求解。再结合上对于测量上的结构参数做向量并行化,我们即可实现同时高效计算多个泡利字符串的期望,且不需要对每个不同的测量算符重新(即时)编译。
在此示例中,对于内存无法存储完整波函数,从而无法完整复用波函数评估不同泡利字符串的情形,向量并行化参数化的线路测量,可以实现高效地大体系线路模拟。
本申请技术方案的应用场景及相应的加速效果,已在上文述及。一般来讲,在GPU等硬件上,向量并行化可以基本上实现和并行批维度大小一致的加速。这在常见的场景中可以实现相较简单循环计算几十倍到上百倍不等的效率提升,且所需的额外开发成本可忽略不计,用户友好。下面我们通过一些简单的定量结果,来强调该效率提升的重要性。
1.对量子机器学习任务的加速。
如前所述,机器学习任务中,我们往往需要对输入数据做批处理,由此将输入波函数的参数做向量并行化,可以显著提升量子机器学习的计算效率。不同主流量子软件,模拟相同的参数化线路做MNIST判别问题,单步消耗的时间随batch size(批处理尺寸)的变化,如图9所示。其中,线条91示出了采用本申请提出的向量并行化方案在GPU上的执行耗时随batch size的变化,线条92示出了采用本申请提出的向量并行化方案在CPU上的执行耗时随batch size的变化,线条93示出了采用pennylane方案的执行耗时随batch size的变化,线条94示出了采用tensorflow-quantum方案的执行耗时随batch size的变化。可见,本申请提出的基于向量并行化技术,可以在较大batch size时,GPU上的计算可实现相比其他主流软件的百倍以上的加速。
2.测量并行化实现超大量子体系的高效模拟。
通过向量并行化技术实现波函数无法复用情形下的不同泡利字符串测量计算图的复用,可以使得我们在单张V100上模拟超过100个比特的量子化学基态模拟VQE问题。在这么大的体系展示和模拟整个变分量子算法全流程,是世界首次。相应的在100格点的一维横场伊辛模型相变点和一维各向同性的海森堡模型的模拟收敛结果如下表1。其在100格点VQE这样的大规模问题上,单次优化迭代需要的时间仅在秒的量级,而这一模拟任务对于主流的基于量子态的模拟器都会由于内存指数发散而根本无法实现。
表1
本申请描述的方案,基于自研的TensorCircuit量子模拟框架。TensorCircuit是一款基于现代机器学习框架,支持多硬件平台和多软件后端,同时支持自动微分、即时编译、向量并行化和异构硬件加速的新一代量子计算模拟软件。其特别适合NISQ时代的算法的设计、研究与开发,完美支持量子经典混合的计算范式模拟。其完全用纯Python编写,算法上以张量网络为核心引擎,在保持了用户友好性的同时具有超越优化过的c++代码的运行效率。本申请所展示的方案,已经在TensorCircuit框架下完全实现,可以直接使用,并取得了远远超越同类软件的效率。
本申请的方案和TensorCircuit平台,可以显著加快和增强NISQ时期量子硬件的验证发展和量子软件及算法的设计与测试。该方案为在NISQ硬件上展现有效的量子优势和验证大规模变分量子计算的相关问题奠定了基础,加速量子计算机和量子启发商业化应用落地的可能。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图10是本申请一个实施例提供的量子线路模拟装置的框图。该装置具有实现上述量子线路模拟方法的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以是计算机设备,也可以设置在计算机设备中。该装置1000可以包括:函数获取模块1010、函数转换模块1020、函数执行模块1030和线路模拟模块1040。
函数获取模块1010,用于获取量子线路模拟所涉及的原始函数,以及确定所述原始函数中需要并行化的第一输入参数;其中,所述原始函数用于实现所述量子线路模拟中的目标步骤。
函数转换模块1020,用于根据所述原始函数以及所述第一输入参数,将所述原始函数转换为目标函数;其中,所述目标函数的输入参数包括所述第一输入参数对应的转换后第一输入参数,所述转换后第一输入参数对应的张量,是所述第一输入参数对应的多个并行化张量的整合结果。
函数执行模块1030,用于执行所述目标函数,得到所述目标函数对应的执行结果。
线路模拟模块1040,用于基于所述目标函数对应的执行结果,执行所述量子线路模拟的过程。
在示例性实施例中,所述函数执行模块1030,用于采用向量并行化方式执行所述目标函数,得到所述目标函数对应的执行结果。
在示例性实施例中,所述函数执行模块1030,用于采用向量指令集执行针对所述转换后第一输入参数对应的张量的向量并行化处理,得到所述目标函数对应的执行结果。
可选地,所述目标步骤包括处理输入波函数,所述第一输入参数包括目标量子线路的输入波函数。所述函数执行模块1030,用于获取所述转换后第一输入参数对应的张量,所述转换后第一输入参数对应的张量,是所述目标量子线路的多个输入波函数的整合结果;采用所述向量指令集执行针对所述转换后第一输入参数对应的张量的向量并行化处理,得到所述目标函数对应的执行结果;其中,所述目标函数对应的执行结果包括所述多个输入波函数分别对应的处理结果。
可选地,所述目标步骤包括优化线路变分参数,所述第一输入参数包括目标量子线路的线路变分参数。所述函数执行模块1030,用于获取所述转换后第一输入参数对应的张量,所述转换后第一输入参数对应的张量,是所述目标量子线路的多组线路变分参数的整合结果;采用所述向量指令集执行针对所述转换后第一输入参数对应的张量的向量并行化处理,得到所述目标函数对应的执行结果;其中,所述目标函数对应的执行结果包括所述多组线路变分参数分别对应的优化结果。
可选地,所述目标步骤包括生成线路噪声,所述第一输入参数包括用于生成目标量子线路的线路噪声的随机数。所述函数执行模块1030,用于获取所述转换后第一输入参数对应的张量,所述转换后第一输入参数对应的张量,是用于生成所述目标量子线路的线路噪声的多组随机数的整合结果;采用所述向量指令集执行针对所述转换后第一输入参数对应的张量的向量并行化处理,得到所述目标函数对应的执行结果;其中,所述目标函数对应的执行结果包括所述多组随机数分别对应的噪声模拟结果。
可选地,所述目标步骤包括生成线路结构,所述第一输入参数包括用于生成目标量子线路的线路结构的控制参数,不同的控制参数用于生成不同的线路结构。所述函数执行模块1030,用于获取所述转换后第一输入参数对应的张量,所述转换后第一输入参数对应的张量,是用于生成所述目标量子线路的线路结构的多组控制参数的整合结果;采用所述向量指令集执行针对所述转换后第一输入参数对应的张量的向量并行化处理,得到所述目标函数对应的执行结果;其中,所述目标函数对应的执行结果包括所述多组控制参数分别对应的线路结构生成结果。
可选地,所述目标步骤包括执行线路测量,所述第一输入参数包括用于执行针对目标量子线路的线路测量的测量参数,不同的测量参数用于生成不同的测量结果。所述函数执行模块1030,用于获取所述转换后第一输入参数对应的张量,所述转换后第一输入参数对应的张量,是用于执行针对所述目标量子线路的线路测量的多组测量参数的整合结果;采用所述向量指令集执行针对所述转换后第一输入参数对应的张量的向量并行化处理,得到所述目标函数对应的执行结果;其中,所述目标函数对应的执行结果包括所述多组测量参数分别对应的测量结果。
在示例性实施例中,所述函数转换模块1020,用于调用函数转换接口,向所述函数转换接口传入所述原始函数和第一信息,所述第一信息用于指示所述原始函数中需要并行化的所述第一输入参数;通过所述函数转换接口根据所述第一信息,将所述原始函数转换为所述目标函数。
可选地,所述函数转换模块1020,还用于向所述函数转换接口传入第二信息,所述第二信息用于指示所述原始函数中需要求导的第二输入参数;通过所述函数转换接口根据所述第一信息和所述第二信息,将所述原始函数转换为所述目标函数,所述目标函数还用于输出所述原始函数相对于所述第二输入参数的导数信息。
可选地,所述函数转换接口包括第一接口和第二接口;其中,所述第一接口用于根据所述第一信息,将所述原始函数转换为所述目标函数;所述第二接口用于根据所述第一信息和所述第二信息,将所述原始函数转换为所述目标函数。
可选地,所述函数转换接口是封装在机器学习库之上的API,所述机器学习库提供用于执行所述目标函数的向量指令集。
在示例性实施例中,在目标维度对所述第一输入参数对应的多个并行化张量进行拼接,得到所述转换后第一输入参数对应的张量;其中,所述转换后第一输入参数对应的张量在所述目标维度的尺寸,与所述第一输入参数对应的并行化张量的数量相对应。
本申请提供的技术方案,通过将向量并行化的思想引入到量子线路模拟,通过将原始函数转换为目标函数,目标函数的输入参数包括需要并行化的第一输入参数对应的转换后第一输入参数,该转换后第一输入参数对应的张量是第一输入参数对应的多个并行化张量的整合结果,通过执行目标函数就可以将原本需要执行多次的计算过程,并行化为一次计算过程来执行,这样只需要和单次计算相同的时间就可完成,充分提升了量子线路模拟的效率。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置,与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参考图11,其示出了本申请一个实施例提供的计算机设备的结构示意图。该计算机设备可以是经典计算机。该计算机设备可用于实施上述实施例中提供的量子线路模拟方法。具体来讲:
该计算机设备1100包括中央处理单元(如CPU(Central Processing Unit,中央处理器)、GPU(Graphics Processing Unit,图形处理器)和FPGA(Field Programmable GateArray,现场可编程逻辑门阵列)等)1101、包括RAM(Random-Access Memory,随机存取存储器)1102和ROM(Read-Only Memory,只读存储器)1103的系统存储器1104,以及连接系统存储器1104和中央处理单元1101的系统总线1105。该计算机设备1100还包括帮助服务器内的各个器件之间传输信息的基本输入/输出系统(Input Output System,I/O系统)1106,和用于存储操作系统1113、应用程序1114和其他程序模块1115的大容量存储设备1107。
可选地,该基本输入/输出系统1106包括有用于显示信息的显示器1108和用于用户输入信息的诸如鼠标、键盘之类的输入设备1109。其中,该显示器1108和输入设备1109都通过连接到系统总线1105的输入输出控制器1110连接到中央处理单元1101。该基本输入/输出系统1106还可以包括输入输出控制器1110以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1110还提供输出到显示屏、打印机或其他类型的输出设备。
可选地,该大容量存储设备1107通过连接到系统总线1105的大容量存储控制器(未示出)连接到中央处理单元1101。该大容量存储设备1107及其相关联的计算机可读介质为计算机设备1100提供非易失性存储。也就是说,该大容量存储设备1107可以包括诸如硬盘或者CD-ROM(Compact Disc Read-Only Memory,只读光盘)驱动器之类的计算机可读介质(未示出)。
不失一般性,该计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM(Erasable Programmable Read-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically Erasable Programmable Read-Only Memory,电可擦写可编程只读存储器)、闪存或其他固态存储技术,CD-ROM、DVD(Digital Video Disc,高密度数字视频光盘)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知该计算机存储介质不局限于上述几种。上述的系统存储器1104和大容量存储设备1107可以统称为存储器。
根据本申请实施例,该计算机设备1100还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备1100可以通过连接在该系统总线1105上的网络接口单元1111连接到网络1112,或者说,也可以使用网络接口单元1116来连接到其他类型的网络或远程计算机系统(未示出)。
所述存储器还包括计算机程序,该计算机程序存储于存储器中,且经配置以由一个或者一个以上处理器执行,以实现上述量子线路模拟方法。
在示例性实施例中,还提供了一种计算机设备,所述计算机设备用于实现上述量子线路模拟方法。可选地,该计算机设备是经典计算机。
在示例性实施例中,还提供了一种计算机可读存储介质,该存储介质中存储有计算机程序,该计算机程序在被计算机设备的处理器执行时实现上述量子线路模拟方法。
可选地,该计算机可读存储介质可以包括:ROM(Read-Only Memory,只读存储器)、RAM(Random-Access Memory,随机存储器)、SSD(Solid State Drives,固态硬盘)或光盘等。其中,随机存取记忆体可以包括ReRAM(Resistance Random Access Memory,电阻式随机存取记忆体)和DRAM(Dynamic Random Access Memory,动态随机存取存储器)。
在示例性实施例中,还提供了一种计算机程序产品或计算机程序,计算机程序产品或计算机程序包括计算机指令,计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质中读取计算机指令,处理器执行计算机指令,使得计算机设备执行上述量子线路模拟方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。另外,本文中描述的步骤编号,仅示例性示出了步骤间的一种可能的执行先后顺序,在一些其它实施例中,上述步骤也可以不按照编号顺序来执行,如两个不同编号的步骤同时执行,或者两个不同编号的步骤按照与图示相反的顺序执行,本申请实施例对此不作限定。
以上仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (17)
1.一种量子线路模拟方法,其特征在于,所述方法包括:
获取量子线路模拟所涉及的原始函数,以及确定所述原始函数中需要并行化的第一输入参数;其中,所述原始函数用于实现所述量子线路模拟中的目标步骤;
根据所述原始函数以及所述第一输入参数,将所述原始函数转换为目标函数;其中,所述目标函数的输入参数包括所述第一输入参数对应的转换后第一输入参数,所述转换后第一输入参数对应的张量,是所述第一输入参数对应的多个并行化张量的整合结果;
执行所述目标函数,得到所述目标函数对应的执行结果;
基于所述目标函数对应的执行结果,执行所述量子线路模拟的过程。
2.根据权利要求1所述的方法,其特征在于,所述执行所述目标函数,得到所述目标函数对应的执行结果,包括:
采用向量并行化方式执行所述目标函数,得到所述目标函数对应的执行结果。
3.根据权利要求2所述的方法,其特征在于,所述采用向量并行化方式执行所述目标函数,得到所述目标函数对应的执行结果,包括:
采用向量指令集执行针对所述转换后第一输入参数对应的张量的向量并行化处理,得到所述目标函数对应的执行结果。
4.根据权利要求3所述的方法,其特征在于,所述目标步骤包括处理输入波函数,所述第一输入参数包括目标量子线路的输入波函数;
所述采用向量指令集执行针对所述转换后第一输入参数对应的张量的向量并行化处理,得到所述目标函数对应的执行结果,包括:
获取所述转换后第一输入参数对应的张量,所述转换后第一输入参数对应的张量,是所述目标量子线路的多个输入波函数的整合结果;
采用所述向量指令集执行针对所述转换后第一输入参数对应的张量的向量并行化处理,得到所述目标函数对应的执行结果;其中,所述目标函数对应的执行结果包括所述多个输入波函数分别对应的处理结果。
5.根据权利要求3所述的方法,其特征在于,所述目标步骤包括优化线路变分参数,所述第一输入参数包括目标量子线路的线路变分参数;
所述采用向量指令集执行针对所述转换后第一输入参数对应的张量的向量并行化处理,得到所述目标函数对应的执行结果,包括:
获取所述转换后第一输入参数对应的张量,所述转换后第一输入参数对应的张量,是所述目标量子线路的多组线路变分参数的整合结果;
采用所述向量指令集执行针对所述转换后第一输入参数对应的张量的向量并行化处理,得到所述目标函数对应的执行结果;其中,所述目标函数对应的执行结果包括所述多组线路变分参数分别对应的优化结果。
6.根据权利要求3所述的方法,其特征在于,所述目标步骤包括生成线路噪声,所述第一输入参数包括用于生成目标量子线路的线路噪声的随机数;
所述采用向量指令集执行针对所述转换后第一输入参数对应的张量的向量并行化处理,得到所述目标函数对应的执行结果,包括:
获取所述转换后第一输入参数对应的张量,所述转换后第一输入参数对应的张量,是用于生成所述目标量子线路的线路噪声的多组随机数的整合结果;
采用所述向量指令集执行针对所述转换后第一输入参数对应的张量的向量并行化处理,得到所述目标函数对应的执行结果;其中,所述目标函数对应的执行结果包括所述多组随机数分别对应的噪声模拟结果。
7.根据权利要求3所述的方法,其特征在于,所述目标步骤包括生成线路结构,所述第一输入参数包括用于生成目标量子线路的线路结构的控制参数,不同的控制参数用于生成不同的线路结构;
所述采用向量指令集执行针对所述转换后第一输入参数对应的张量的向量并行化处理,得到所述目标函数对应的执行结果,包括:
获取所述转换后第一输入参数对应的张量,所述转换后第一输入参数对应的张量,是用于生成所述目标量子线路的线路结构的多组控制参数的整合结果;
采用所述向量指令集执行针对所述转换后第一输入参数对应的张量的向量并行化处理,得到所述目标函数对应的执行结果;其中,所述目标函数对应的执行结果包括所述多组控制参数分别对应的线路结构生成结果。
8.根据权利要求3所述的方法,其特征在于,所述目标步骤包括执行线路测量,所述第一输入参数包括用于执行针对目标量子线路的线路测量的测量参数,不同的测量参数用于生成不同的测量结果;
所述采用向量指令集执行针对所述转换后第一输入参数对应的张量的向量并行化处理,得到所述目标函数对应的执行结果,包括:
获取所述转换后第一输入参数对应的张量,所述转换后第一输入参数对应的张量,是用于执行针对所述目标量子线路的线路测量的多组测量参数的整合结果;
采用所述向量指令集执行针对所述转换后第一输入参数对应的张量的向量并行化处理,得到所述目标函数对应的执行结果;其中,所述目标函数对应的执行结果包括所述多组测量参数分别对应的测量结果。
9.根据权利要求1所述的方法,其特征在于,所述根据所述原始函数以及所述第一输入参数,将所述原始函数转换为目标函数,包括:
调用函数转换接口,向所述函数转换接口传入所述原始函数和第一信息,所述第一信息用于指示所述原始函数中需要并行化的所述第一输入参数;
通过所述函数转换接口根据所述第一信息,将所述原始函数转换为所述目标函数。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
向所述函数转换接口传入第二信息,所述第二信息用于指示所述原始函数中需要求导的第二输入参数;
所述通过所述函数转换接口根据所述第一信息,将所述原始函数转换为所述目标函数,包括:
通过所述函数转换接口根据所述第一信息和所述第二信息,将所述原始函数转换为所述目标函数,所述目标函数还用于输出所述原始函数相对于所述第二输入参数的导数信息。
11.根据权利要求10所述的方法,其特征在于,所述函数转换接口包括第一接口和第二接口;其中,
所述第一接口用于根据所述第一信息,将所述原始函数转换为所述目标函数;
所述第二接口用于根据所述第一信息和所述第二信息,将所述原始函数转换为所述目标函数。
12.根据权利要求9所述的方法,其特征在于,所述函数转换接口是封装在机器学习库之上的应用程序编程接口API,所述机器学习库提供用于执行所述目标函数的向量指令集。
13.根据权利要求1至12任一项所述的方法,其特征在于,在目标维度对所述第一输入参数对应的多个并行化张量进行拼接,得到所述转换后第一输入参数对应的张量;其中,所述转换后第一输入参数对应的张量在所述目标维度的尺寸,与所述第一输入参数对应的并行化张量的数量相对应。
14.一种量子线路模拟装置,其特征在于,所述装置包括:
函数获取模块,用于获取量子线路模拟所涉及的原始函数,以及确定所述原始函数中需要并行化的第一输入参数;其中,所述原始函数用于实现所述量子线路模拟中的目标步骤;
函数转换模块,用于根据所述原始函数以及所述第一输入参数,将所述原始函数转换为目标函数;其中,所述目标函数的输入参数包括所述第一输入参数对应的转换后第一输入参数,所述转换后第一输入参数对应的张量,是所述第一输入参数对应的多个并行化张量的整合结果;
函数执行模块,用于执行所述目标函数,得到所述目标函数对应的执行结果;
线路模拟模块,用于基于所述目标函数对应的执行结果,执行所述量子线路模拟的过程。
15.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要求1至13任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述存储介质中存储有计算机程序,所述计算机程序由处理器加载并执行以实现如权利要求1至13任一项所述的方法。
17.一种计算机程序产品或计算机程序,其特征在于,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中,处理器从所述计算机可读存储介质读取并执行所述计算机指令,以实现如权利要求1至13任一项所述的方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210077584.7A CN116523053A (zh) | 2022-01-24 | 2022-01-24 | 量子线路模拟方法、装置、设备、存储介质及程序产品 |
PCT/CN2022/133406 WO2023138202A1 (zh) | 2022-01-24 | 2022-11-22 | 量子线路模拟方法、装置、设备、存储介质及程序产品 |
KR1020247006424A KR20240038064A (ko) | 2022-01-24 | 2022-11-22 | 양자 회로 시뮬레이션 방법, 장치, 기기, 저장 매체 및 프로그램 제품 |
JP2023538707A JP2024508076A (ja) | 2022-01-24 | 2022-11-22 | 量子回路シミュレーション方法、装置、コンピュータ機器及びプログラム |
US18/199,699 US20230289640A1 (en) | 2022-01-24 | 2023-05-19 | Quantum circuit simulation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210077584.7A CN116523053A (zh) | 2022-01-24 | 2022-01-24 | 量子线路模拟方法、装置、设备、存储介质及程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116523053A true CN116523053A (zh) | 2023-08-01 |
Family
ID=87347739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210077584.7A Pending CN116523053A (zh) | 2022-01-24 | 2022-01-24 | 量子线路模拟方法、装置、设备、存储介质及程序产品 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230289640A1 (zh) |
JP (1) | JP2024508076A (zh) |
KR (1) | KR20240038064A (zh) |
CN (1) | CN116523053A (zh) |
WO (1) | WO2023138202A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117932980B (zh) * | 2024-03-22 | 2024-06-11 | 芯瑞微(上海)电子科技有限公司 | 基于指令集架构搭建的多进程工业设计软件仿真方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3064380B1 (fr) * | 2017-03-24 | 2019-04-19 | Bull S.A.S. | Procede de simulation, sur un ordinateur classique, d'un circuit quantique |
WO2019241570A1 (en) * | 2018-06-13 | 2019-12-19 | Rigetti & Co., Inc. | Quantum virtual machine for simulation of a quantum processing system |
CN111915011B (zh) * | 2019-05-07 | 2023-11-03 | 本源量子计算科技(合肥)股份有限公司 | 一种单振幅量子计算模拟方法 |
WO2021071379A1 (en) * | 2019-10-11 | 2021-04-15 | Huawei Technologies Co., Ltd. | Quantum circuit simulation |
US11748649B2 (en) * | 2019-12-13 | 2023-09-05 | Intel Corporation | Apparatus and method for specifying quantum operation parallelism for a quantum control processor |
CN111738448B (zh) * | 2020-06-23 | 2021-09-28 | 北京百度网讯科技有限公司 | 量子线路模拟方法、装置、设备及存储介质 |
-
2022
- 2022-01-24 CN CN202210077584.7A patent/CN116523053A/zh active Pending
- 2022-11-22 JP JP2023538707A patent/JP2024508076A/ja active Pending
- 2022-11-22 WO PCT/CN2022/133406 patent/WO2023138202A1/zh active Application Filing
- 2022-11-22 KR KR1020247006424A patent/KR20240038064A/ko active Search and Examination
-
2023
- 2023-05-19 US US18/199,699 patent/US20230289640A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230289640A1 (en) | 2023-09-14 |
KR20240038064A (ko) | 2024-03-22 |
WO2023138202A1 (zh) | 2023-07-27 |
JP2024508076A (ja) | 2024-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Broughton et al. | Tensorflow quantum: A software framework for quantum machine learning | |
WO2021190597A1 (zh) | 一种神经网络模型的处理方法以及相关设备 | |
US8799871B2 (en) | Computation of elementwise expression in parallel | |
Goodman et al. | Brian: a simulator for spiking neural networks in python | |
US11288589B1 (en) | Quantum circuit modeling | |
US11574030B1 (en) | Solving optimization problems using a hybrid computer system | |
Saraswat et al. | Genetic Algorithm for optimization using MATLAB | |
Cekmez et al. | Adapting the GA approach to solve Traveling Salesman Problems on CUDA architecture | |
Purohit et al. | Optimization of function by using a new MATLAB based genetic algorithm procedure | |
Ortega et al. | Non-dominated sorting procedure for Pareto dominance ranking on multicore CPU and/or GPU | |
Djurfeldt et al. | Efficient generation of connectivity in neuronal networks from simulator-independent descriptions | |
WO2023138202A1 (zh) | 量子线路模拟方法、装置、设备、存储介质及程序产品 | |
US20160063164A1 (en) | Method for determining by optimization a multi-core architecture | |
Rojek et al. | Performance and scalability analysis of AI-accelerated CFD simulations across various computing platforms | |
US20240020536A1 (en) | Processor architecture and model exploration system for deep learning | |
Tang et al. | Energy-efficient and high-throughput CNN inference on embedded CPUs-GPUs MPSoCs | |
He et al. | HOME: A holistic GPU memory management framework for deep learning | |
Gosmann et al. | Automatic optimization of the computation graph in the Nengo neural network simulator | |
Wang et al. | BPPSA: Scaling back-propagation by parallel scan algorithm | |
Russo et al. | A massively parallel Grammatical Evolution technique with OpenCL | |
US20240070512A1 (en) | Quantum computing system and method | |
Singh et al. | Using graph neural networks to model the performance of deep neural networks | |
Kłosko et al. | High performance evolutionary computation with tensor-based acceleration | |
Jiménez et al. | Implementing a GPU-Portable Field Line Tracing Application with OpenMP Offload | |
Bahnsen et al. | Effect analysis of low-level hardware faults on neural networks using emulated inference |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40090801 Country of ref document: HK |