摘要 — 近年来,量子计算取得了重大发展,并在许多应用领域确立了其霸主地位。虽然量子硬件可以通过云环境供公众使用,但仍需要一个强大而高效的量子电路模拟器来研究约束条件并促进量子计算发展,例如量子算法开发和量子设备架构探索。在本文中,我们观察到大多数公开可用的量子电路模拟器(例如 IBM 的 QISKit、Microsoft 的 QDK 和 Google 的 Qsim-Cirq)在量子比特数量增加时模拟速度慢且可扩展性差。为此,我们系统地研究了量子电路模拟(QCS)的缺陷,并提出了 Q-GPU,这是一个利用具有全面优化的 GPU 来实现高效且可扩展的 QCS 的框架。具体而言,Q-GPU 具有 i)主动状态幅度转移、ii)零状态幅度修剪、iii)延迟量子比特参与和 iv)无损非零状态幅度压缩。在九个代表性量子电路上的实验结果表明,Q-GPU 显著缩短了基于 GPU 的 QCS 的执行时间,缩短了 71.89%(加速 3.55 倍)。Q-GPU 还分别比最先进的 OpenMP CPU 实现、Google Qsim-Cirq 模拟器和 Microsoft QDK 模拟器快 1.49 倍、2.02 倍和 10.82 倍。
图 12-1A 屏幕截图 © Microsoft Corporation 图 16-1 Microsoft QDK for Visual Studio Code 的屏幕截图 © Microsoft 2021 图 16-2 Visual Studio Code 中新建 Q# 程序的屏幕截图 © Microsoft 2021 图 16-3 Visual Studio Code 中保存程序的屏幕截图 © Microsoft 2021 图 16-4 QDK 示例的屏幕截图 © Microsoft 2021 图 16-5 Q# 随机数生成器的屏幕截图 © Microsoft 2021 图 16-6 Q# Open 语句的屏幕截图 © Microsoft 2021 图 16-7 QuantumPseudoRandomNumberGenerator 操作的屏幕截图 © Microsoft 2021 图 16-8 RandomNumberInRange 操作的屏幕截图 © Microsoft 2021 图 16-9 SampleRandomNumber 操作的屏幕截图 © Microsoft 2021 图 16-10 Grover 算法代码中的 Open 语句的屏幕截图 © Microsoft 2021图 16-11 ReflectMarked 的屏幕截图 © Microsoft 2021 图 16-12 ReflectUniform 的屏幕截图 © Microsoft 2021 图 16-13 Grover 算法的附加函数的屏幕截图 © Microsoft 2021 图 16-14 Grover 算法的入口点的屏幕截图 © Microsoft 2021 图 16-15 NumberofIterations 函数的屏幕截图 © Microsoft 2021 图 16-16 Deutsch-Jozsa 开头的屏幕截图 © Microsoft 2021 图 16-17 Deutsch-Jozsa 入口点的屏幕截图 © Microsoft 2021 图 16-18 IsConstant 函数的屏幕截图 © Microsoft 2021 图 16-19 Deutsch-Jozsa 其余函数的屏幕截图 © Microsoft 2021 图 16-20 Entanglement 的屏幕截图 © Microsoft 2021 图17-1 Quantum Inspire 编辑器截图 © 2021 Quantum Inspire 图 17-2 两个量子比特的截图 © 2021 Quantum Inspire 图 17-3 CNOT 门的截图 © 2021 Quantum Inspire 图 17-4 Hadamard 门的截图 © 2021 Quantum Inspire 图 17-5 多个门的截图 © 2021 Quantum Inspire 图 17-6 开始新项目的截图 © 2021 Quantum Inspire 图 17-7 新项目编辑器的截图 © 2021 Quantum Inspire 图 17-8 错误更正的截图 © 2021 Quantum Inspire 图 17-9 Grover 算法的截图 © 2021 Quantum Inspire 图 17-10 Grover 算法结果的截图 © 2021 Quantum Inspire 图 17-11 Deutsch-Jozsa 的截图算法 © 2021 Quantum Inspire 未编号 图 17-1 CNOT 门符号的屏幕截图 © 2021 Quantum Inspire
6%和7+&。 div>! div>“#$%&'()$#*&*+*$!; $!,++ - $ <'= .- = -3 $> 66? !, - $!/:: l, - $@,+ - =/2/$ 43 $ 476> 6 $! @(& - w/x $ y-l*$ t - & - 。'&-z $: - a*$ j'$ 7 [\ e $] ---+: - 3 $ c2 .- = w(+3 $ dirtgf dirtgf#^c@c@^ger 7?6 77?[[K! grg#d $@e_e'esc9ct $ dgt#du9 $#ejefu $! dirtgf#^c@^ger 46 [746? /\ = mxn-far = a(’) - ++“ - &z3 $ b-l-aidental…:: z3 $%hel- =my。e。e(。'&/d,& - =/*$ jc“ dh $ 977> 7? ($ & '1, =:/3 $ s GHIC "@GJD 4D5 7? #"8767i $ RCSS0 $ CJAI#DRCE9 $ Erge $ 3 $" Be#G8CCC $#CDE "Ire $ Rele#DBEJ $ i646443 $ Cjce Cjce GHIC" @GJD ID> 7 [4>? %RSG $ 90RF $@B0ACEP $%er@gjd $ 9da*“&/xz'&$!++ -m/3 $ 9(yl-:l $ s'yy(=/3 $ e = m $#='+3 $ 3 $ 3 t- = a- $)&'1,=:/3 $ se@b0ce@b0ce seal@b0ce sex@b0ace@b0ace@b0ace#^c@c@ger^ger 5q6 7q>> qus 5q6 7q>>?[? GHIC“ @GJD 76Q4 Q?Q Q4K b-./z2k2ez2)? 5 75? div>? 7 QDK J- =。 div>'= m $ b,ml+ - = a $% - &y/=。 div>'= m3 $ sbcje sbcje#^c@^ger 7 ?? div>[[K ergje $#“ e!, - $! div>? [? div>7 [7k f($ <+,&% - $ 9,y/= 4,y,。/a m,2 - = $ r,2 - = $ r'(:= m $ c = a(2。&, - +$ a ,,2.g。sbcjesbcje#sbcje#sbcje#^c@c@c@^ger 7d66 7 dd66 7 dqkk <$ $ = y $ = y $ = y $ = y $ = y $! a',$ d&,$ h( - = $ 3 $# - $ a'= m $ s'y(=/3 $ 9-:l $:l $:l $,2。&。 &m $$“+-2。,:&a(:2 $'a(.2 $ − s*39.a l,= mf- = mf- = mf- = mf- $ c = a(2。&。±'由1 56k <(k, - = $ t-,x,x,x(= $ p#l'/2 $ c = a(2.&x $ c = a) d(2l- = z/-3 $ 9-,a, - = $ 3 $ m = 3 $ - $ d, - = missl,= -sbjege ghic“@gjd>>> 5q Q5K。%9000be9 $ g#” cotinipcjyi?k bij%bif $ s。 bxa&'ax = -y,:$ g =。/&)&,2/$ ob/x( - = p $ s0*9da a'= mk, - = m $ c = a(2。&, - +$) - &z3 $ 9,= k, - = m $ d'o = 3 $ 3 $ 3 $ 3 $ m'', - = m $ = m $ = m $ = m $ $ $ $ $ $ $ - bxa&'ax = -y,:$ o!,/。= - yp $ st*$ 9.a em = $ h = $ h(x $ 1,+ - m/3jm(x/= $%, - (= $ d($ d($ d($ d $ d($ tx $,2.2 $,2.2。&,$ b-,$ b-,$ b-,$ b- $ b- $ b- $ b- $ b- $ s,.x3 $!$ y!$ y*$ y*$ y/y a/a a) #^cer 47i。 #0rd#»“ erg9 d4 [i46 i5k h( - = el'($'l/= m $ b- $ b- $ b- $ b-m2 $ m2 $ - &y/=。2$ s'*$ 9.A *** j'*$ 47?$ 47?$ 47?$ 47?$ 47?$ 47?$ 47?$ 47?$ 47?57?5K dec`B0I $ 0I $ 0I $ 0ERF0I $ 0ER@gjd#$ s0r“*3 $ 9.A ** bgjmcjmci $ r0ea3 $ romi0aiai0aiaiaia0aiaiaia0aiaia ibcicicjecicjecjecjecjecjecjet#^cjet#^cjet#^cjet#^cer d7 d? #m = a/$ e#。&。/m,:$% - &y/= $ 9.a* sbgijsi $ cjai $ cjoi $ cjoi#ded9 $ - reg3 $ eg3 $ eg3 $ <0eg3 $ <0eg3 $ −“ ehyayy $” ehyayy $“ dr0! 5ik!。+$?5ik!。+$?*$ 2。$ - = m $ e $#m $ p#´- $ r-a3 $ = ml( - $ j,= mw'3 $ sbcje sbcje sbcje#0rd#0rd#0rd#0rd#0rd#wde $ e“ jk/2, - $ eay,=,2。&。,1/$ b/&q(+3 $ - = - $ t-a-2。d5k j -.-+, - $ iea 7q [3 $ de - &$#,y,y,y/+,$ b+1a*$ q+66d> k“ pr $ dtq ./,23 $#*e*9(m-&$ a-a-2 $“'=。/2 $ d-y/+$#*$! "GRI#ELYEHEHEECOKJaC$ J$Bba "+.$>[>$3$ #($9/=M-$D,Y(&$3$D,Y-whrest"/&,=A(2.&,-$D-Mi´-$D-$S/=Ha-–$S6 GHIC”@GJD 45> 44?'m ='m ='3 $ 463 $ r'1 /..-r'1 /..-j ob%p3 $ cde9f#^c @c @^ger [1 [766K“ 0^gr#cj $#* 0* 0* @a- -a-:l - $> [q 766k cs#$ e $ e $ e $ e $ e $ e $ e $ e $ e $ ung#r9 !, - $@'=。'=。'=。'= 2*7Q66II3 $ 96II3 $ 9。''&。'$ oejp3 $ cde9f $ cdegegd” @gjd 7 [76?5k#: - 1,$ b(/$ l',=。$#。$ e. $ e. $ e。$#$#。$。$ e。':z $ s'y) - = x“ li = m $ dl($ c = a($ c = a($ c = a(2。 9. $ 973 $ j?$ r?$ r?$ r?$ r-a3 $ a3´ = m $ j- $ j- $ c = a(2。&, - +$+$) - gamen,= l $@$@$@$@$ −/3´yy($ sl,$ a,$ a,$ a,$ a,$,$,2。q> k l($ l,/$%,/$%() Q?784 $ 3 $ c = a(2。&, - +$ b, - &z3 $ b, - - :t@4 $ r'(./$ t'&w-3´-3d6d6 $/+$ d/y,y/3 $ dit,y/3 $ dijc#dijc#dijc#dijc#ce#ce#^cer 7 [4d 7q6?5ik!,/。$ e $ sl-($ c = 1/2.y/= $ a/1/+')y/= $ s'&)y/)y?72。$ b,ml,ml,ml-y $ b-y+/。3$ 9'= m $ e $ $ !@:= AA9[6K H(-=eL'($a/2L/=M$<-2L, '=$p$^/1,=M$S'*3$9.A*. b(,$J-=C=A(2.&,-+$`'=/3$H($D-,o-=/$C=1/2.Y/$R/M, '=3$l. ERG9$SS0*9Da 90d $ ss73 $ ai $ cjaice9 $`0 $ se@9etitity!cgdjsd 7q6?'= m $#'= m/&$ c = a(2。,和 - +$ - = a $ a&a&a,= m $ a/+')y/= $ 9. $ 9.a 7d843 $ l'= m $ m,= m $ m,= $ f,= $ f,$ 9r(/$ 2()/y/$1900 ddk fed0 $ t0 $ t0 $ t0* 3 $ 9 $ 9da* 8d3 $ b,m-2l,802-z- $ s,.x3 $ 02-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z。s-+/$ bgr%。( - $ a/$@'m'a- $ obersg90jep#“ ecj ghic” @gjd 4d 4 [5QK dtq./,,2qunlaude+e+++,,a-3$ #tum* e e1/=,a- $ a/$#,+1 - &/23 $ i5 $ i5 $ i5 $@'&/,&a/$ a/$ ssw =/m'2 $%(,&x/2 $> d7?i3 $?DK IDKERG9 4> 4 7> D Q7K b - &.- $% - % - &:, - 3 $#*E R( - $ a'$ S - &$(m-+“ 0rdi%e9#c@ger 7'd 7i6 d4k d&y'= $#) r'-r'-r'-3 $ d& - = m $ b- = m $ c = a(2.2。 ghic“ @ghic” @ghic” @ghic 7?67 d7>?> k:;
