Look-Ahead Teleportation for Reliable Computation on Multi-SIMD Quantum Processors
By utilizing a look-ahead processor to optimize qubit movements between quantum processing regions, the solution addresses the challenge of reducing qubit movements and enhancing the reliability of quantum operations in quantum computing systems.
Patent Information
- Application Number
- JP2022548618
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-02-18
- Filing Date
- 2021-01-28
- Publication Date
- 2025-05-07
- Estimated Expiration
- 2041-01-28
AI Technical Summary
Quantum computing systems face challenges in reducing the number of qubit movements, which increases the occurrence of errors during quantum calculations.
The implementation of a look-ahead processor that determines in one cycle whether qubits stored in a first quantum processing region are used in a second cycle by another quantum processing region, and if not, moves the qubits from the first region to the second region to minimize unnecessary movements.
This approach reduces the number of qubit movements, thereby enhancing the reliability and efficiency of quantum operations in multi-SIMD quantum processors.
Smart Images

Figure 0007672418000001 
Figure 0007672418000002 
Figure 0007672418000003
Abstract
Description
[Technical field]
[0001] (CROSS REFERENCE TO RELATED APPLICATIONS) This application claims the benefit of U.S. patent application Ser. No. 16 / 794,124, filed Feb. 18, 2020, and entitled “LOOK-AHEAD TELEPORTATION FOR RELIABLE COMPUTATION IN MULTI-SIMD QUANTUM PROCESSOR,” the contents of which are incorporated herein by reference. [Background technology]
[0002] Quantum computers exploit the specific quantum properties of matter to perform calculations that would take a prohibitively long time on a classical computer. The potential for quantum computing is great and development is underway at a rapid pace.
[0003] A more detailed understanding may be had from the following description, given by way of example in conjunction with the accompanying drawings, in which: [Brief description of the drawings]
[0004] [Figure 1] FIG. 1 is a block diagram of a quantum computing system for performing quantum operations, according to an example. [Diagram 2] 2 is a block diagram of the quantum computing device of FIG. 1, according to an example. [Diagram 3] FIG. 1 illustrates an example sequence of quantum operations specified by a quantum program and regions that perform different quantum operations. [Figure 4] FIG. 4 illustrates an example of the technique for performing fewer qubit moves than the technique of FIG. 3. [Diagram 5] FIG. 1 is a flow diagram of a method for processing qubits in a quantum computing device, according to an example. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0005] A method is provided for processing qubits in a quantum computing device, the method including determining that in a first cycle a first quantum processing region performs a first quantum operation that does not use a qubit stored in the first quantum processing region, identifying a second quantum processing region that performs a second quantum operation in a second cycle subsequent to the first cycle, where the second quantum operation uses the qubit, no quantum operation is performed in the second quantum processing region between the first cycle and the second cycle, and moving the qubit from the first quantum processing region to the second quantum processing region.
[0006] An apparatus is provided that includes a first quantum processing region, a second quantum processing region, and a lookahead processor that is configured to determine in a first cycle that the first quantum processing region performs a first quantum operation that does not use a qubit stored in the first quantum processing region, identify a second quantum processing region that performs a second quantum operation in a second cycle that is later than the first cycle, where the second quantum operation uses a qubit, determine that no quantum operation is performed in the second quantum processing region between the first cycle and the second cycle, and move the qubit from the first quantum processing region to the second quantum processing region.
[0007] A non-transitory computer-readable storage medium is provided that stores instructions that, when executed by a processor, cause the processor to perform steps including compiling a quantum source code into an intermediate quantum program and performing a set of transformations on the intermediate quantum program to generate a transformed quantum program, the set of transformations including determining that in a first cycle, as specified by the intermediate quantum program, a first quantum processing region performs a first quantum operation that does not use a qubit stored in the first quantum processing region, identifying a second quantum processing region that performs a second quantum operation in a second cycle that is later than the first cycle, as specified by the intermediate quantum program, where the second quantum operation uses a qubit, determining that no quantum operations are performed in the second quantum processing region between the first cycle and the second cycle, as specified by the intermediate quantum program, and inserting instructions in the transformed quantum program that move a qubit from the first quantum processing region to the second quantum processing region.
[0008] FIG. 1 is a block diagram of a quantum computing system 100 for performing quantum operations, according to an example. The quantum computing system 100 includes a quantum SIMD (Single Instruction Multiple Data) program source 102 and a quantum SIMD computing device 104. The quantum SIMD program source 102 is an entity that provides a quantum SIMD program to the quantum SIMD computing device 104 for execution. The quantum SIMD program source 102 is any device capable of performing this task. In general, the quantum SIMD program source 102 is a hardware unit, a software unit, or a combination thereof. Some examples of the quantum SIMD program source 102 include conventional computing systems (e.g., central processing units, memory, input / output devices, and other items) that store quantum SIMD programs and provide the programs to the quantum SIMD computing device 104 for execution. In some implementations, the quantum SIMD program source 102 includes a compiler that compiles source code into a quantum SIMD program that is sent to the quantum SIMD computing device 104 for execution. In some examples, the quantum SIMD program source 102 is part of a quantum SIMD computing device 104.
[0009] 2 is a block diagram of a quantum SIMD computing device 104, according to one example. The quantum SIMD computing device 104 includes multiple quantum SIMD domains 202, each of which is accessible to a teleportation unit 204. The quantum SIMD domains 202 are alternatively referred to herein as "quantum domains" or "quantum processing domains." The quantum SIMD computing device 104 also includes a global memory 206 accessible to the teleportation unit 204. The quantum SIMD computing device 104 also includes a look-ahead unit 208 and a quantum SIMD domain controller 210 coupled to the quantum SIMD program source 102.
[0010] Quantum SIMD domain controller 210 and look-ahead unit 208 are control circuits that control the operations of quantum SIMD domain 202, global memory 206, and teleportation unit 204. In some implementations, look-ahead unit 208 is not present and the operations of the look-ahead unit are performed by quantum SIMD domain controller 210. Thus, where this disclosure states that look-ahead unit 208 performs certain actions, in implementations without look-ahead unit 208, quantum SIMD domain controller 210 performs those actions.
[0011] The quantum SIMD domain controller 210 receives at least a portion of the quantum program from the quantum program source and controls the quantum SIMD domains 202 according to the quantum program. The quantum program specifies a sequence of SIMD operations to execute in each quantum SIMD domain 202. More specifically, the quantum program specifies a sequence of computer cycles, each cycle representing a fixed portion of time during which SIMD operations are performed. In each computer cycle, the quantum program specifies a quantum operation to execute in any of the SIMD domains or each of the quantum SIMD domains 202. Each quantum operation specifies one or more operands, which are quantum bits or qubits. In generating the quantum program, the compiler schedules the quantum operations in the different SIMD domains 202 to execute the operations without conflict as specified by the source code. In some implementations, the compiler resides in the quantum SIMD program source 102, which includes a computer system. In other implementations, the quantum SIMD program source 102 receives a compiled program that has been compiled by a computing system external to the quantum SIMD program source 102.
[0012] Each quantum SIMD region 202 can perform one quantum operation on multiple qubits in a given period (e.g., cycle). Exemplary quantum operations include the following operations: Hadamard gate (H gate), T gate, T †The quantum SIMD regions 202 include a Quantum Gate, a Controlled Not (CNOT gate), and an S gate. Although several gates are mentioned herein, the SIMD region 202 may implement any technologically feasible quantum gate. More specifically, the SIMD nature of each region 202 means that in any particular cycle, the quantum operations performed in a particular region 202 may be performed in parallel on multiple different qubits. The number of bits that a quantum operation can perform in the same cycle of a quantum SIMD region is referred to herein as the width of the quantum SIMD region 202. The quantum SIMD region 202 is viewed as a processor that performs various quantum operations. The quantum operations are sometimes referred to as quantum gates in the quantum circuit model of computation.
[0013] Due to the no-cloning theorem, qubits cannot be copied. Thus, to process a particular qubit within a particular quantum SIMD domain 202, the qubit is physically moved to the quantum SIMD domain 202 via quantum teleportation. Quantum teleportation unit 204 performs this qubit transfer. The physical implementation of quantum teleportation unit 204 depends on the physical implementation of the qubit. Quantum teleportation is a known technique, and circuits for performing quantum teleportation are recognized in the art. Quantum teleportation unit 204 includes circuitry for performing quantum teleportation of qubits between SIMD domains 202. In any given cycle, global memory 206 stores qubits that are not processed by any of the quantum SIMD domains 202. To perform a quantum operation, quantum teleportation unit 204 quantum teleports qubits from a SIMD domain 202 to another SIMD domain 202, or from global memory 206 to a SIMD domain 202. SIMD domain 202 then performs the specified quantum operation.
[0014] Quantum computing is characterized by its error-prone computations. The movement of qubits by quantum teleportation increases the probability of error. It is therefore beneficial to reduce the number of qubit movements used to perform quantum computations in quantum computing systems.
[0015] In one technique, quantum SIMD domain controller 210 performs qubit movements in the following manner: As described above, quantum SIMD domain controller 210 receives a quantum SIMD program from quantum SIMD program source 102. The quantum SIMD program includes a per-cycle list of operations that specifies which quantum operations SIMD 202 will perform on which qubits for each cycle.
[0016] To perform a quantum operation in any particular cycle, quantum SIMD domain controller 210 consults a quantum SIMD program that specifies which qubits are needed in each of the quantum SIMD domains 202. Quantum SIMD domain controller 210 determines the location of each qubit and, if necessary, teleports each such qubit to the location specified for the current cycle. For qubits for which a quantum operation is not performed in any quantum SIMD domain 202, quantum SIMD domain controller 210 quantum teleports those qubits to global memory 206 or quantum teleports those qubits to a SIMD domain 202 based on the analysis of look-ahead unit 208. With qubits located in the correct each quantum SIMD domain 202, each quantum SIMD domain 202 performs the quantum operation specified by the quantum program for that cycle. It is possible for different quantum SIMD domains 202 to perform different quantum operations in the same cycle.
[0017] 3 is a diagram illustrating an example sequence of quantum operations specified by a quantum program and regions performing different quantum operations. A series of cycles is shown, with quantum operations in two quantum SIMD regions 202 shown. In addition, the qubits in the global memory are illustrated for each cycle. The number of qubits moved to perform the operation of each cycle is also illustrated.
[0018] In cycle 1, quantum SIMD domain controller 210 moves qubit a0 to SIMD domain 1 and moves qubit a1 to SIMD domain 2, meaning that a total of two qubits were generated in cycle 1. Quantum SIMD domain controller 210 then causes SIMD domain 1 to perform an H() quantum operation on qubit a0 and SIMD domain 2 to perform a T() quantum operation on qubit a1. † Execute the quantum operation of ().
[0019] In cycle 2, quantum SIMD domain controller 210 moves qubit a2 to SIMD domain 1 and causes SIMD domain 1 to perform the T() operation on qubits a2 and a0. A total of one move occurs in cycle 2. As described elsewhere herein, each SIMD domain 202 can perform multiple instances of the same quantum operation on multiple items of data in a given cycle.
[0020] In cycle 3, quantum SIMD domain controller 210 moves qubit a1 from SIMD domain 2 to SIMD domain 1, and moves qubit a0 to global memory because qubit a0 is not used in SIMD domain 1 in cycle 3. A total of two qubit movements are performed in cycle 3. In addition, SIMD domain 1 performs a CNOT quantum operation on qubits a2 and a1.
[0021] In cycle 4, quantum SIMD domain controller 210 moves qubit a2 to global memory because qubit a2 is not used in SIMD domain 1, and moves qubit a0 from global memory to SIMD domain 1. A total of two moves are performed in cycle 4. SIMD domain 1 then performs a CNOT quantum operation on qubits a1 and a0.
[0022] In cycle 5, quantum SIMD domain controller 210 moves qubit a2 from global memory to SIMD domain 2, and moves qubit a0 from SIMD domain 1 to SIMD domain 2, for a total of two moves. SIMD domain 1 then performs T † () quantum operation is performed, and SIMD domain 2 performs a CNOT quantum operation on qubits a0 and a2.
[0023] In cycle 6, quantum SIMD domain controller 210 moves qubit a2 from SIMD domain 2 to SIMD domain 1 a total of once. SIMD domain 1 then performs a CNOT quantum operation on qubits a1 and a2, and SIMD domain 2 performs a T quantum operation on qubit a0.
[0024] In cycle 7, qubit a0 is not needed, and qubits a1 and a2 are already in SIMD domain 1, so no transfer occurs and T † Perform the calculation.
[0025] In cycle 8, quantum SIMD domain controller 210 moves qubit a2 from SIMD domain 1 to global memory and moves qubit a0 from SIMD domain 2 to SIMD domain 1, for a total of two moves. SIMD domain 1 also performs a CNOT quantum operation on qubits a1 and a0.
[0026] In cycle 9, quantum SIMD domain controller 210 moves qubit a0 from SIMD domain 1 to SIMD domain 2, and moves qubit a2 from global memory to SIMD domain 2, for a total of two moves. SIMD domain 1 then performs an S quantum operation on qubit a1, and SIMD domain 2 performs a CNOT quantum operation on qubits a0 and a2.
[0027] In cycle 10, quantum SIMD domain controller 210 moves qubit a1 from SIMD domain 1 to SIMD domain 2, and moves qubit a0 from SIMD domain 2 to SIMD domain 1, for a total of two moves. SIMD domain 1 then performs an H quantum operation on qubit a0, and SIMD domain 2 performs a CNOT quantum operation on qubits a1 and a2.
[0028] A different technique than that shown in Figure 3 increases reliability by further reducing the number of qubit movements. This improved technique is performed as follows: In one cycle, quantum SIMD domain controller 210 identifies a qubit for which a quantum operation is to be performed within SIMD domain 202 of quantum SIMD computing device 104. Quantum SIMD domain controller 210 moves the qubit from its current location (another SIMD domain 202 or global memory 206) to SIMD domain 202, and the operation is performed on that qubit.
[0029] For qubits that are not used in an operation in the current cycle and are moved out of the SIMD region 202, the quantum SIMD region controller 210 determines where to move those qubits. More specifically, for each such qubit, the look-ahead unit 208 consults the quantum SIMD program to determine the next cycle in which the qubit will be used in a quantum operation in the quantum SIMD region 202. If the quantum SIMD region 202 does not perform any quantum operations between the current cycle and the next cycle in which the qubit is used in that quantum SIMD region 202, the look-ahead unit 208 moves the qubit to that quantum SIMD region 202. If the quantum SIMD region 202 performs a quantum operation within that period, the quantum SIMD region controller 210 moves the qubit to the global memory 206. In other words, if the quantum SIMD region 202 does not perform a quantum operation that does not use the qubit before the quantum SIMD region 202 uses the qubit, the qubit may be moved to the next quantum SIMD region 202 that uses the qubit instead of the global memory 206.
[0030] Figure 4 is a diagram illustrating an example of the technique described above for performing fewer qubit moves than the technique of Figure 3. In cycle 1, quantum SIMD domain controller 210 moves qubit a0 to SIMD domain 1 and qubit a1 to SIMD domain 2, meaning that a total of two qubits were generated in cycle 1. Quantum SIMD domain controller 210 then has SIMD domain 1 perform an H() quantum operation on qubit a0 and SIMD domain 2 perform a T() quantum operation on qubit a1. † Execute the quantum operation of ().
[0031] In cycle 2, quantum SIMD domain controller 210 moves qubit a2 to SIMD domain 1 and causes SIMD domain 1 to perform the T() operation on qubits a2 and a0. A total of one move is made in cycle 2. Because the next place qubit a1 is used is SIMD domain 1, qubit a1 is not moved out of SIMD domain 2 in this cycle and SIMD domain 1 is performing a quantum operation not involving qubit a1 in cycle 2.
[0032] In cycle 3, quantum SIMD domain controller 210 moves qubit a1 from SIMD domain 2 to SIMD domain 1, and moves qubit a0 to global memory because qubit a0 is not used in SIMD domain 1 in cycle 3. A total of two qubit moves are performed in cycle 3. SIMD domain 1 also performs a CNOT quantum operation on qubits a2 and a1. The next SIMD domain in which qubit a0 is used is SIMD domain 1, but because no operation is performed on qubit a0 in SIMD domain 1 in cycle 3, qubit a0 is not retained in SIMD domain 1 during cycle 3.
[0033] In cycle 4, quantum SIMD domain controller 210 moves qubit a0 from global memory to SIMD domain 1 because qubit a0 is used in an operation in SIMD domain 1 in cycle 4. Prior to cycle 4, qubit a2 is in SIMD domain 1. However, qubit a2 is not used by any quantum operation in cycle 4. However, instead of moving qubit a2 to global memory, look-ahead unit 208 determines that the next SIMD domain that uses qubit a2 is SIMD domain 2, and further determines that no other operations will be performed in SIMD domain 2 from the time qubit a2 is moved out of SIMD domain 1 (cycle 4) until the time qubit a2 is used in SIMD domain 2 (cycle 5). Thus, look-ahead unit 208 causes SIMD domain controller 210 to move qubit a2 to SIMD domain 2 in cycle 4. Note that the cycle that next uses qubit a2 is not the cycle in which contention for qubit a2 is identified. In other words, cycle 4, the cycle in which a2 is determined to be unused in SIMD domain 1, is not the cycle in which subsequent use of qubit a2 (cycle 5) occurs.
[0034] In cycle 5, quantum SIMD domain controller 210 moves qubit a0 from SIMD domain 1 to SIMD domain 2, for a total of one move. There are fewer moves in cycle 5 of the example of Figure 4 than in cycle 5 of the example of Figure 3 because qubit a2 does not need to be moved from global memory 206 to SIMD domain 2 because qubit a2 is already in SIMD domain 2.
[0035] In cycle 6, quantum SIMD domain controller 210 moves qubit a2 from SIMD domain 2 to SIMD domain 1, for a total of one move. SIMD domain 1 then performs a CNOT quantum operation on qubits a1 and a2, and SIMD domain 2 performs a T quantum operation on qubit a0.
[0036] In cycle 7, qubit a0 is not needed, and qubits a1 and a2 are already in SIMD domain 1, so no transfer occurs and T † Because no operations are performed in SIMD domain 2 in cycle 7, and therefore there is no need to move qubit a0, quantum SIMD domain controller 210 does not move qubit a0 to global memory 206.
[0037] In cycle 8, quantum SIMD domain controller moves qubit a0 from SIMD domain 2 to SIMD domain 1. Qubit a2 is not used in a quantum operation in any SIMD domain. Therefore, this qubit is moved out of SIMD domain 1. Look-ahead unit 208 determines that SIMD domain 2 is the next SIMD domain that has an operation that uses qubit a2, and further determines that no operation is performed in SIMD domain 2 from the time that qubit a2 is moved out of SIMD domain 1 until the time that qubit a2 is used by an operation in SIMD domain 2. Thus, look-ahead unit 208 causes quantum SIMD domain controller 210 to move qubit a2 from SIMD domain 1 to SIMD domain 2. The total number of moves in cycle 8 is 2. In cycle 8, SIMD domain 1 performs a CNOT operation on qubits a0 and a1.
[0038] In cycle 9, quantum SIMD domain controller 210 moves qubit a0 from SIMD domain 1 to SIMD domain 2. SIMD domain 1 performs an S operation on qubit a1, and SIMD domain 2 performs a CNOT operation on qubits a0 and a2. Compared to Figure 3, there is one less qubit move in cycle 9 because qubit a2 is already in SIMD domain 2.
[0039] In cycle 10, quantum SIMD domain controller 210 moves qubit a1 from SIMD domain 1 to SIMD domain 2, and moves qubit a0 from SIMD domain 2 to SIMD domain 1, for a total of two moves. SIMD domain 1 then performs an H quantum operation on qubit a0, and SIMD domain 2 performs a CNOT quantum operation on qubits a1 and a2.
[0040] The presence of the look-ahead unit 208 reduces the number of qubit moves compared to the technique of FIG. 3. More specifically, in a particular cycle, when the quantum SIMD domain controller 210 determines that a SIMD domain should move a qubit out of a SIMD domain to perform a quantum operation that does not use that qubit, the SIMD domain controller 210 determines whether there is a different SIMD domain that uses that qubit to perform an operation in that cycle. If there is no such SIMD domain, the look-ahead unit 208 determines whether there is a SIMD domain that uses the qubit and remains idle until the qubit is used. If there is such a SIMD domain, the look-ahead unit 208 moves the qubit to that SIMD domain. Without the look-ahead unit 208, the qubit would have to be moved to the global memory 206 and then moved to the appropriate SIMD domain if the qubit is needed again for the operation. Thus, the look-ahead unit 208 reduces the number of qubit moves, thereby increasing the reliability of the quantum operation.
[0041] In addition to the technique of FIG. 4 using look-ahead unit 208, quantum SIMD domain controller 210 performs a reordering operation to further reduce the number of qubit moves. In one example, quantum SIMD domain controller 210 reorders the quantum operations specified by the quantum program such that two uses of a qubit in a single SIMD domain in non-consecutive cycles separated by a cycle in which the quantum operation does not use the qubit become consecutive cycles, and a quantum operation that does not use the qubit occurs before and after the two uses of the qubit. According to one example, in the original unreordered program order, the quantum program specifies that SIMD1 performs a CNOT operation on qubits a0 and a1 in cycle 1, then an H operation on qubit a2 in cycle 2, and then a T operation on qubit a0 in cycle 3. Thus, a1 and a0 would have to be moved out in cycle 2 and in in cycle 3. Instead, quantum SIMD domain controller 210 reorders the operations in cycles 2 and 3 so that qubit a0 does not need to be moved out in cycles 2 and 3 and then moved back in.
[0042] In performing reordering, quantum SIMD domain controller 210 will not reorder operations if it cannot maintain a data dependency. For example, if a first operation performs an operation on a qubit and a subsequent operation performs another operation on that qubit, SIMD domain controller 210 will not reorder those two operations such that the subsequent operation is performed before the first operation.
[0043] 5 is a flow diagram of a method 500 for processing qubits in a quantum computing device, according to one example. Although described with respect to the systems of FIGS. 1-4, one of ordinary skill in the art will understand that any system configured to perform the steps of method 500 in any technically feasible order is within the scope of the present disclosure.
[0044] At step 502, quantum SIMD domain controller 210 determines that in a first cycle, first quantum SIMD domain 202 will perform a first quantum operation that does not use a qubit stored in first quantum SIMD domain 202. Because quantum SIMD domain 202 can only perform one type of quantum operation in a given cycle, quantum SIMD domain 202 moves a qubit out of quantum SIMD domain 202 in cycles in which quantum SIMD domain 202 performs a quantum operation that does not operate on that qubit.
[0045] In step 504, the lookahead unit 208 identifies a second quantum SIMD domain 202 that performs a second quantum operation in a cycle later than the first cycle, where the second quantum operation also uses the qubit. The later cycle is not the same cycle as the first cycle. In other words, the cycle in which the qubit is determined to be used by the quantum operation is not the same cycle in which a contention occurs. A contention is the act of a qubit being present in the quantum SIMD domain 202 during a cycle in which a quantum operation is performed in the quantum SIMD domain 202 that does not use the qubit.
[0046] At step 506, the look-ahead unit 208 determines that no quantum operations are performed in the second quantum SIMD domain 202 between the first cycle and the later cycle. By "between the first cycle and the later cycle" is meant the first cycle and any cycle up to but not including the later cycle. In other words, the phrase includes the first cycle but not including the later cycle. Stated differently, at step 506, the look-ahead unit 208 determines that the second quantum SIMD domain 202 does not perform any quantum operations in the first cycle and any cycle before the later cycle. However, because the qubits are used by the second quantum SIMD domain 202 in the later cycle, step 506 does not include determining that the second quantum SIMD domain 202 does not perform a quantum operation in the later cycle itself.
[0047] At step 508, quantum SIMD domain controller 210 moves the qubit from the first SIMD domain 202 to the second quantum SIMD domain 202. More specifically, the qubit is to be next used in the second quantum SIMD domain 202 and since there are no operations being performed in the second quantum SIMD domain 202 between the first and second cycles, the qubit is "buffered" within the second SIMD domain 202. This buffering reduces the number of qubit movements compared to a technique where the qubit is not used by the SIMD domain 202 in a particular cycle and the SIMD domain 202 performs a quantum operation that does not use the qubit (such as the example of cycles 4 and 8 of SIMD domain 1 in FIG. 3) in a later cycle in which the SIMD domain 202 performs a quantum operation that uses the qubit. The quantum SIMD computing device 104 performs the first quantum SIMD operation and the second quantum SIMD operation in the appropriate cycles.
[0048] While method 500 of FIG. 5 illustrates a situation in which a qubit is moved from one quantum SIMD domain 202 to another quantum SIMD domain 202 with a look-ahead operation, there are many situations in which a qubit is moved to global memory 206 because the qubit cannot be buffered in the quantum SIMD domain. In one example, the qubit is in SIMD domain 1 in a first cycle in which SIMD domain 1 performs a quantum operation that does not use the qubit. In the next cycle in which the qubit is used, but not in the first cycle, the qubit is used in SIMD domain 2. However, between the first cycle and the second cycle, a quantum operation is performed in SIMD domain 2 that does not use the qubit. In this situation, quantum SIMD domain controller 210 moves the qubit to global memory because the qubit cannot be buffered in SIMD domain 2 since SIMD domain 2 performs an operation that does not use the qubit.
[0049] It should be understood that many variations are possible based on the disclosure herein. In one example, the look-ahead unit 208 and quantum SIMD domain controller 210 perform the analysis and qubit movement operations at run time, but in alternative embodiments, the operations described herein for analyzing where a qubit is used and moving the qubit are performed by a compiler. More specifically, the compiler performs a transformation on the compiled quantum program. The transformation includes determining whether a qubit is used as specified by the quantum program (e.g., performing steps 502 and 504), determining that a particular SIMD domain does not perform SIMD between the time the qubit is used in the first domain and the time the qubit is used in the second domain (e.g., performing step 506), and determining to insert an instruction into the compiled quantum program to move the qubit from the first domain to the second domain (e.g., performing step 508). In various implementations, the compiler performs other operations described herein as being performed by the look-ahead unit 208 and / or the quantum SIMD domain controller 210. Although features and elements are described above in particular combinations, each feature or element may be used alone without the other features and elements, or in various combinations with the other features and elements, with or without the other features and elements.
[0050] The various functional units shown and / or described herein (including, where appropriate, quantum SIMD program source 102, quantum SIMD computing device 104, quantum SIMD domain controller 210, quantum SIMD domain 202, quantum SIMD domain controller 210, look-ahead unit 208, and global memory 206) may be implemented as hardware circuits, software running on a programmable processor, or a combination of hardware and software. The provided methods may be implemented in a general-purpose computer, processor, or processor core. Suitable processors include, by way of example, a general-purpose processor, a special-purpose processor, a conventional processor, a digital signal processor (DSP), multiple microprocessors, one or more microprocessors associated with a DSP core, a controller, a microcontroller, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) circuit, any other type of integrated circuit IC, and / or a state machine. Such a processor may be manufactured by configuring a manufacturing process using the results of processed hardware description language (HDL) instructions and other intermediate data, such as a netlist (such instructions may be stored in a computer-readable medium). The result of such processing may be a mask work that is used in subsequent semiconductor fabrication processes to produce a processor embodying aspects of the embodiments.
[0051] The methods or flow diagrams provided herein may be implemented in a computer program, software, or firmware embodied in a non-transitory computer-readable storage medium for execution by a general purpose computer or processor. Examples of non-transitory computer-readable storage media include read-only memory (ROM), random access memory (RAM), registers, cache memory, semiconductor memory devices, magnetic media (e.g., internal hard disks and removable disks), magneto-optical media, and optical media (e.g., CD-ROM disks and digital versatile disks (DVDs)).
Claims
1. A method performed in a quantum computing device for processing qubits, comprising the steps of: a quantum domain controller determining that in a first cycle, a first quantum processing domain performs a first quantum operation that does not use a qubit stored in the first quantum processing domain; the quantum domain controller identifying a second quantum processing domain to perform a second quantum operation in a second cycle subsequent to the first cycle, the second quantum operation using the qubit; the quantum domain controller determining that no quantum operations are performed in the second quantum processing domain between the first cycle and the second cycle; the quantum domain controller moving the qubit from the first quantum processing domain to the second quantum processing domain; each quantum processing region performing the first quantum operation and the second quantum operation. method.
2. the first quantum operation and the second quantum operation are quantum logic gate operations; 2. The method of claim 1.
3. the first quantum operation and the second quantum operation are quantum single instruction multiple data (SIMD) operations; the first quantum processing domain and the second quantum processing domain are SIMD processing domains; 2. The method of claim 1.
4. In a single cycle, the first quantum processing region performs the same quantum logic gate operation on one or more qubits within the first quantum processing region. The method of claim 3.
5. in said single cycle, said first quantum processing region performs a first quantum logic gate operation that is different from a second quantum logic gate operation performed in said second quantum processing region in said single cycle. The method of claim 4.
6. The quantum domain controller determining that in a third cycle, a second qubit is used by a third quantum operation in a third quantum processing domain; the quantum domain controller identifying a fourth quantum processing domain that performs a fourth quantum operation using the second qubit in a fourth cycle subsequent to the third cycle; the quantum domain controller determining that between the third cycle and the fourth cycle, the fourth quantum processing domain performs a fifth quantum operation that does not use the second qubit; the quantum domain controller further comprising: after the third quantum operation, moving the second qubit to a global memory.
2. The method of claim 1.
7. The method further includes the quantum domain controller receiving a quantum program that specifies which quantum processing domains perform which quantum operations in which cycles.
2. The method of claim 1.
8. and compiling source code to generate the quantum program, the compiling being performed by a compiler executed by a processor of the quantum computing device. The method of claim 7.
9. reordering quantum operations specified by the quantum program to convert non-contiguous uses of a single qubit into contiguous uses of the single qubit, the reordering being performed by a compiler executed by a processor of the quantum computing device. The method of claim 7.
10. 1. An apparatus comprising: a first quantum processing region; a second quantum processing region; and a look-ahead processor; The look-ahead processor comprises: determining that in a first cycle, a first quantum processing region performs a first quantum operation that does not use a qubit stored in the first quantum processing region; identifying a second quantum processing region that performs a second quantum operation in a second cycle that is later than the first cycle, the second quantum operation using the qubit; determining that no quantum operations are performed in the second quantum processing domain between the first cycle and the second cycle; moving the qubit from the first quantum processing region to the second quantum processing region; performing the first quantum operation and the second quantum operation; 4. The method of claim 3, Device.
11. the first quantum operation and the second quantum operation are quantum logic gate operations; 11. The apparatus of claim 10.
12. the first quantum operation and the second quantum operation are quantum single instruction multiple data (SIMD) operations; the first quantum processing domain and the second quantum processing domain are SIMD processing domains; 11. The apparatus of claim 10.
13. In a single cycle, the first quantum processing region is configured to perform the same quantum logic gate operation on one or more qubits in the first quantum processing region.
13. The apparatus of claim 12.
14. in said single cycle, said first quantum processing region is configured to perform a first quantum logic gate operation that is different from a second quantum logic gate operation performed in said second quantum processing region in said single cycle.
14. The apparatus of claim 13.
15. The look-ahead processor comprises: determining in a third cycle that the second qubit is to be used by a third quantum operation in a third quantum processing region; identifying a fourth quantum processing region that performs a fourth quantum operation using the second qubit in a fourth cycle subsequent to the third cycle; determining that between the third cycle and the fourth cycle, the fourth quantum processing region performs a fifth quantum operation that does not use the second qubit; moving the second qubit to a global memory after the third quantum operation; 4. The method of claim 3, 11. The apparatus of claim 10.
16. a quantum SIMD domain controller configured to receive a quantum program that specifies which quantum processing domains perform which quantum operations in which cycles; 11. The apparatus of claim 10.
17. A computer-readable storage medium storing instructions, comprising: The instructions, when executed by a processor, Compiling the quantum source code into an intermediate quantum program; performing a set of transformations on the intermediate quantum program to generate a transformed quantum program; causing the processor to execute The set of transformations is determining that in a first cycle, as specified by the intermediate quantum program, a first quantum processing region performs a first quantum operation that does not use a qubit stored in the first quantum processing region; identifying a second quantum processing region that performs a second quantum operation in a second cycle subsequent to the first cycle as specified by the intermediate quantum program, the second quantum operation using the qubit; determining that no quantum operations are performed in the second quantum processing domain between the first cycle and the second cycle as specified by the intermediate quantum program; and inserting into the converted quantum program an instruction to move the qubit from the first quantum processing domain to the second quantum processing domain. A computer-readable storage medium.
18. the first quantum operation and the second quantum operation are quantum logic gate operations; 20. The computer readable storage medium of claim 17.
19. the first quantum operation and the second quantum operation are quantum single instruction multiple data (SIMD) operations; the first quantum processing domain and the second quantum processing domain are SIMD processing domains; 20. The computer readable storage medium of claim 17.
20. The instruction: determining that in a third cycle, a second qubit is used by a third quantum operation in a third quantum processing region as specified by the intermediate quantum program; identifying a fourth quantum processing region that performs a fourth quantum operation using the second qubit in a fourth cycle subsequent to the third cycle as specified by the intermediate quantum program; determining that, between the third cycle and the fourth cycle, the fourth quantum processing region performs a fifth quantum operation that does not use the second qubit, as specified by the intermediate quantum program; inserting an instruction into the converted quantum program that moves the second qubit to a global memory after the third quantum operation; configured to cause the processor to execute 20. The computer readable storage medium of claim 19.
21. The instruction: and causing the processor to insert into the converted quantum program instructions including quantum operations specified by the intermediate quantum program, the instructions being reordered to convert non-contiguous uses of a single qubit into contiguous uses of the single qubit.
20. The computer readable storage medium of claim 17.
Citation Information
Patent Citations
Quantum computer system, control method and program for quantum computer system
JP2013114366A
Quantum processor
JP2014503880A
Software-defined quantum computer
WO2019108512A1