Forward-looking teleportation of reliability computations in multi-simd quantum processors

CN115136160BActive Publication Date: 2026-09-29ADVANCED MICRO DEVICES INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202180015343.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-02-18
Filing Date
2021-01-28
Publication Date
2026-09-29
Estimated Expiration
2041-01-28

Smart Images

  • Figure CN115136160B_ABST
    Figure CN115136160B_ABST
Patent Text Reader

Abstract

A technique for processing qubits in a quantum computing device is provided. The technique includes determining that a first quantum processing region will perform a first quantum operation that does not use a qubit stored in the first quantum processing region in a first cycle, identifying a second quantum processing region that will perform a second quantum operation later than the first cycle, wherein the second quantum operation uses the qubit, determining that 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.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-reference to related applications

[0002] This application claims the benefit of U.S. Non-Provisional Application No. 16 / 794,124, filed February 18, 2020, entitled “Look-ahead teleportation for reliable computation in multi-SIMD quantum processors,” the contents of which are hereby incorporated herein by reference. Background Technology

[0003] Quantum computers utilize certain quantum properties of matter to perform calculations, which would take classical computers an extremely long time. The potential of quantum computing is enormous, and it is frequently under development. Attached Figure Description

[0004] A more detailed understanding can be obtained from the following description, provided with examples and accompanying figures, wherein:

[0005] Figure 1 This is a block diagram of a quantum computing system for performing quantum operations, based on an example.

[0006] Figure 2 It is based on the example. Figure 1 A block diagram of a quantum computing device;

[0007] Figure 3 Example sequences of quantum operations specified by a quantum program are shown, along with regions that perform different quantum operations;

[0008] Figure 4 Examples of the above techniques are shown for performing comparisons. Figure 3 The technology involves fewer qubit movements; and

[0009] Figure 5 This is a flowchart illustrating a method for processing qubits in a quantum computing device, based on an example. Detailed Implementation

[0010] A method for processing qubits in a quantum computing device is provided. The method includes: determining that, in a first cycle, a first quantum processing region will perform a first quantum operation without using qubits stored in the first quantum processing region; identifying a second quantum processing region that will perform a second quantum operation in a second cycle later than the first cycle, wherein the second quantum operation uses the qubits; determining that, between the first cycle and the second cycle, no quantum operation will be performed in the second quantum processing region; and moving the qubits from the first quantum processing region to the second quantum processing region.

[0011] An apparatus is provided. The apparatus includes a first quantum processing region, a second quantum processing region, and a prospective processor. The prospective processor is configured to: determine that, in a first cycle, the first quantum processing region will perform a first quantum operation that does not use a qubit stored in the first quantum processing region; identify a second quantum processing region that will perform a second quantum operation in a second cycle later than the first cycle, wherein the second quantum operation uses a qubit; determine that, between the first cycle and the second cycle, no quantum operation will be performed in the second quantum processing region; and move the qubit from the first quantum processing region to the second quantum processing region.

[0012] A non-transitory computer-readable medium is provided to store instructions that, when executed by a processor, cause the processor to perform steps. These steps include compiling quantum source code into an intermediate quantum program and performing a set of transformations on the intermediate quantum program to generate a quantum program of transformations. The set of transformations includes: determining, as specified by the intermediate quantum program, that a first quantum processing region will perform a first quantum operation in a first cycle that does not use qubits stored in the first quantum processing region; identifying, as specified by the intermediate quantum program, that a second quantum processing region will perform a second quantum operation in a second cycle later than the first cycle, wherein the second quantum operation uses qubits; determining, as specified by the intermediate quantum program, that no quantum operation will be performed in the second quantum processing region between the first cycle and the second cycle; and inserting instructions causing the qubits to move from the first quantum processing region to the second quantum processing region into the quantum program of the transformations.

[0013] Figure 1 This is a block diagram of a quantum computing system 100 for performing quantum operations, based on 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. Typically, the quantum SIMD program 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 (including, for example, a central processing unit, memory, input / output devices, and other items) that store the quantum SIMD program and provide the program to the quantum SIMD computing device 104 for execution. In some specific implementations, the quantum SIMD program source 102 includes a compiler that compiles the source code into a quantum SIMD program for transfer to the quantum SIMD computing device 104 for execution. In some examples, the quantum SIMD program source 102 is part of the quantum SIMD computing device 104.

[0014] Figure 2 This is a block diagram of an example quantum SIMD computing device 104. The quantum SIMD computing device 104 includes a plurality of quantum SIMD regions 202, each accessible by a teleportation unit 204. Elsewhere herein, the quantum SIMD region 202 may alternatively be referred to as a “quantum region” or “quantum processing region.” The quantum SIMD computing device 104 also includes a global memory 206 accessible by the teleportation unit 204. The quantum SIMD computing device 104 also includes a forward-looking unit 208 and a quantum SIMD region controller 210 coupled to the quantum SIMD program source 102.

[0015] The quantum SIMD region controller 210 and the forward-looking unit 208 are control circuits that control the operation of the quantum SIMD region 202, the global memory 206, and the teleportation unit 204. In some embodiments, the forward-looking unit 208 is not present, and its operation is performed by the quantum SIMD region controller 210. Therefore, in embodiments where the forward-looking unit 208 performs certain actions as stated in this disclosure, the quantum SIMD region controller 210 performs those actions in the absence of the forward-looking unit 208.

[0016] Quantum SIMD region controller 210 receives at least a portion of a quantum program from a quantum program source and controls quantum SIMD regions 202 according to the quantum program. The quantum program specifies a sequence of SIMD operations to be performed in each quantum SIMD region 202. More specifically, the quantum program specifies a sequence of computer cycles, where each cycle represents a time portion in which the SIMD operations occur. Within each computer cycle, the quantum program specifies a quantum operation to be performed at a SIMD region within a SIMD region or at each of the quantum SIMD regions 202. Each quantum operation specifies one or more operands, which are qubits or quantum bits. When generating the quantum program, the compiler schedules the quantum operations in the different SIMD regions 202 to execute the operations in the manner specified by the source code and without conflict. In some embodiments, the compiler resides at a quantum SIMD program source 102 that includes a computer system. In other embodiments, the quantum SIMD program source 102 receives a compiler compiled by a computing system external to the quantum SIMD program source 102.

[0017] Each quantum SIMD region 202 is capable of performing a quantum operation on multiple qubits within a given time period (e.g., a period). Example quantum operations include the following: Hadamard gate (H gate); T gate; T... +Quantum gates include controlled-NOT (CNOT) gates and S-gates. While some gates are mentioned in this paper, any technically feasible quantum gate can be implemented in the SIMD region 202. More specifically, the SIMD nature of each region 202 means that a quantum operation performed at a particular region 202 in any given period can be executed in parallel on multiple different qubits. The number of quantum operations that can be performed in the same period within the quantum SIMD region is referred to in this paper as the width of the quantum SIMD region 202. The quantum SIMD region 202 is considered a processor for performing various quantum operations. Quantum operations are sometimes referred to as quantum gates in the quantum circuit model of computation.

[0018] Due to the no-cloning theorem, qubits cannot be copied. Therefore, to process a specific qubit in a specific quantum SIMD region 202, the qubit is physically moved to the quantum SIMD region 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 circuitry for performing quantum teleportation is understood in the art. Quantum teleportation unit 204 includes circuitry for performing quantum teleportation of qubits between SIMD regions 202. In any given cycle, global memory 206 stores qubits not processed by either of the quantum SIMD regions 202. To perform a quantum operation, quantum teleportation unit 204 quantum teleports a qubit from SIMD region 202 to another SIMD region 202 or from global memory 206 to SIMD region 202. SIMD region 202 then performs the specified quantum operation.

[0019] Quantum computing is inherently error-prone. The movement of qubits via quantum teleportation increases the likelihood of errors. Therefore, it is beneficial to reduce the number of qubit movements used to perform quantum calculations in a quantum computing system.

[0020] In one technique, a quantum SIMD region controller 210 performs qubit shifts in the following manner. As described above, the quantum SIMD region controller 210 receives a quantum SIMD program from a quantum SIMD program source 102. The quantum SIMD program includes a list of operations for each cycle, specifying which SIMD 202 regions perform which quantum operations on which qubits in each cycle.

[0021] To perform quantum operations in any given period, the quantum SIMD region controller 210 checks the quantum SIMD program, which specifies which qubits are needed in each quantum SIMD region 202. The quantum SIMD region controller 210 determines the location of each qubit and, if necessary, teleports each such qubit to the location specified for the current period. For qubits in any quantum SIMD region 202 where no quantum operation is performed, the quantum SIMD region controller 210, based on analysis of the lookout unit 208, either teleports those qubits to the global memory 206 or to the SIMD region 202. When a qubit is in the correct corresponding quantum SIMD region 202, each quantum SIMD region 202 performs the quantum operation specified by the quantum program for that period. Different quantum SIMD regions 202 can perform different quantum operations in the same period.

[0022] Figure 3 Example sequences of quantum operations specified by a quantum program and regions for performing different quantum operations are shown. A series of cycles is shown, illustrating quantum operations in two quantum SIMD regions 202. Furthermore, qubits in the global memory are shown for each cycle. The number of qubits moved to perform the operation for each cycle is also shown.

[0023] In period 1, the quantum SIMD region controller 210 moves qubit a0 into SIMD region 1 and moves qubit a1 into SIMD region 2, meaning that two total qubit moves occur in period 1. Then, the quantum SIMD region controller 210 causes SIMD region 1 to perform an H() quantum operation on qubit a0 and causes SIMD region 2 to perform a T() quantum operation on qubit a1. + () Quantum operations.

[0024] In cycle 2, the quantum SIMD region controller 210 moves qubit a2 into SIMD region 1 and causes SIMD region 1 to perform the T() operator on qubits a2 and a0. A total of one move occurs in cycle 2. Note that, as described elsewhere in this document, a single SIMD region 202 can perform multiple instances of the same quantum operation on multiple data items in a given cycle.

[0025] In cycle 3, the quantum SIMD region controller 210 moves qubit a1 from SIMD region 2 to SIMD region 1 and moves qubit a0 to global memory because this qubit was not used in SIMD region 1 during cycle 3. A total of two qubit moves occur in cycle 3. Furthermore, a CNOT quantum operation is performed on qubits a2 and a1 in SIMD region 1.

[0026] In cycle 4, the quantum SIMD region controller 210 moves qubit a2 to the global memory because qubits are not used in SIMD region 1 and moves qubit a0 from the global memory to SIMD region 1. A total of two moves occur in cycle 4. Then, SIMD region 1 performs a CNOT quantum operation on qubits a1 and a0.

[0027] In cycle 5, the quantum SIMD region controller 210 moves qubit a2 from global memory to SIMD region 2 and moves qubit a0 from SIMD region 1 to SIMD region 2, for a total of 2 moves. Then, SIMD region 1 performs T on qubit a1. + () Quantum operation, SIMD region 2 performs CNOT quantum operation on qubits a0 and a2.

[0028] In cycle 6, the quantum SIMD region controller 210 moves qubit a2 from SIMD region 2 to SIMD region 1, for a total of 1 move. Then, SIMD region 1 performs a CNOT quantum operation on qubits a1 and a2, and SIMD region 2 performs a T quantum operation on qubit a0.

[0029] In period 7, no movement occurs because qubit a0 is not needed, and qubits a1 and a2 are already in SIMD region 1, which performs T on those qubits. + operate.

[0030] In cycle 8, the quantum SIMD region controller 210 moves qubit a2 from SIMD region 1 to the global memory and moves qubit a0 from SIMD region 2 to SIMD region 1, for a total of 2 moves. Furthermore, SIMD region 1 performs a CNOT quantum operation on qubits a1 and a0.

[0031] In cycle 9, the quantum SIMD region controller 210 moves qubit a0 from SIMD region 1 to SIMD region 2 and moves qubit a2 from global memory to SIMD region 2, for a total of 2 moves. Then, SIMD region 1 performs an S-quantum operation on qubit a1, and SIMD region 2 performs a CNOT quantum operation on qubits a0 and a2.

[0032] In cycle 10, the quantum SIMD region controller 210 moves qubit a1 from SIMD region 1 to SIMD region 2 and moves qubit a0 from SIMD region 2 to SIMD region 1, for a total of 2 moves. Then, SIMD region 1 performs an H quantum operation on qubit a0, and SIMD region 2 performs a CNOT quantum operation on qubits a1 and a2.

[0033] and Figure 3The different techniques shown result in even fewer qubit movements, thus improving reliability. This improved technique is performed as follows: During a cycle, the quantum SIMD region controller 210 identifies the qubit to which a quantum operation will be performed in the SIMD region 202 of the quantum SIMD computing device 104. The quantum SIMD region controller 210 moves the qubit from its current location (another SIMD region 202 or global memory 206) into the SIMD region 202, where the operation is performed.

[0034] For qubits that are not used in the current cycle's operation and will be removed from 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 checks the quantum SIMD program to determine the next cycle in which the qubit will be used in a quantum operation within quantum SIMD region 202. If quantum SIMD region 202 does not perform any quantum operation between the current cycle and the next cycle in which the qubit will be used, the look-ahead unit 208 moves the qubit to that quantum SIMD region 202. If quantum SIMD region 202 does perform a quantum operation during that time period, the quantum SIMD region controller 210 moves the qubit to global memory 206. In other words, if quantum SIMD region 202 does not perform a quantum operation that does not use the qubit before the qubit is used in that quantum SIMD region 202, the qubit can be moved to the next quantum SIMD region 202 that uses the qubit, rather than to global memory 206.

[0035] Figure 4 An example of the above technology is shown for performing a comparison Figure 3 The technology involves fewer qubit moves. In cycle 1, the quantum SIMD region controller 210 moves qubit a0 into SIMD region 1 and moves qubit a1 into SIMD region 2, meaning that two total qubit moves occur in cycle 1. Then, the quantum SIMD region controller 210 causes SIMD region 1 to perform an H() quantum operation on qubit a0 and causes SIMD region 2 to perform a T() quantum operation on qubit a1. + () Quantum operations.

[0036] In cycle 2, the quantum SIMD region controller 210 moves qubit a2 into SIMD region 1 and causes SIMD region 1 to perform the T() operator on qubits a2 and a0. A total of one move occurs in cycle 2. Qubit a1 does not move from SIMD region 2 during this cycle because the next location to use qubit a1 is SIMD region 1, and SIMD region 1 is performing a quantum operation that does not involve qubit a1 in cycle 2.

[0037] In cycle 3, the quantum SIMD region controller 210 moves qubit a1 from SIMD region 2 to SIMD region 1 and moves qubit a0 to global memory because this qubit was not used in SIMD region 1 during cycle 3. A total of two qubit moves occur in cycle 3. Furthermore, a CNOT quantum operation is performed on qubits a2 and a1 in SIMD region 1. The next SIMD region for qubit a0 is SIMD region 1, but since no operation was performed on qubit a0 in SIMD region 1 during cycle 3, qubit a0 is not retained in SIMD region 1 during cycle 3.

[0038] In cycle 4, the quantum SIMD region controller 210 moves qubit a0 from global memory to SIMD region 1 because qubit a0 is used in an operation in SIMD region 1 during cycle 4. Prior to cycle 4, qubit a2 was located in SIMD region 1. However, in cycle 4, qubit a2 is not used by any quantum operation. Instead of moving qubit a2 to global memory, the prospective unit 208 determines that the next SIMD region to use qubit a2 is SIMD region 2, and also determines that from the time qubit a2 is moved out of SIMD region 1 (cycle 4) to the time qubit a2 is used in SIMD region 2 (cycle 5), no other operation is performed in SIMD region 2. Therefore, the prospective unit 208 causes the SIMD region controller 210 to move qubit a2 to SIMD region 2 in cycle 4. It should be noted that the next cycle to use qubit a2 is not the cycle in which the conflict with qubit a2 is identified. In other words, the cycle in which it is determined that a2 is not used in SIMD region 1 – cycle 4 – does not occur in the cycle in which qubit a2 is subsequently used (cycle 5).

[0039] In cycle 5, the quantum SIMD region controller 210 moves qubit a0 from SIMD region 1 to SIMD region 2, a total of 1 move. Since qubit a2 is already in SIMD region 2, therefore Figure 4 The number of moves in period 5 of the example is less than Figure 3 The number of moves in cycle 5 in the example is because qubit a2 does not need to be moved from global memory 206 to SIMD region 2.

[0040] In cycle 6, the quantum SIMD region controller 210 moves qubit a2 from SIMD region 2 to SIMD region 1, for a total of 1 movement. Then, SIMD region 1 performs a CNOT quantum operation on qubits a1 and a2, and SIMD region 2 performs a T quantum operation on qubit a0.

[0041] In period 7, no movement occurs because qubit a0 is not needed, and qubits a1 and a2 are already in SIMD region 1, which performs T on those qubits.+ Operation. The quantum SIMD region controller 210 does not move qubit a0 to the global memory 206 because no operation is performed in SIMD region 2 during cycle 7, and therefore there is no need to move qubit a0.

[0042] In cycle 8, the quantum SIMD region controller moves qubit a0 from SIMD region 2 to SIMD region 1. Qubit a2 is not used for quantum operations in any SIMD region. Therefore, this qubit moves from SIMD region 1. Forward unit 208 determines that SIMD region 2 is the next SIMD region with an operation using qubit a2, and also determines that from the time qubit a2 moves from SIMD region 1 to the time qubit a2 is used by an operation in SIMD region 2, no operation is performed in SIMD region 2. For this reason, forward unit 208 causes quantum SIMD region controller 210 to move qubit a2 from SIMD region 1 to SIMD region 2. The total number of moves in cycle 8 is 2. In cycle 8, SIMD region 1 performs a CNOT operation with qubits a0 and a1.

[0043] In cycle 9, the quantum SIMD region controller 210 moves qubit a0 from SIMD region 1 to SIMD region 2. SIMD region 1 performs an S operation on qubit a1, and SIMD region 2 performs a CNOT operation on qubits a0 and a2. Figure 3 In comparison, one less qubit moves in period 9 because qubit a2 is already in SIMD region 2.

[0044] In cycle 10, the quantum SIMD region controller 210 moves qubit a1 from SIMD region 1 to SIMD region 2 and moves qubit a0 from SIMD region 2 to SIMD region 1, for a total of 2 moves. Then, SIMD region 1 performs an H quantum operation on qubit a0, and SIMD region 2 performs a CNOT quantum operation on qubits a1 and a2.

[0045] Because of the presence of forward-looking unit 208, and Figure 3Compared to other technologies, this reduces the number of qubit moves. More specifically, in a given period, when the quantum SIMD region controller 210 determines that a qubit is moved from a SIMD region because the SIMD region is performing a quantum operation that does not use the qubit, the SIMD region controller 210 determines whether there is a different SIMD region that uses the qubit to perform the operation in that period. If no such SIMD region exists, the look-ahead unit 208 determines whether there is a SIMD region that uses the qubit and was idle before using it. If such a SIMD region exists, the look-ahead unit 208 moves the qubit to that SIMD region. Without the look-ahead unit 208, the qubit would be moved to the global memory 206 and would have to be moved to the appropriate SIMD region when the qubit is needed for operation again. Therefore, the look-ahead unit 208 reduces the number of qubit moves, thereby increasing the reliability of quantum operations.

[0046] In addition to using forward-looking unit 208 Figure 4 Beyond the technical aspects, the quantum SIMD region controller 210 also performs reordering operations to further reduce the number of qubit moves. In the example, the quantum SIMD region controller 210 reorders the quantum operations specified by the quantum program so that two uses of a qubit in a single SIMD region are in discontinuous periods separated by periods in which the quantum operations do not use the qubit, or reorders them so that two uses of a qubit in a single SIMD region are in consecutive periods, with the quantum operations that do not use the qubit occurring before or after the two uses of the qubit. In the example, in the original, unreordered program sequence, the quantum program specifies that SIMD 1 performs a CNOT operation on qubits a0 and a1 in period 1, then an H operation on qubit a2 in period 2, and then a T operation on qubit a0 in period 3. Therefore, a1 and a0 must be shifted out in period 2 and shifted in in period 3. Alternatively, the quantum SIMD region controller 210 reorders the operations in periods 2 and 3 so that qubit a0 does not have to be shifted out in either period 2 or period 3 and then shifted back in.

[0047] When performing reordering, if data dependencies cannot be considered, the quantum SIMD region controller 210 does not reorder the operations. For example, if the first operation performs an operation on a qubit, and a subsequent operation performs another operation on that qubit, the SIMD region controller 210 will not reorder those two operations so that the subsequent operation is executed before the first operation.

[0048] Figure 5 This is a flowchart of an example method 500 for processing qubits in a quantum computing device. Although regarding... Figures 1 to 4The system described herein is intended to perform the steps of method 500 in any technically feasible order, but those skilled 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 this disclosure.

[0049] In step 502, the quantum SIMD region controller 210 determines that, in the first cycle, the first quantum SIMD region 202 will perform a first quantum operation that does not use the qubit stored in the first quantum SIMD region 202. Since the quantum SIMD region 202 can only perform one type of quantum operation in a given cycle, the qubit moves from the quantum SIMD region 202 during the cycle in which the quantum SIMD region 202 performs a quantum operation that does not operate on that qubit.

[0050] In step 504, the forward-looking unit 208 identifies a second quantum SIMD region 202, which will perform a second quantum operation in a period later than the first period, wherein the second quantum operation also uses a qubit. The later period is not the same as the first period. In other words, the period in which the qubit is determined to be used by the quantum operation is not the same period in which a conflict occurs. A conflict is the behavior of a qubit in a period within the quantum SIMD region 202 in which the quantum operation will be performed in the same quantum SIMD region 202 where the qubit is not used.

[0051] In step 506, the prospective unit 208 determines that no quantum operation is performed in the second quantum SIMD region 202 between the first period and the next period. "Between the first period and the next period" means within the first period and any period before (but not including) the next period. In other words, the phrase includes the first period but excludes the next period. In other words, in step 506, the prospective unit 208 determines that the second quantum SIMD region 202 does not perform any quantum operation in the first period and any period before the next period. However, since the qubit is used by the second quantum SIMD region 202 in the next period, step 506 does not include determining that the second quantum SIMD region 202 does not perform quantum operations in the next period itself.

[0052] In step 508, the quantum SIMD region controller 210 moves the qubit from the first SIMD region 202 to the second quantum SIMD region 202. More specifically, since the qubit will be used in the second quantum SIMD region 202 next, and since no operation is performed in the second quantum SIMD region 202 between the first and second cycles, the qubit is "buffered" in the second SIMD region 202. Compared to the technique of moving the qubit to the global memory 206, if the qubit is not used in the SIMD region 202 in a particular cycle, and the SIMD region 202 performs operations that do involve the use of the qubit (such as...), this method is more efficient. Figure 3In the example of quantum operations in periods 4 and 8 of SIMD region 1, if a quantum operation without using qubits is performed in a period following the quantum operation, then the buffer reduces the number of qubit moves. The quantum SIMD computing device 104 performs the first quantum SIMD operation and the second quantum SIMD operation in the appropriate period.

[0053] although Figure 5 Method 500 illustrates a scenario where a qubit is moved from one quantum SIMD region 202 to another due to a forward-looking operation. However, in many cases, the qubit is moved to global memory 206 because it cannot be buffered within the quantum SIMD region. In one example, during a first cycle, the qubit is located in SIMD region 1 when a quantum operation without using the qubit is performed. In the next cycle (not the first cycle) where the qubit is used, the qubit is used in SIMD region 2. However, between the first and second cycles, a quantum operation is performed in SIMD region 2 where the qubit is not used. In this case, the quantum SIMD region controller 210 moves the qubit to global memory because it cannot be buffered in SIMD region 2, as SIMD region 2 will perform an operation without using the qubit.

[0054] It should be understood that many variations are possible based on the disclosure herein. In one example, although the prospective unit 208 and the quantum SIMD region controller 210 are described performing analysis and qubit movement operations at runtime, in alternative embodiments, the operations described herein for analyzing where qubits are used and moving qubits are performed by a compiler. More specifically, the compiler performs transformations on the compiled quantum program. These transformations include: determining the locations where qubits are used as specified by the quantum program (e.g., performing steps 502 and 504); determining that no SIMD operations are performed between the time a particular SIMD region uses qubits in the first region and the time it uses qubits in the second region (e.g., performing step 506); and inserting instructions into the compiled quantum program to move qubits from the first region to the second region (e.g., performing step 508). In various embodiments, the compiler also performs other operations described herein performed by the prospective unit 208 and / or the quantum SIMD region controller 210. Although the features and elements described above are in specific combinations, each feature or element may be used alone without other features and elements, or in various combinations with or without other features or elements.

[0055] The various functional units shown in the figures and / or described herein (including, where appropriate, the quantum SIMD program source 102, quantum SIMD computing device 104, quantum SIMD region controller 210, quantum SIMD region 202, quantum SIMD region controller 210, forward-looking unit 208, and global memory 206) can be implemented as hardware circuitry, software executing on a programmable processor, or a combination of hardware and software. The provided methods can be implemented in a general-purpose computer, processor, or processor core. Suitable processors, for example, include general-purpose processors, special-purpose processors, conventional processors, digital signal processors (DSPs), multiple microprocessors, one or more microprocessors associated with a DSP core, controllers, microcontrollers, application-specific integrated circuits (ASICs), field-programmable gate array (FPGA) circuitry, any other type of integrated circuit (IC), and / or state machines. Such processors can be manufactured by configuring a manufacturing process using the results of processed hardware description language (HDL) instructions and other intermediate data, including netlists (such instructions capable of being stored on a computer-readable medium). The result of this processing can be a mask, which is then used in a semiconductor manufacturing process to manufacture a processor implementing aspects of the implementation scheme.

[0056] The methods or flowcharts provided herein can be implemented in a computer program, software, or firmware incorporated 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 for processing qubits in a quantum computing device, the method comprising: It is determined that in the first cycle, the first quantum processing region will perform a first quantum operation that does not use the qubits stored in the first quantum processing region; A second quantum processing region is identified, which will perform a second quantum operation in a second cycle later than the first cycle, wherein the second quantum operation uses the qubit; It is determined that no quantum operation is performed in the second quantum processing region between the first cycle and the second cycle; Before processing the first quantum operation in the first quantum processing region, the qubit is moved from the first quantum processing region to the second quantum processing region; as well as Perform the first quantum operation and the second quantum operation.

2. The method according to claim 1, wherein the first quantum operation and the second quantum operation are quantum logic gate operations.

3. The method according to claim 1, wherein: The first quantum operation and the second quantum operation are quantum single instruction multiple data ("SIMD") operations; and The first quantum processing region and the second quantum processing region are SIMD processing regions.

4. The method according to claim 3, wherein: In a single cycle, the first quantum processing region performs the same quantum logic gate operation on one or more qubits in the first quantum processing region.

5. The method according to claim 4, wherein: In the single cycle, the first quantum processing region performs a first quantum logic gate operation, which is different from the second quantum logic gate operation performed in the second quantum processing region in the single cycle.

6. The method of claim 1, further comprising: It is determined that in the third cycle, the second qubit is used by the third quantum operation in the third quantum processing region; Identify a fourth quantum processing region, which performs a fourth quantum operation using the second qubit in a fourth cycle later than the third cycle; It is determined that, between the third and fourth cycles, the fourth quantum processing region performs a fifth quantum operation that does not use the second qubit; and The second qubit is moved to the global memory after the third quantum operation.

7. The method of claim 1, further comprising: Receive a quantum program that specifies which quantum processing regions perform which quantum operations in which cycles.

8. The method of claim 7, further comprising: The source code was compiled to generate the quantum program.

9. The method of claim 7, further comprising: The quantum operations specified by the quantum program are reordered to convert the discontinuous use of a single qubit into the continuous use of that single qubit.

10. An apparatus comprising: First quantum processing region; Second quantum processing region; as well as A forward-looking processor, wherein the forward-looking processor is configured to: It is determined that during the first cycle, the first quantum processing region will perform a first quantum operation that does not use the qubits stored in the first quantum processing region; The second quantum processing region is identified, and the second quantum processing region will perform a second quantum operation in a second cycle later than the first cycle, wherein the second quantum operation uses the qubit; It is determined that no quantum operation is performed in the second quantum processing region between the first cycle and the second cycle; Before processing the first quantum operation in the first quantum processing region, the qubit is moved from the first quantum processing region to the second quantum processing region; and Perform the first quantum operation and the second quantum operation.

11. The apparatus of claim 10, wherein the first quantum operation and the second quantum operation are quantum logic gate operations.

12. The apparatus according to claim 10, wherein: The first quantum operation and the second quantum operation are quantum single instruction multiple data ("SIMD") operations; and The first quantum processing region and the second quantum processing region are SIMD processing regions.

13. The apparatus according to claim 12, wherein: 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.

14. The apparatus according to claim 13, wherein: In the single cycle, the first quantum processing region is configured to perform a first quantum logic gate operation, which is different from a second quantum logic gate operation performed in the second quantum processing region in the single cycle.

15. The apparatus of claim 10, wherein the forward-looking processor is further configured to: It is determined that in the third cycle, the second qubit is used by the third quantum operation in the third quantum processing region; Identify a fourth quantum processing region, which performs a fourth quantum operation using the second qubit in a fourth cycle later than the third cycle; It is determined that, between the third and fourth cycles, the fourth quantum processing region performs a fifth quantum operation that does not use the second qubit; and The second qubit is moved to the global memory after the third quantum operation.

16. The apparatus of claim 10, further comprising: A quantum SIMD region controller configured to receive a quantum program specifying which quantum processing regions perform which quantum operations in which cycles.

17. A non-transitory computer-readable medium storing instructions, which, when executed by a processor, cause the processor to perform the following: Compiling quantum source code into intermediate quantum programs; and A set of transformations is performed on the intermediate quantum program to generate a transformed quantum program, the set of transformations causing the processor to perform operations including the following: As specified by the intermediate quantum program, in the first cycle, the first quantum processing region will perform a first quantum operation that does not use the qubits stored in the first quantum processing region; As specified by the intermediate quantum program, the second quantum processing region performs a second quantum operation in a second cycle later than the first cycle, wherein the second quantum operation uses the qubit; It is determined, as specified by the intermediate quantum procedure, that no quantum operation is performed in the second quantum processing region between the first and second periods; as well as The instruction to move the qubit from the first quantum processing region to the second quantum processing region before processing the first quantum operation in the first quantum processing region is inserted into the quantum program of the transformation.

18. The non-transitory computer-readable medium of claim 17, wherein the first quantum operation and the second quantum operation are quantum logic gate operations.

19. The non-transitory computer-readable medium according to claim 17, wherein: The first quantum operation and the second quantum operation are quantum single instruction multiple data ("SIMD") operations; and The first quantum processing region and the second quantum processing region are SIMD processing regions.

20. The non-transitory computer-readable medium of claim 19, wherein the instructions are further configured to cause the processor to perform operations including: As specified by the intermediate quantum procedure, in the third period, the second qubit is used by the third quantum operation in the third quantum processing region; As specified by the intermediate quantum procedure, the fourth quantum processing region performs a fourth quantum operation using the second qubit in a fourth cycle later than the third cycle; As specified by the intermediate quantum procedure, between the third and fourth cycles, the fourth quantum processing region performs a fifth quantum operation that does not use the second qubit; as well as An instruction is inserted into the quantum program of the transformation, which causes the second qubit to be moved to global memory after the third quantum operation.

21. The non-transitory computer-readable medium of claim 17, wherein the instructions are further configured to cause the processor to: In the quantum program of the transformation, instructions including quantum operations specified by the intermediate quantum program are inserted, which are reordered to convert the discontinuous use of a single qubit into the continuous use of the single qubit.