Managed by Triad National Security, LLC for the U.S. Department of Energy’s NNSA
Classically Programming a Quantum Annealer
Scott Pakin
7 May 2019
Virginia Tech CS Departmental Seminar
LA-UR-19-24190
Classically Programming a Quantum Annealer Virginia Tech CS - - PowerPoint PPT Presentation
Classically Programming a Quantum Annealer Virginia Tech CS Departmental Seminar Scott Pakin 7 May 2019 Managed by Triad National Security, LLC for the U.S. Department of Energys NNSA LA-UR-19-24190 Outline Background Problem
Managed by Triad National Security, LLC for the U.S. Department of Energy’s NNSA
LA-UR-19-24190
7 May 2019 Los Alamos National Laboratory
7 May 2019 Los Alamos National Laboratory
1/ 2 −1/ 2
i − 3 2 − 12i−1 2
7 May 2019 Los Alamos National Laboratory
7 May 2019 Los Alamos National Laboratory
7 May 2019 Los Alamos National Laboratory
7 May 2019 Los Alamos National Laboratory
7 May 2019 Los Alamos National Laboratory
Los Alamos National Laboratory
7 May 2019
1 2 3 4 5 6 7 1 2 3 4 5 6 7
7 May 2019 Los Alamos National Laboratory
7 May 2019 Los Alamos National Laboratory
7 May 2019 Los Alamos National Laboratory
7 May 2019 Los Alamos National Laboratory
7 May 2019 Los Alamos National Laboratory
PMULHUW PMULHW PMULLD PMULHRSW PMULDQ PMOVZXWD PMOVZXWQ P M U L L W PMULUDQ POPFD POPFQ POPF POPAD POP POPA PMOVZXDQ PMOVZXBW PMINUW PMOVMSKB PMINUD PMINUB PMINSD PMINSW PMOVSXBD PMOVSXBQ PMOVZXBD PMOVZXBQ PMOVSXWQ PMOVSXWD PMOVSXBW PMOVSXDQ POR PREFETCHNTA PSUBD PSUBQ PSUBB PSRLW PSRLDQ PSRLQ PSUBSB PSUBSW PUNPCKHBW PUNPCKHDQ PTEST PSUBW PSUBUSB PSUBUSW PSRLD PSRAW PSHUFLW PSHUFW PSHUFHW PSHUFD PSADBW PSHUFB PSIGNB PSIGND PSLLW PSRAD PSLLQ PSLLDQ PSIGNW PSLLD PMINSB PMAXUW PADDW PALIGNR PAND PADDUSW PADDUSB PADDSB PADDSW PANDN PAUSE PCMPEQB PCMPEQD PBLENDW PBLENDVB PAVGB PAVGW PADDQ PADDD OUTS OUTSD ORPD NOP MWAIT NEG PABSB PABSD PACKUSWB PADDB PACKUSDW PACKSSWB PABSW PACKSSDW PCMPEQQ PCMPEQW PINSRD PINSRQ PINSRB PHSUBW PHSUBD PHSUBSW PINSRW PMADDUBSW PMAXUB PMAXUD PMAXSW PMAXSD PMADDWD PMAXSB PHMINPOSUW PHADDW PCMPGTQ PCMPGTW PCMPGTD PCMPGTB PCMPESTRI PCMPESTRM PCMPISTRI PCMPISTRM PHADDD PHADDSW PEXTRW PEXTRQ PEXTRB PEXTRD PUNPCKHQDQ PUNPCKHWD VFMADDPD VFMADDPS VFMADDSD VERW VERR UNPCKLPD UNPCKLPS VFMADDSS VFMADDSUBPD VFMSUBPS VFMSUBSD VFMSUBPD VFMSUBADDPS VFMADDSUBPS VFMSUBADDPD UNPCKHPS UNPCKHPD SUBSD SUBSS SUBPS SUBPD STR SUB SWAPGS SYSCALL UCOMISD UCOMISS TEST SYSRET SYSENTER SYSEXIT VFMSUBSS VFNMADDPD VMXON WAIT VMXOFF VMWRITE VMRUN VMSAVE WBINVD WRMSR XOR XORPD XLAT XCHG XADD XBTS VMRESUME VMREAD VFNMSUBPS VFNMSUBSD VFNMSUBPD VFNMADDSS VFNMADDPS VFNMADDSD VFNMSUBSS VMCALL VMPTRLD VMPTRST VMMCALL VMLOAD V M C L E A R VMLAUNCH STOSW STOSQ RETF RETN RET RDTSCP RDPMC RDTSC ROL ROR RSQRTPS RSQRTSS ROUNDSS ROUNDSD ROUNDPD ROUNDPS RDMSR RCR PUSH PUSHA PUNPCKLWDPUNPCKLQDQ PUNPCKLBW PUNPCKLDQ PUSHAD PUSHF RCPPS RCPSS RCL PXOR PUSHFD PUSHFQ SAHF SAL SQRTPS SQRTSD SQRTPD SMSW SKINIT SLDT SQRTSS STC STOSB STOSD STMXCSR STI STD STGI SIDT SHUFPS SCASD SCASQ SCASB SBB SALC SAR SCASW SFENCE SHRD SHUFPD SHR SHLD SGDT SHL MULSS MULSD FDIV FDIVP FDIVR FDISI FDECSTP FCOMPP FCOS FDIVRP FENI FIDIV FIDIVR FICOMP FICOM FFREE FIADD FCOMP F C O M ENTER ESC EMMS DPPS DIVSS DPPD EXTRACTPS FABS FCHS FCLEX FBSTP FBLD FADD FADDP FILD FIMUL FNSAVE FNSAVEW FNOP FNINIT FNDISI FNENI FNSTCW FNSTENV FPTAN F R N D I N T FPREM F P A T A N FNSTENVW FNSTSW FNCLEX FMULP FISUB FISUBR FISTP FIST FINCSTP FINIT FLD FLDCW FLDZ FMUL FLDPI FLDENVW FLDENV FLDENVD DIVSD DIVPS ARPL BLENDPD BLENDPS ANDPD ANDNPD AESKEYGENASSIST ALTINST BLENDVPD BLENDVPS BTC BTR BSWAP BSR BOUND BSF AESIMC AESENCLAST ADD ADDPD ADC AAS AAD AAM ADDPS ADDSD AESDECLAST AESENC AESDEC ADDSUBPS ADDSS ADDSUBPD BTS CALL COMISS CPUID COMISD CMPXCHG CMPSS CMPSW CQO C W D DIV DIVPD DEC DAS CWDE DAA C M P S Q CMPSD CLD CLFLUSH CLC CDQE CBW CDQ CLGI CLI CMPPS CMPSB CMPPD CMP CLTS CMC FRSTOR FRSTORD MFENCE MINPD MINPS MAXSS MAXSD MAXPD MAXPS MINSD MINSS MOVD MOVDDUP MOVAPS MOVAPD MONITOR MOV MASKMOVQ MASKMOVDQU LODSB LODSD LOCK LOADALLD LMSW LOADALL LODSQ LODSW LSS LTR LSL LOOPW LOOP LOOPD MOVDQA MOVDQU MOVSW MOVSX MOVSS MOVSLDUP MOVSD MOVSHDUP MOVSXD MOVUPD MULPD MULPS MUL MPSADBW MOVUPS MOVZX MOVSB MOVQ MOVLPD MOVLPS MOVLHPS MOVHPS MOVHLPS MOVHPD MOVMSKPD MOVMSKPS MOVNTPS MOVNTQ MOVNTPD MOVNTI MOVNTDQ MOVNTDQA LLDT L I D T FTST FUCOM FSUBRP FSUBR FSUB FSUBP FUCOMP FUCOMPP HADDPD HADDPS FXTRACT FXCH FWAIT FXAM FSTSW FSTP FSCALE FSETPM FSAVEW FSAVED FRSTORW FSAVE FSIN FSINCOS FSTENVD FSTENVW FSTENV FSTCW FSQRT FST HLT HSUBPD LAR LDDQU LAHF JRCXZ JECXZ JMP LDMXCSR LDS LFS LGDT LFENCE LES LEA LEAVE JCXZ IRETQ IMUL INC IDIV ICEBP HSUBPS IBTS INS INSD INVLPGA IRET INVLPG INVD INSERTPS INT AAA
Intel Skylake
Los Alamos National Laboratory
(
*+,
*+,
4+*5/
4
D-Wave Washington
7 May 2019
7 May 2019 Los Alamos National Laboratory
(
*+,
*+,
4+*5/
4
7 May 2019 Los Alamos National Laboratory
(
*+,
*+,
4+*5/
4
Los Alamos National Laboratory
7 May 2019
(
/ /3 𝜏, + / ? 𝜏I − / /3 𝜏> − / 3> 𝜏E − / 3> 𝜏J + / /E 𝜏/, + / > 𝜏/3 − / 3> 𝜏/> − / /3 𝜏/3? + / ? 𝜏/I/ + / /E 𝜏/I3 − / ? 𝜏/I> − / ? 𝜏/IE + / ? 𝜏/IK + / /E 𝜏/I? + / /E 𝜏/>, + / ? 𝜏/>3 + / ? 𝜏/>I − / 3 𝜏,𝜏> + / ? 𝜏,𝜏E − / 3 𝜏,𝜏/3? − / > 𝜏I𝜏> − / 3 𝜏I𝜏L − / 3 𝜏I𝜏/I/ − / > 𝜏>𝜏/3 − / 3 𝜏E𝜏/> − / 3 𝜏?𝜏/I − / > 𝜏?𝜏/> − / > 𝜏J𝜏/3 − / > 𝜏J𝜏/I − / 3 𝜏J𝜏/> + / > 𝜏/,𝜏/3 − / ? 𝜏/,𝜏/> − / 3 𝜏/,𝜏/I? − / ? 𝜏/3?𝜏/I3 + / ? 𝜏/3?𝜏/I> − 𝜏/3?𝜏/IL − / > 𝜏/I/𝜏/I> − / 3 𝜏/I3𝜏/>, − / 3 𝜏/I>𝜏/>3 − / ? 𝜏/IE𝜏/>, − / 3 𝜏/IE𝜏/>/ − / ? 𝜏/IE𝜏/>3 − / > 𝜏/IE𝜏/>I + / ? 𝜏/IK𝜏/>, + / > 𝜏/IK𝜏/>3 − / 3 𝜏/IK𝜏/>I − / 3 𝜏/I?𝜏/>, + / ? 𝜏/I?𝜏/>3 + / ? 𝜏/I?𝜏/>I − 𝜏/IJ𝜏/>,
7 May 2019 Los Alamos National Laboratory
7 May 2019
(
*+,
*+,
4+*5/
4
Los Alamos National Laboratory
7 May 2019
4 for different values of 𝐾*,4:
4 to be equal”
4 are related”
4 to be different”
(
*+,
*+,
4+*5/
4
Los Alamos National Laboratory
7 May 2019 Los Alamos National Laboratory
(
W
_𝜏`
_𝜏`
7 May 2019 Los Alamos National Laboratory
4
7 May 2019 Los Alamos National Laboratory
7 May 2019 Los Alamos National Laboratory
(
4
_ − 1
_𝜏h − 𝜏 _𝜏` − 𝜏h𝜏`
_ + 1
_𝜏h + 1
_𝜏` + 𝜏 _𝜏p + 1
_ + 1
_𝜏h − 𝜏 _𝜏` − 𝜏h𝜏`
XOR AND OR
7 May 2019 Los Alamos National Laboratory
_ − 1
_𝜏h − 𝜏 _𝜏` − 𝜏h𝜏`
7 May 2019 Los Alamos National Laboratory
!include <stdcell> !begin_macro example !use_macro AND $id00005 !use_macro NOT $id00004 !use_macro OR $id00006 $id00004.A = C $id00005.A = A $id00005.B = B $id00006.A = $id00005.Y $id00006.B = $id00004.Y $id00006.Y = Y !end_macro example !use_macro example example AND OR NOT A5 B5 A6 B6 A4
Y6 Y4 Y5
7 May 2019 Los Alamos National Laboratory
AND OR NOT
7 May 2019 Los Alamos National Laboratory
Tasmania Australian Capital Territory Western Australia Northern Territory Queensland New South Wales South Australia Victoria
7 May 2019 Los Alamos National Laboratory
(
7 May 2019 Los Alamos National Laboratory
Tasmania Australian Capital Territory Western Australia Northern Territory Queensland New South Wales South Australia Victoria
7 May 2019 Los Alamos National Laboratory
7 May 2019 Los Alamos National Laboratory
module circsat (a, b, c, y); input a, b, c;
wire [1:10] x; assign x[1] = a; assign x[2] = b; assign x[3] = c; assign x[4] = ~x[3]; assign x[5] = x[1] | x[2]; assign x[6] = ~x[4]; assign x[7] = x[1] & x[2] & x[4]; assign x[8] = x[5] | x[6]; assign x[9] = x[6] | x[7]; assign x[10] = x[8] & x[9] & x[7]; assign y = x[10]; endmodule module mult (multiplicand, multiplier, product); input [3:0] multiplicand; input [3:0] multiplier;
assign product = multiplicand * multiplier; endmodule
7 May 2019 Los Alamos National Laboratory
7 May 2019 Los Alamos National Laboratory
7 May 2019 Los Alamos National Laboratory
7 May 2019 Los Alamos National Laboratory
7 May 2019 Los Alamos National Laboratory
7 May 2019 Los Alamos National Laboratory
7 May 2019 Los Alamos National Laboratory
7 May 2019 Los Alamos National Laboratory
7 May 2019 Los Alamos National Laboratory
7 May 2019 Los Alamos National Laboratory
7 May 2019 Los Alamos National Laboratory
7 May 2019 Los Alamos National Laboratory
7 May 2019 Los Alamos National Laboratory
(
*+,
*+,
4+*5/
4