WO2023068464A1 - 저장장치를 이용한 양자 회로 시뮬레이션 시스템 및 그 동작 방법 - Google Patents
저장장치를 이용한 양자 회로 시뮬레이션 시스템 및 그 동작 방법 Download PDFInfo
- Publication number
- WO2023068464A1 WO2023068464A1 PCT/KR2022/005230 KR2022005230W WO2023068464A1 WO 2023068464 A1 WO2023068464 A1 WO 2023068464A1 KR 2022005230 W KR2022005230 W KR 2022005230W WO 2023068464 A1 WO2023068464 A1 WO 2023068464A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- quantum circuit
- quantum
- memory
- permutation
- simulating
- Prior art date
Links
- 238000004088 simulation Methods 0.000 title claims abstract description 82
- 238000000034 method Methods 0.000 title claims description 34
- 238000004422 calculation algorithm Methods 0.000 claims description 9
- 230000008859 change Effects 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 2
- 239000002096 quantum dot Substances 0.000 description 13
- 238000012545 processing Methods 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000005233 quantum mechanics related processes and functions Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/76—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
Definitions
- Quantum computing is a computing paradigm using quantum mechanical phenomena such as quantum superposition and entanglement.
- the smallest unit of quantum computing is a qubit, which, unlike a bit in classical computing, can represent a superposition of 0 and 1.
- the computational model of quantum computing is called a quantum circuit, and a quantum circuit is a set of N qubits and a series of quantum gates acting on these qubits.
- a state expressed by N qubits can be represented by a total of 2 n amplitudes. Each amplitude is represented by a complex number, and can generally be represented by 16 bytes of memory. Therefore, 2 (N+4) bytes of storage space are required to simulate a quantum circuit composed of N qubits. Exponentially increasing memory requirements are the biggest barrier to simulating quantum circuits.
- a system for simulating a quantum circuit in units of a plurality of partial circuits in a host system connected to a storage system including a plurality of storage devices may be provided.
- a storage device such as HDD, SSD, NVMe, etc., which is inexpensive and has a large storage capacity compared to memory, secures the storage space required for quantum circuit simulation and simulates quantum circuits within reasonable cost and time.
- a method may be provided.
- an optimized simulation method may be provided by performing simulation in units of sub-circuits minimizing the number of memory accesses, performing a permutation operation to maximize memory bandwidth in a three-step operation, and applying a prefetching technique.
- a quantum circuit simulation device includes a storage system including one or more storage devices; and a host system connected to the storage system to simulate a quantum circuit, wherein the quantum circuit stored in the storage system is divided into one or more sub-circuits, so that the host system sequentially converts the one or more sub-circuits into a main circuit. It can be simulated in memory.
- a method for simulating a quantum circuit includes dividing an input quantum circuit stored in a storage device into one or more partial circuits, and sequentially reading the one or more partial circuits from the storage device and simulating them on a main memory.
- DRAM used in the prior art is not only 297 times more expensive than HDD on a per-GB basis, but even the world's most powerful supercomputers in 2021 cannot simulate 50-qubit quantum circuits.
- a quantum circuit having a size of 50 qubits may be simulated using only 16 storage systems composed of 80x16TB HDDs.
- a quantum circuit simulation system and optimization method using a storage device according to embodiments have effects of having scalability and economy at the same time.
- FIG. 1 is a block diagram of a quantum circuit simulation device using a storage device according to an embodiment.
- FIG. 2 is a flowchart of a quantum circuit simulation method using a storage device according to an embodiment.
- 3 is an example of partial circuits obtained by dividing an input quantum circuit according to an embodiment.
- FIG. 4 is a flowchart of a method of dividing an input quantum circuit according to an embodiment.
- FIG. 5 is a flowchart of a method of simulating a plurality of partial circuits according to an embodiment.
- FIG. 6 is an example of data representation simulating a plurality of partial circuits according to an embodiment.
- FIG. 7 is an example implementation of a storage device system according to an embodiment.
- the quantum circuit simulation device 100 may include a host system 110 and a storage device system 120 .
- the host system 110 is a system in which actual calculations are executed, and includes a CPU, a main memory, and a heterogeneous system including a GPU.
- the storage device system 120 is a system composed of a plurality of storage devices, and the storage devices are, for example, HDD, SSD, NVMe, and the like.
- the storage system 120 may be connected to the host system 110 through a RAID (Redundant Array of Independent Disks; RAID) card 130 .
- the RAID card 130 is for connecting multiple arrays of independent disks with a host CPU, and can operate mainly by combining them with PCIe slots.
- PCIe PCI express
- PCIe refers to a serial interface for input and output.
- the quantum circuit simulation device 100 receives a quantum circuit as input data and divides it into several sub-circuits through a sub-circuit partitioning process. The quantum circuit simulation device 100 sequentially executes all partial circuits in units of each partial circuit.
- the quantum circuit simulation apparatus 100 may express the state of the quantum system (superposition and entanglement of qubits) as a probability amplitude. To represent an N-qubit quantum circuit, the quantum circuit simulation device 100 needs to store 2N probability amplitude data, and each quantum gate operation can be viewed as an update of 2N probability amplitude data.
- the quantum circuit simulation device 100 includes a storage system 120 including one or more storage devices and a host system 110 connected to the storage system 120 to simulate a quantum circuit, , By dividing the quantum circuit stored in the storage system 120 into one or more sub-circuits, the host system 110 can sequentially simulate the one or more sub-circuits on the main memory.
- the host system accesses the storage system in which each probability amplitude data necessary for each simulation for each of one or more partial circuits is successively stored, and stores each probability amplitude data in the main memory. and continuously write the probability amplitude data to the storage system on the main memory in which probability amplitude data, which is a simulation result of each of the one or more partial circuits, is continuously stored.
- the host system may divide the input quantum circuit into as few sub-circuits as possible.
- the host system 110 of the quantum circuit simulation device 100 sequentially checks the quantum gates of the input quantum circuit using a heuristic algorithm based on the parameter M set according to the size of the main memory to partially circuits can be created.
- the host system 110 of the quantum circuit simulation apparatus 100 performs a permutation operation on each of one or more partial circuits as a first-step in-memory permutation calculation, a second-step block permutation calculation, and a third-step in-memory permutation calculation. It can be converted and executed sequentially.
- the first-step in-memory permutation operation and the third-step in-memory permutation operation may change the data layout on the main memory
- the second-step block permutation operation may change the data layout on the storage device.
- the quantum circuit simulation apparatus 100 transmits probability amplitude data for the next partial circuit to the storage system during the operation of the partial circuit currently undergoing memory operation. It can be accessed once and successively read into the main memory in advance before simulation of the next partial circuit.
- the storage system 120 may include any one of HDD, SSD, or NVMe.
- FIG. 2 is a flowchart of a quantum circuit simulation method using a storage device according to an embodiment.
- the quantum circuit simulation device 100 may receive a first quantum circuit.
- the first quantum circuit is a set of N qubits and a series of quantum gates acting on these qubits.
- a state expressed by N qubits can be represented by a total of 2 N amplitudes, and each amplitude is expressed as a complex number and is generally represented by 16 bytes of memory.
- the first quantum circuit can be represented by 2 N probability amplitude data, and each quantum gate operation can be represented by an update of 2 N probability amplitude data.
- 2 (N+4) bytes of storage are required.
- the quantum circuit simulation apparatus 100 may divide the first quantum circuit into one or more partial circuits using the parameter M. Partial circuits have two characteristics. First, the gates in each subcircuit can only be applied to M consecutive qubits from the beginning. At this time, the M value is given as a parameter, and 2 (M+4) is set to a value smaller than the total memory (DRAM) size of the host system. Second, each subcircuit is assigned one permutation, and the gates are repositioned according to the order of this permutation.
- DRAM total memory
- each subcircuit is (q 4 q 3 q 2 q 1 q 0 ), (q 1 q 2 q 0 q 4 q 3 ), (q 3 q 1 q 4 q 2 q 0 ).
- the purpose of dividing the input quantum circuit into sub-circuits is to reduce the number (or size) of accesses to storage during simulation execution.
- a quantum circuit given as an input is divided into a plurality of sub-circuits, each sub-circuit may contain only executable quantum gates. When implementing subcircuits containing only executable quantum gates, all quantum gate operations in each subcircuit can be executed without additional storage access.
- the quantum circuit simulation apparatus 100 may use a heuristic algorithm to divide an input quantum circuit into sub-circuits, so that qubits that are likely to be used next are located below the quantum circuit.
- a heuristic algorithm to divide an input quantum circuit into sub-circuits, so that qubits that are likely to be used next are located below the quantum circuit.
- one or more algorithms for dividing an input quantum circuit into sub-circuits that are efficient execution units may be implemented differently depending on the characteristics of the quantum circuit simulation apparatus 100.
- the quantum circuit simulation apparatus 100 may sequentially simulate one or more partial circuits.
- the quantum circuit simulation device 100 accesses the storage system in which the probability amplitude data for the partial circuits are continuously stored in order to simulate the partial circuits only once, and reads the probability amplitude data sequentially onto the main memory. .
- the size of a unit read from the storage device may be as small as at least 16 bytes, and in this case, a problem of insufficient utilization of the bandwidth of the storage device may occur.
- the quantum circuit simulation apparatus 100 may apply a 3-step permutation operation to fix a minimum unit of an access operation for all storage devices to be relatively large.
- the three-step permutation operation divides one permutation operation into three steps and executes it. At this time, the permutation is divided into two in-memory permutation and block permutation, and is executed in the order of in-memory permutation-block permutation-in-memory permutation.
- In-memory permutation refers to an operation that changes the data layout in memory after reading data into main memory.
- Block permutation refers to changing the layout of data on a storage device.
- the quantum circuit simulation apparatus 100 may continuously write probability amplitude data continuously stored in the main memory to a storage device with only one access according to simulation results for each partial circuit.
- an input quantum circuit may be divided into sub-circuits that are units for efficient execution.
- the purpose of sub-circuit partitioning is to reduce access to storage.
- a memory access pattern is determined according to the application position of each quantum gate in a quantum circuit. For example, a quantum gate applied to the first qubit requires reading two data located at a distance of 16 bytes at the same time, and a quantum gate applied to the second qubit below simultaneously accesses two data located at a distance of 32 bytes from the bottom. Should be.
- a quantum gate applied to the kth qubit from the bottom requires simultaneous two data located at a distance of 2k +3 bytes.
- the quantum circuit simulation apparatus 100 sets a parameter M according to the size of the main memory to efficiently execute the input quantum circuit, divides the input quantum circuit into one or more sub-circuits using M, Simulation can be run on a partial circuit basis.
- the quantum circuit simulation apparatus 100 may divide the input quantum circuit 310 into three sub-circuits 320, 330, and 340 using a heuristic algorithm.
- the quantum circuit simulation device 100 considers the size of the main memory (DRAM) of the host system 110 in order to divide the circuit into sub-circuits of the maximum size that can be executed without additional access of a separate storage system 120.
- M can be set.
- parameter M can be set to be 2 (M+4) smaller than the size of the main memory.
- M 4.
- the gate can only be applied to M consecutive qubits from the beginning.
- the gate applied to each subcircuit can be applied only to up to 4 (M size) qubits from the bottom, and is not applied to the qubit located at the top.
- Subcircuits partitioned using parameter M contain only executable quantum gates and do not require access to additional storage during execution.
- the quantum circuit simulation device 100 performs simulation in units of partial circuits, so it takes one operation to read only necessary data pairs from the storage device and one operation to store the calculated result value back to the storage device.
- the quantum circuit simulation apparatus 100 may assign a permutation to each of the divided partial circuits, and relocate the gates according to the order of the permutation as shown in FIG. 3 .
- the input quantum circuits are allocated in the order of (q 4 q 3 q 2 q 1 q 0 ), and the divided first subcircuit 320 is in the order of (q 4 q 3 q 2 q 1 q 0 ), the second part If the circuit 330 is allocated in the order of (q 1 q 2 q 0 q 4 q 3 ) and the third sub-circuit 340 is allocated in the order of (q 3 q 1 q 4 q 2 q 0 ), the gate position is Changed.
- the quantum circuit simulation apparatus 100 may divide partial circuits according to the size of the main memory. In various embodiments, the total number of storage device accesses required for quantum circuit simulation of the quantum circuit simulation apparatus 100 is proportional to the number of partial circuits. For high-performance simulation, a small number of subcircuits must be created. Thus, an algorithm to divide a partial circuit is a difficult problem, and there may be more than one. In various embodiments, the quantum circuit simulation apparatus 100 may generate as few partial circuits as possible for an input quantum circuit.
- the quantum circuit simulation apparatus 100 performs a heuristic
- the input quantum circuit can be divided into sub-circuits containing only executable gates.
- a method of dividing the input quantum circuit of FIG. 3 by way of example will be described.
- the quantum circuit simulation apparatus 100 may align quantum gates.
- the quantum circuit simulation device 100 can arrange the qubits to which gates are applied so that the smaller number comes first, and when two different gates are applied to the same qubits, they are arranged to satisfy the order in the input quantum circuit. can
- the quantum circuit simulation apparatus 100 may initialize the current permutation variable to the same identity permutation.
- the same permutation of the input quantum circuit of FIG. 3 is (q 4 q 3 q 2 q 1 q 0 ).
- the quantum circuit simulation apparatus 100 may sequentially search the quantum gate sorted list for a gate in which the number of qubits to which the quantum gate is applied is greater than the parameter M. If there is no gate greater than the parameter M, the quantum circuit simulation apparatus 100 may make the entire gate set into one partial circuit and terminate the algorithm. At this time, the quantum circuit simulation apparatus 100 assigns the permutation stored in the current permutation variable to the partial circuit.
- the quantum circuit simulation apparatus 100 may generate a partial circuit including all gates located between the first quantum gate and the searched quantum gate. However, searched quantum gates are not included.
- the permutation stored in the current permutation variable is assigned to the generated partial circuit, and the permutation obtained according to the heuristic permutation generation method can be stored in the current permutation variable.
- the heuristic permutation generation method can be defined as the following steps A, B, and C.
- step B the searched quantum gate and the quantum gates located behind it are examined one by one. At this time, if the qubit to which each quantum gate is applied is local, the local count of the corresponding qubit is increased by 1, and if it is non-local, the non-local count of the corresponding qubit is increased by 1.
- the local and non-local count values of qubits to which the searched quantum gate is applied are set to infinity.
- step C the permutations are returned by sorting the qubits based on the counts found in step B.
- the order of qubits is positioned to the right as the non-local count increases, and in the case of the same case, as the local count increases. That is, it is located below on the quantum circuit.
- step S450 the quantum circuit simulation apparatus 100 may repeat steps S430 to S430 while the aligned quantum gates remain.
- the quantum circuit simulation apparatus 100 may perform simulation according to the following steps for each of a plurality of partial circuits obtained by dividing the input quantum circuit.
- the quantum circuit simulation apparatus 100 may continuously read probability amplitude data for the first partial circuit.
- the quantum circuit simulation device 100 continuously reads 2 (M+4) bytes of probability amplitude data for the first subcircuit continuously stored in the storage device from the storage device system 120 to the main memory. (read) can.
- the exact location where each sub-circuit's probability amplitude data is stored is determined by the permutation assigned to that sub-circuit. Given an arbitrary permutation, the information (ie, amplitude) of an arbitrary qubit The location where is stored is as shown in Equation 1.
- Equation 1 is in the given permutation Indicates the number position from the right. For example, permutation About , are 0 and 3, respectively. Although it is possible to know all the positional information of each qubit for an arbitrary permutation through Equation 1, it is inefficient to simply read or write a value using it. This is because the unit size read from the storage device may be very small (at least 16 bytes) depending on the permutation, and in this case, a problem of not fully utilizing the bandwidth of the storage device occurs. In one embodiment, to solve this problem, a quantum circuit is simulated according to a 3-step permutation method.
- step S520 the quantum circuit simulation apparatus 100 performs the permutation operation on the first partial circuit according to the three-step permutation operation.
- the three-step permutation operation is performed by dividing one permutation operation into three steps.
- the permutation is divided into two in-memory permutation and block permutation, and is executed in the order of in-memory permutation-block permutation-in-memory permutation.
- In-memory permutation refers to an operation that changes the data layout in memory after reading data into main memory.
- Arbitrary in-memory permutation refers to a permutation in which only local qubits among the permutations change.
- Any permutation can be easily converted into a three-level permutation.
- the permutation of is transformed as follows.
- step S521 a first-stage in-memory permutation operation obtained by converting the permutation of the first sub-circuit is executed, in step S522, a second-stage block permutation operation obtained by converting the permutation of the first sub-circuit is executed, and in step S523, a second-stage block permutation operation is performed. It is possible to perform a three-step in-memory permutation operation that transforms a permutation of a one-part circuit. If the 3-step permutation operation is used, the minimum unit of the access operation for all storage devices can be fixed to , so the bandwidth of the storage device can be utilized much better than simple access. On the other hand, it takes an extra memory operation for the two in-memory permutations, but it's acceptable because it's a memory access and much faster than a storage access.
- the quantum circuit simulation apparatus 100 may apply the gate operations of the subcircuit to the probability amplitude data of 2 (M+4) bytes loaded in the main memory.
- gate operations arbitrary variations are possible. For example, calculations may be performed using a GPU instead of a CPU, and in this case, communication between the main memory and the GPU memory may be added.
- the divided partial circuits are simulated by the quantum circuit simulator sequentially (eg, in the order of partial circuit 1, partial circuit 2, and partial circuit 3).
- the quantum circuit simulator knows all the exact position values of the probability amplitude data for the partial circuit to be used later, and applies a prefetching technique to load them in the main memory in advance before using them.
- the probability amplitude data to be used next is loaded in the main memory in advance, resulting in an operation-communication overlapping effect, thereby efficiently minimizing the overall execution time.
- step S530 the quantum circuit simulation device 100 continuously writes 2 (M+4) bytes of probability amplitude data continuously stored in the main memory as the result of the operation for the first partial circuit to the storage system 120. (write) can.
- the quantum circuit simulation apparatus 100 may sequentially and repeatedly perform steps S510 to S530 for the next partial circuit.
- FIG. 6 is an example of data representation simulating a plurality of partial circuits according to an embodiment.
- the change in data layout by applying the three-step permutation operation to each of the three sub-circuits 320, 330, and 340 obtained by dividing the input quantum circuit 310 of FIG. 3 is shown.
- the first partial circuit 320 starts from the same permutation and shows that the data layout changes in the order of 1st-level in-memory permutation, 2nd-level block permutation, and 3rd-level in-memory permutation (1234). Access to the storage device (storage write/read) is performed before the block permutation in step 2. Next, it is shown that the data layout changes as the three-step permutation operation for the second partial circuit 33 is executed (5678).
- the storage device system may include a storage device that provides high capacity at a lower cost than DRAM, and may include one or more storage devices.
- a storage device system 120 is configured using an HDD.
- the quantum circuit simulation device 100 may connect the host system 110 and the storage system 120 through a RAID card 130 .
- the RAID card 130 may be connected to a host system through a PCIe slot, and may be connected to an HDD storage device supporting SATA3 using a SAS expansion card.
- the embodiments described above may be implemented as hardware components, software components, and/or a combination of hardware components and software components.
- the devices, methods, and components described in the embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate (FPGA). array), programmable logic units (PLUs), microprocessors, or any other device capable of executing and responding to instructions.
- a processing device may run an operating system (OS) and one or more software applications running on the operating system.
- a processing device may also access, store, manipulate, process, and generate data in response to execution of software.
- OS operating system
- a processing device may also access, store, manipulate, process, and generate data in response to execution of software.
- the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that it can include.
- a processing device may include a plurality of processors or a processor and a controller. Other processing configurations are also possible, such as parallel processors.
- Software may include a computer program, code, instructions, or a combination of one or more of the foregoing, which configures a processing device to operate as desired or processes independently or collectively. You can command the device.
- Software and/or data may be any tangible machine, component, physical device, virtual equipment, computer storage medium or device, intended to be interpreted by or provide instructions or data to a processing device. , or may be permanently or temporarily embodied in a transmitted signal wave.
- Software may be distributed on networked computer systems and stored or executed in a distributed manner.
- Software and data may be stored on one or more computer readable media.
- the method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer readable medium.
- the computer readable medium may include program instructions, data files, data structures, etc. alone or in combination.
- Program instructions recorded on the medium may be specially designed and configured for the embodiment, or may be known and usable to those skilled in computer software.
- Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks.
- - includes hardware devices specially configured to store and execute program instructions, such as magneto-optical media, and ROM, RAM, flash memory, and the like.
- program instructions include high-level language codes that can be executed by a computer using an interpreter, as well as machine language codes such as those produced by a compiler.
- the hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Human Computer Interaction (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Description
Claims (15)
- 하나 이상의 저장장치를 포함하는 저장장치 시스템; 및상기 저장장치 시스템과 연결되어 양자 회로를 시뮬레이션 하는 호스트 시스템을 포함하고,상기 저장장치 시스템에 저장된 상기 양자 회로를 하나 이상의 부분 회로로 분할하여, 상기 호스트 시스템이 상기 하나 이상의 부분 회로를 순차로 메인 메모리 상에서 시뮬레이션 하도록 하는 양자 회로 시뮬레이션 장치.
- 제1항에 있어서,상기 호스트 시스템은 상기 하나 이상의 부분 회로 각각에 대하여 각 시뮬레이션 동안 필요한 각각의 확률 진폭 데이터가 연속적으로 저장되어 있는 상기 저장장치 시스템에 한번 접근하여 상기 각각의 확률 진폭 데이터를 상기 메인 메모리 상에 연속적으로 읽어들이고, 상기 하나 이상의 부분 회로 각각의 시뮬레이션 결과인 확률 진폭 데이터가 연속적으로 저장되어 있는 상기 메인 메모리 상에서 상기 확률 진폭 데이터를 상기 저장장치 시스템에 연속적으로 쓰도록 하는 양자 회로 시뮬레이션 장치.
- 제1항에 있어서,상기 호스트 시스템은, 상기 메인 메모리의 크기에 따라 설정된 파라미터 M을 기준으로 휴리스틱한 알고리즘을 이용하여 상기 양자 회로의 양자 게이트를 순차로 확인하여 부분 회로를 생성하도록 하는 양자 회로 시뮬레이션 장치.
- 제1항에 있어서,상기 호스트 시스템은, 상기 하나 이상의 부분 회로 각각에 대한 순열 연산을 1단계 인메모리 순열 연산, 2단계 블록 순열 연산, 및 3단계 인메모리 순열 연산으로 변환하여 순차로 실행하도록 하는 양자 회로 시뮬레이션 장치.
- 제4항에 있어서,상기 1단계 인메모리 순열 연산 및 상기 3단계 인메모리 순열 연산은, 상기 메인 메모리 상에서 데이터 레이아웃을 변경하고, 상기 2단계 블록 순열 연산은 상기 저장장치 상에서 데이터 레이아웃을 변경하도록 하는 양자 회로 시뮬레이션 장치.
- 제1항에 있어서,상기 호스트 시스템은, 상기 하나 이상의 부분 회로를 순차로 시뮬레이션 하는 동안, 현재 메모리 연산 중인 부분 회로의 연산 중에 다음 차례의 부분 회로에 대한 확률 진폭 데이터를 상기 저장장치 시스템에 한번 접근하여 상기 다음 차례의 부분 회로의 시뮬레이션 전에 미리 상기 메인 메모리로 연속적으로 읽어들이도록 하는 양자 회로 시뮬레이션 장치.
- 제1항에 있어서,상기 저장장치는 HDD, SSD 또는 NVMe 중 어느 하나를 포함하도록 하는 양자 회로 시뮬레이션 장치.
- 저장장치에 저장된 입력 양자 회로를 하나 이상의 부분 회로로 분할하는 단계; 및상기 하나 이상의 부분 회로를 순차로 상기 저장장치로부터 읽어들여 메인 메모리 상에서 시뮬레이션하는 단계;를 포함하는 양자 회로를 시뮬레이션하는 방법.
- 제8항에 있어서,상기 메인 메모리 상에서 시뮬레이션 하는 단계는,상기 하나 이상의 부분 회로 각각에 대하여 각 시뮬레이션 동안 필요한 각각의 확률 진폭 데이터가 연속적으로 저장되어 있는 상기 저장장치에 한번 접근하여 상기 각각의 확률 진폭 데이터를 상기 메인 메모리 상에 연속적으로 읽어들이도록 하는 양자 회로를 시뮬레이션하는 방법.
- 제9항에 있어서,상기 하나 이상의 부분 회로 각각의 시뮬레이션 결과인 확률 진폭 데이터가 연속적으로 저장되어 있는 상기 메인 메모리 상에서 상기 확률 진폭 데이터를 상기 저장장치에 연속적으로 쓰도록 하는 단계;를 더 포함하는 양자 회로를 시뮬레이션하는 방법.
- 제8항에 있어서,상기 하나 이상의 부분 회로로 분할하는 단계는,상기 메인 메모리의 크기에 따라 설정된 파라미터 M을 기준으로 휴리스틱한 알고리즘을 이용하여 상기 입력 양자 회로의 양자 게이트를 순차로 확인하여 부분 회로를 생성하도록 하는 양자 회로를 시뮬레이션하는 방법.
- 제8항에 있어서,상기 시뮬레이션하는 단계는,상기 하나 이상의 부분 회로 각각에 대한 순열 연산을 1단계 인메모리 순열 연산, 2단계 블록 순열 연산, 및 3단계 인메모리 순열 연산으로 변환하여 순차로 실행하도록 하는 양자 회로를 시뮬레이션 하는 방법.
- 제12항에 있어서,상기 1단계 인메모리 순열 연산 및 상기 3단계 인메모리 순열 연산은, 상기 메인 메모리 상에서 데이터 레이아웃을 변경하고, 상기 2단계 블록 순열 연산은 상기 저장장치 상에서 데이터 레이아웃을 변경하도록 하는 양자 회로를 시뮬레이션하는 방법.
- 제8항에 있어서,상기 시뮬레이션하는 단계는,상기 하나 이상의 부분 회로를 순차로 시뮬레이션하는 동안, 현재 메모리 연산 중인 부분 회로의 연산 중에 다음 차례의 부분 회로에 대한 확률 진폭 데이터를 상기 저장장치에 한번 접근하여 상기 다음 차례의 부분 회로의 시뮬레이션 전에 미리 상기 메인 메모리로 연속적으로 읽어들이도록 하는 양자 회로를 시뮬레이션하는 방법.
- 제8항 내지 제14항 중 어느 한 항에 따른 양자 회로를 시뮬레이션하는 방법을 프로세서에 의해 실행하도록 구성된 적어도 하나의 명령어를 포함한 컴퓨터 프로그램을 저장한 컴퓨터 판독 가능한 비 일시적 기록 매체.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202280070490.5A CN118140224A (zh) | 2021-10-21 | 2022-04-11 | 利用存储装置的量子电路模拟系统及其操作方法 |
EP22883695.3A EP4418162A1 (en) | 2021-10-21 | 2022-04-11 | Quantum circuit simulation system using storage device, and operation method thereof |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20210141160 | 2021-10-21 | ||
KR10-2021-0141160 | 2021-10-21 | ||
KR10-2022-0043556 | 2022-04-07 | ||
KR1020220043556A KR20230057246A (ko) | 2021-10-21 | 2022-04-07 | 저장장치를 이용한 양자 회로 시뮬레이션 시스템 및 그 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023068464A1 true WO2023068464A1 (ko) | 2023-04-27 |
Family
ID=86059314
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2022/005230 WO2023068464A1 (ko) | 2021-10-21 | 2022-04-11 | 저장장치를 이용한 양자 회로 시뮬레이션 시스템 및 그 동작 방법 |
Country Status (2)
Country | Link |
---|---|
EP (1) | EP4418162A1 (ko) |
WO (1) | WO2023068464A1 (ko) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170372217A1 (en) * | 2016-06-28 | 2017-12-28 | International Business Machines Corporation | Optimized testing of a partially symmetric quantum-logic circuit |
US20190095561A1 (en) * | 2017-09-22 | 2019-03-28 | International Business Machines Corporation | Simulating quantum circuits |
CN110188885A (zh) * | 2019-06-28 | 2019-08-30 | 合肥本源量子计算科技有限责任公司 | 一种量子计算模拟方法、装置、存储介质和电子装置 |
US20190347575A1 (en) * | 2018-05-08 | 2019-11-14 | International Business Machines Corporation | Simulating quantum circuits on a computer using hierarchical storage |
-
2022
- 2022-04-11 WO PCT/KR2022/005230 patent/WO2023068464A1/ko active Application Filing
- 2022-04-11 EP EP22883695.3A patent/EP4418162A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170372217A1 (en) * | 2016-06-28 | 2017-12-28 | International Business Machines Corporation | Optimized testing of a partially symmetric quantum-logic circuit |
US20190095561A1 (en) * | 2017-09-22 | 2019-03-28 | International Business Machines Corporation | Simulating quantum circuits |
US20190347575A1 (en) * | 2018-05-08 | 2019-11-14 | International Business Machines Corporation | Simulating quantum circuits on a computer using hierarchical storage |
CN110188885A (zh) * | 2019-06-28 | 2019-08-30 | 合肥本源量子计算科技有限责任公司 | 一种量子计算模拟方法、装置、存储介质和电子装置 |
Non-Patent Citations (1)
Title |
---|
ANDERSON AVILA, RENATA H. S. REISER, MAURICIO L. PILLA, ADENAUER C. YAMIN: "Optimizing D-GM quantum computing by exploring parallel and distributed quantum simulations under GPUs arquitecture", 2016 IEEE CONGRESS ON EVOLUTIONARY COMPUTATION (CEC), 1 July 2016 (2016-07-01) - 29 July 2016 (2016-07-29), pages 5146 - 5153, XP055603464, ISBN: 978-1-5090-0623-6, DOI: 10.1109/CEC.2016.7748342 * |
Also Published As
Publication number | Publication date |
---|---|
EP4418162A1 (en) | 2024-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11194943B2 (en) | FPGA-based hardware emulator system with an inter-FPGA connection switch | |
CN101447986B (zh) | 具有分区的片上网络及其处理方法 | |
Zhang et al. | The PetscSF scalable communication layer | |
Fu et al. | PUMPS architecture for pattern analysis and image database management | |
US10997102B2 (en) | Multidimensional address generation for direct memory access | |
US9495501B1 (en) | Large cluster persistence during placement optimization of integrated circuit designs | |
CN113312283B (zh) | 一种基于fpga加速的异构图学习系统 | |
US11573793B2 (en) | Lazy push strategies for vectorized D-Heaps | |
CN114830135A (zh) | 算子的层次分区 | |
BR112019027531A2 (pt) | processadores de alto rendimento | |
Zhang et al. | Enabling highly efficient capsule networks processing through a PIM-based architecture design | |
US12079734B1 (en) | Compilation time reduction for memory and compute bound neural networks | |
CN116601585A (zh) | 数据类型感知时钟门控 | |
KR20140070493A (ko) | 신호 흐름이 프로그램된 디지털 신호 프로세서 코드의 효율적인 자원 관리를 위한 시스템 및 방법 | |
CN114008635A (zh) | 神经网络逐层调试 | |
WO2023068463A1 (ko) | 양자 회로 시뮬레이션을 위한 저장장치 시스템 | |
He et al. | Parallel GMRES solver for fast analysis of large linear dynamic systems on GPU platforms | |
WO2023068464A1 (ko) | 저장장치를 이용한 양자 회로 시뮬레이션 시스템 및 그 동작 방법 | |
Bian et al. | PAS: A new powerful and simple quantum computing simulator | |
US11921784B2 (en) | Flexible, scalable graph-processing accelerator | |
KR20230057246A (ko) | 저장장치를 이용한 양자 회로 시뮬레이션 시스템 및 그 동작 방법 | |
WO2021020848A2 (ko) | 인공 신경망을 위한 행렬 연산기 및 행렬 연산 방법 | |
JP2024539890A (ja) | 貯蔵装置を用いた量子回路シミュレーションシステム及びその動作方法 | |
WO2012030027A1 (ko) | 멀티 코어 프로세서를 기반으로 하는 문자열 매칭 장치 및 그것의 문자열 매칭 방법 | |
WO2023214608A1 (ko) | 양자 회로 시뮬레이션 하드웨어 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22883695 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2024523532 Country of ref document: JP Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: 202280070490.5 Country of ref document: CN |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2022883695 Country of ref document: EP |
|
ENP | Entry into the national phase |
Ref document number: 2022883695 Country of ref document: EP Effective date: 20240513 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |