一种基于CPU和GPU协同的大规模量子电路模拟方法技术

技术编号:33734702 阅读:12 留言:0更新日期:2022-06-08 21:31
本发明专利技术针对量子电路模拟,公开了一种基于CPU和GPU协同的大规模量子电路模拟方法,步骤包括:1)对量子比特信息分页存储,建立页表管理数据;2)对输入的量子电路进行重排;3)对数据进行重映射;4)在通信时建立流水线缓存体系。本发明专利技术充分利用了量子电路的特性,对于量子电路模拟的访存效率进行了优化。子电路模拟的访存效率进行了优化。子电路模拟的访存效率进行了优化。

【技术实现步骤摘要】
的n位二进制表示,即{00

000,00

001,00

010,
……
,11

111},对于其中每一种取值q0q1…
q
n
‑2q
n
‑1,第i位的数值q
i
对应第i位量子比特的取值;在给定的量子比特状态下,每一种取值的排列组合都有一个出现的概率,所有可能状态出现概率的求和同样满足等式:
[0012]p
00..000
+p
00..001
+
……
+p
11

111
=1
[0013](3)全振幅方式即精确存储每一种取值组合出现的概率,存入数组s中,该状态数组包含2
n
个元素,为2
n
个状态出现的概率;
[0014]步骤3:调用内存管理器,将状态数组s分页存储,使用页面作为后续数据迁移的基本单元。对于n位量子比特的索引q0q1…
q
n
‑2q
n
‑1,设置q
n

2k
‑1q
n

2k

q
n
‑1对应的2k位为页码,剩余(n

2k)位为页内偏移,其中页码永远为偶数且被均分为两部分,页码q
n

k
‑1q
n

k

>q
n
‑1对应的k位为任务划分中的任务编号,低k位与(n

2k)位的页内偏移共(n

k)位共同构成GPU显存索引,其取值范围即为一个GPU任务所计算的内存块大小。索引示意图如图3所示。
[0015]步骤4:将量子门集合G中的量子门作为结点,量子门排布图E中记录的量子门之间的有向依赖作为边,建立有向无环图DAG;设结点P所对应量子门的控制量子比特集合为C
P
,目标量子比特集合为T
P
,则对于原线路中先后出现的量子门A和量子门B,存在一条由A到B的有向边,当且仅当对于任意满足如下条件的量子比特x:
[0016]x∈(C
A
∪T
A
)∩(C
B
∪T
B
)
[0017]其对于原电路中量子门A和量子门B之间的任意一个量子门C,都满足:
[0018][0019]步骤5:基于步骤4建立完成的有向无环图,将该有向无环图划分为多个互相独立的子电路S
i
,构成集合S。S
i
中的量子门集合记作G
i
;假设DAG中没有前导的量子门集合为H,则划分子电路的步骤为:
[0020](1)如果集合非空,则从集合H中取出一个量子门H
i
,进入步骤(2),否则进入步骤6;
[0021](2)以H
i
为初始结点,建立子电路S
i
,进入步骤(3);
[0022](3)记子电路S
i
中量子比特数量为k,其中C
Gi
代表G
i
目标量子比特集合,T
Gi
代表G
i
控制量子比特集合,GPU的显存为t bit;遍历所有量子门集合G,如果:
[0023]①
存在量子门G
j
,对于G
j
在DAG中的前导结点集合G

,使得对于满足:
[0024]G

i
∈S
i
[0025]②
对于

中的量子门G
j
,令k'=|∪
Gi∈S
{(C
Gi
∪T
Gi
)∪(C
Gj
∪T
Gj
)}|,满足2
k
'<t;
[0026]如果
①②
满足,则令k=k',进入步骤(4),否则进入步骤(5);
[0027](4)将量子门G
j
添加进子电路S
i
,将量子门G
j
视作G
i
,进入步骤(3);
[0028](5)对于子电路S
i
中的所有量子门g,即将量子门g和以g为端点的边从DAG图中删除,重新遍历DAG,设置集合H为当前没有前导的量子门集合,将子电路S
i
添加进子电路集合S,返回步骤(1)。
[0029]步骤6:调用执行器,对于划分出的子电路集合S,每次取出一个子电路S
i
,进入步骤7;
[0030]步骤7:遍历子电路S
i
记子电路S
i
中不存在数据依赖性的量子比特集合为Q,量子比
特q∈Q,当且仅当对于子电路量子门集合G
i
中的任意门g,如果其作用到量子比特q,仅作用到量子比特q,即:
[0031][0032]步骤8:若量子比特集合Q为空集,进入步骤11;否则从量子比特集合Q中逐一取出量子比特q,记q的索引为index(q),如果index(q)<n

2k,即q在索引中的位置对应页内偏移,进入步骤9,否则进入步骤10;
[0033]步骤9:遍历量子比特索引的[n

2k,n

k

1]位。如果存在一个索引x,使得x对应的量子比特则重映射q
x
与q的索引。规则为,在步骤2中建立的每一种状态中:
[0034](1)如果不存在数据依赖性的量子比特q
x
=取出的量子比特q,保持不变;
[0035](2)如果q
x
≠q,则交换s[q0q1…
q
x

q

q
n
‑2q
n
‑1]与s[q0q1…
(1

q
x
)

(1

q)

q
n
‑2q
n
‑1]的取值,即交换q与q
x
在步骤3建立的分页存储中的页码位置。如图3所示,图中量子比特数n=15,页码数2k=8。第1行中[0,7]中浅色的方块即对应q
x
,经过数据交换后被存储在[8,15]位,如第2行所示。
[0036]如果不存在x或者交换完成,则将取出的量子比特q放回量子比特集合Q,返回步骤8。
[0037]步骤10:遍历量子比特索引的[n

k,n
...

【技术保护点】

【技术特征摘要】
1.一种基于CPU和GPU协同的大规模量子电路模拟方法,其特征在于,包括以下步骤:步骤1:启动量子电路模拟进程,读取待计算量子电路的输入,所述输入包括量子比特的数量n、量子比特初始状态Ψ、量子门集合G和量子门排布图E;步骤2:调用内存管理器,使用全振幅的方式对量子比特初始状态Ψ进行存储,存放在状态数组s中;步骤3:调用内存管理器,将状态数组s分页存储,使用页面作为后续数据迁移的基本单元;步骤4:将量子门集合G中的量子门作为结点,量子门排布图E中记录的量子门之间的有向依赖作为边,建立有向无环图DAG;步骤5:基于步骤4建立完成的有向无环图DAG,将该有向无环图DAG划分为多个互相独立的子电路S
i
,构成子电路集合S,S
i
中的子电路量子门集合记作G
i
;步骤6:调用执行器,对于划分出的子电路集合S,每次取出一个子电路S
i
,进入步骤7;步骤7:遍历子电路S
i
中不存在数据依赖性的量子比特集合为Q,量子比特q∈Q,当且仅当对于子电路量子门集合G
i
中的任意门g,如果仅作用到量子比特q,即:步骤8:若量子比特集合Q为空集,进入步骤11;否则从量子比特集合Q中逐一取出量子比特q,记q的索引为index(q),如果index(q)<n

2k,即q在索引中的位置对应页内偏移,进入步骤9,否则进入步骤10;步骤9:遍历量子比特索引的[n

2k,n

k

1]位,如果存在一个索引x,使得该索引x对应的量子比特则重映射q
x
与q的索引,进入步骤8;步骤10:遍历量子比特索引的[n

k,n

1]位,如果存在一个索引x,使得索引x对应的量子比特则重映射q
x
与q的索引,进入步骤8;步骤11:在包含多个计算节点的集群上,对量子电路进行模拟,对于包含s个量子比特的子电路,其中每一个量子门表示为2
s
*2
s
的方阵A,n时刻s个量子比特的状态表示为长度为2
s
的向量Ψ
s
(n),n+1时刻s个量子比特的状态表示为长度为2
s
的向量Ψ
s
(n+1),则每一次量子门的作用表示为:Ψ
s
(n+1)=A
·
Ψ
s
(n)计算过程中需要进行任务划分,将计算任务以高k位为任务编号,均衡发送到可用的GPU中,进入步骤12;步骤12:需要在计算节点之间发送数据时,发送方执行发送任务,接收方执行接收、加载和运行任务,对于每一个计算节点,开启一个线程单独处理发送任务;当发送任务结束之后,关闭该线程,接收、加载和运算任务使用原线程执行,结束后检查所有子电路是否计算完毕,完毕则进入步骤13,否则返回步骤7;步骤13:计算完步骤6子电路集合S中所有子电路,输出最终的量子比特状态Ψ
n
:Ψ
n
=[p
00

000
,p
00

001
,
……
,p
11

111
]其中p
00

000
为经过所有量子门作用后,量子比特状态为00

000的概率,为经过所有量子门作用后,量子比特状态为a0a1…
a
n
‑1的概率。
2.根据权利要求1所述的基于CPU和GPU协同的大规模量子电路模拟方法,其特征在于:所述步骤2中,使用全振幅的方式对量子比特初始状态Ψ进行存储的方法如下:(1)用概率的形式表示量子比特的状态,若n=1,即输入电路仅包含一个量子比特q,其取值集合为{0,1},两种取值均以概率的形式存在,满足:p
q=0
+p
q=1
=1其中p
q=0
为该量子比特状态为0的概率,p
q=1
为该量子比特状态为1的概率;(2)若n>1,对于n位量子比特q
n
,其状态Ψ
n
的取值集合包含2
n
个元素,为从0到2
n
‑1的n位二进制表示,即{00

000,00

001,00

010,
……
,11

111},对于其中每一种取值q0q1…
q
n
‑2q
n
‑1,第i位的数值q
i
对应第i位量子比特的取值;在给定的量子比特状态下,每一种取值的排列组合都有一个出现的概率,所有可能状态出现概率的求和同样满足等式:p
00..000
+p
00..001
+
……
+p
11

111
=1(3)全振幅方式即精确存储每一种取值组合出现的概率,存入状态数组s中,该状态数组s包含2
n
个元素,为2
n
个状态出现的概率。3.根据权利要求1所述的基于CP...

【专利技术属性】
技术研发人员:杨海龙仲书璋
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1