EP4792255A1 - Method of operating a quantum control device - Google Patents

Method of operating a quantum control device

Info

Publication number
EP4792255A1
EP4792255A1 EP23794461.6A EP23794461A EP4792255A1 EP 4792255 A1 EP4792255 A1 EP 4792255A1 EP 23794461 A EP23794461 A EP 23794461A EP 4792255 A1 EP4792255 A1 EP 4792255A1
Authority
EP
European Patent Office
Prior art keywords
configurations
peripheral devices
update list
configuration
update
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
EP23794461.6A
Other languages
German (de)
French (fr)
Inventor
Adam Melvin
Seyed Amir ALAVI
Marco GHIBAUDI
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Riverlane Ltd
Original Assignee
Riverlane Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Riverlane Ltd filed Critical Riverlane Ltd
Publication of EP4792255A1 publication Critical patent/EP4792255A1/en
Pending legal-status Critical Current

Links

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00—Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/80—Quantum programming, e.g. interfaces, languages or software-development kits for creating or handling programs capable of running on quantum computers; Platforms for simulating or accessing quantum computers, e.g. cloud-based quantum computing
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00—Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/40—Physical realisations or architectures of quantum processors or components for manipulating qubits, e.g. qubit coupling or qubit control

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Logic Circuits (AREA)

Abstract

A method (100) of operating a quantum control device (1) comprising a set of peripheral devices (7) configurable to cause one or more quantum processing units (5) to perform a plurality of operations, the method (100) comprising: receiving (103) a first object (27) defining a first set of configurations for the set of peripheral devices (7), the first set associated with a first operation to be performed; retrieving (105) a stored object (21) defining a current set of configurations for the set of peripheral devices (7); comparing (107) the first object (27) and stored object (21) to generate an update list object (31) of differences between the current set of configurations and the first set of configurations; and transmitting (109) the update list object (31) for updating configurations of the peripheral devices (7).

Description

METHOD OF OPERATING A QUANTUM CONTROE DEVICE
The present invention relates to a method of operating a quantum control device, and a quantum control device. In particular but not exclusively, the present invention relates to a method of operating a quantum control device comprising a set of peripheral devices configurable to perform a plurality of operations on one or more quantum processing units.
In use, a quantum device, such as a quantum computer, may have a number of quantum processing units. The operation of the quantum processing units is controlled by a number of external peripheral devices which send low-level signals to control the quantum processing units and the environment around them.
In typical use, a quantum device may be used by one or more users to execute a variety of different programmes/operations. Different quantum programmes/operations map into different configurations of the peripheral devices. These configurations need to be transmitted from a central processing unit (CPU) to a field programmable gate array (FPGA) device (either internally or via external links) over a single bus to the different peripheral devices. In general, the FPGA does not have sufficient internal memory to store multiple versions of the configurations needed for different users. Therefore, the transmission of configurations occurs after one execution has finished and before the next execution begins and represents a downtime on the utilisation of the quantum computer.
Furthermore, keeping track of what configurations have been executed is extremely memory consuming and generating an historical view of the execution is not possible.
According to a first aspect of the invention, there is provided a method of operating a quantum control device comprising a set of peripheral devices configurable to cause one or more quantum processing units to perform a plurality of operations, the method comprising: receiving a first object defining a first set of configurations for the set of peripheral devices, the first set associated with a first operation to be performed; retrieving a stored object defining a current set of configurations for the set of peripheral devices; comparing the first object and stored object to generate an update list object of differences between the current set of configurations and the first set of configurations; and transmitting the update list object for updating configurations of the peripheral devices.
Transmitting the update list object may comprise: transmitting the update list object to a configuration node of the quantum control device.
The method may further comprise: at the configuration node, updating the configuration of the peripheral devices identified in the update list object.
The method may further comprise: performing the first operation on the one or more quantum processing units.
The method may comprise: after generating the update list object, updating the stored object to define the current set of configurations of the set of peripheral devices as the first set of configurations.
The method may comprise: receiving a second object defining a second set of configurations for the set of peripheral devices, the second set associated with a second operation to be performed next after the first operation; retrieving the stored object defining the current set of configurations for the set of peripheral devices, used for performing the first operation; comparing the second object and stored object to generate a second update list object of differences between the current set of configurations and the second set of configurations; and transmitting the second update list object for updating configurations of the peripheral devices.
The update list object may be generated ahead of an execution time for the first operation.
The update list object may be generated during a previous operation.
The method may comprise: receiving an indication of an available configuration buffer at the configuration node; and transmitting the update list to the configuration node in response to receiving an indication of an available configuration buffer. The first object may be received from a compiler at which a user defines the first set of configuration associated with the first operation.
The update list may also include a time-to-update indicator, indicating a time when the peripheral devices should be configured based on the update list.
The stored object and update list may include at least an address and a value for variable parameters of the peripheral devices.
The peripheral devices may be one or more of (among others): digital direct synthesisers; arbitrary waveform generators; digital to analogue converters; and phase trackers.
At least some of the peripheral devices may have two or more variable parameters controlled by the set of configurations.
The stored object and update list object may store information in the form of a binary object or a set of two-tuples defining an address and a value for each peripheral device.
The method may further comprise identifying additional update parameters (e.g. parameters corresponding to those that change or reset automatically at the end of an operation) and including the additional update parameters in the update list.
According to a second aspect of the invention, there is provided a non-transitory computer readable medium comprising instructions which, when executed by a processor, cause the processor to perform the steps of the first aspect.
According to a third aspect of the invention, there is provided a quantum control device comprising: an interface node having one or more processors, the one or more processors arranged to: receive a first object defining a first set of configurations for the set of peripheral devices, the first set associated with a first operation; retrieve a stored object defining a current set of configurations for the set of peripheral devices; compare the first object and stored object to generate an update list object of differences between the current set of configurations and the first set of configurations; and transmit the update list object to update configurations of a plurality of peripheral devices configurable to cause one or more quantum processing units to perform a plurality of operations.
The quantum control device may comprise a configuration node for controlling operation of the plurality of peripheral devices, the one or more processors arranged to transmit the update list object to the configuration node.
The configuration node may comprise: a field programmable gate array arranged to control the peripheral devices; a reception module arranged to receive the update list object; a configuration buffer arranged to receive a list of configurations to be changed from the update list object; and a configuration controller arranged to forward the configurations to be changed to the associated peripheral devices.
The reception module, configuration buffer, and configuration controller may be provided on the field programmable gate array. Alternatively, the reception module, configuration buffer, and configuration controller may be provided on a central processing unit integrated with the field programmable gate array.
The reception module may be arranged to provide an indication of the availability of the configuration buffer to the interfacing node. The interfacing node may be arranged to transmit the update list object to the configuration node in response to receiving the indication of the configuration buffer being available.
The one or more processors may be arranged to: update the stored object to define the current set of configurations of the set of peripheral devices as the first set of configurations.
The one or more processors may be arranged to: receive a second object defining a second set of configurations for the set of peripheral devices, the second set associated with a second operation; retrieve the stored object defining the current set of configurations for the set of peripheral devices; compare the second object and stored object to generate a second update list object of differences between the current set of configurations and the second set of configurations; and transmit the second update list object to update configurations of the plurality of peripheral devices. The update list object may also include a time-to-update indicator, indicating a time when the peripheral devices should be configured based on the update list object.
The stored object and update list object may store information in the form of a binary object or a set of two-tuples defining an address and a value for each peripheral device.
The peripheral devices may be one or more of (among others): digital direct synthesisers arbitrary waveform generators; digital to analogue converters; and phase trackers.
At least some of the peripheral devices may have two or more variable parameters controlled by the set of configurations.
The processors may be further arranged to identify additional update parameters (e.g. parameters corresponding to those that change or reset automatically at the end of an operation) and include the additional update parameters in the update list.
According to the various aspects of the invention, the time taken to load new configurations is reduced by deriving update list objects for later operations whilst earlier operations are in progress. This reduces the waiting time between consecutive operations.
Furthermore, FGPAs have very limited memory. By identifying only those parameters that need updating, the use of FPGA memory can be optimised, and the memory may be able to store multiple sets of configurations to be applied, and a historical record of previous configurations.
Embodiments of the invention will now be described, by way of example only, with reference to the accompanying drawings, in which:
Figure 1 schematically illustrates a quantum control device according to an embodiment of the invention;
Figure 2 schematically illustrates a method of configuring the peripheral devices in the device of Figure 1;
Figure 3 schematically illustrates a configuration map of the peripheral devices in the device; and Figure 4 schematically illustrates a quantum control device according to an alternative embodiment of the invention.
Figure 1 illustrates a quantum control device 1 that is used to perform operations on a quantum device 3 including one or more quantum processing units 5, which may each comprise one or more qubits. The quantum device 3 and quantum processing units 5 are controlled to perform the operations by a number of peripheral devices 7i, 72,.., 7n which generate low-level signals used to control and read the quantum processing units 5 and their surrounding environment. The peripheral devices 7 form part of a configuration node 9 of the quantum control device 1 as will be described in more detail below.
Examples of peripheral devices 7 used to implement quantum operations include digital direct synthesisers (DDS), arbitrary waveform generators, high precision digital to analogue converters, phase trackers and the like. Peripheral devices may have a digital implementation or interface through which parameters controlling operation of the device can be set.
Each peripheral device 7 may have one or more variable parameters. For example, the initial phase, amplitude and frequency of a signal generated by a digital direct synthesiser may all be variable. Selection of the different values for the variable parameters may allow a wide range of different operations to be performed.
Figure 2 illustrates a method 100 of configuring the variable parameters of the peripheral devices 7 in the circuit 1. The method 100 enables the peripheral devices 7 to be configured for consecutive queued operations with minimal downtime between the operations being performed.
In general, device configurations are passed from an interfacing node 11 comprising a central processing unit to the configuration node 9, which then sets the variable parameters on the peripheral devices 7.
The interfacing node 11 and configuration node 9 are both part of the quantum control device 1 (which may be referred to as a control system) and form part of a quantum control stack. As will be discussed in more detail below, the interfacing node 11 may be any classical computing device capable of receiving configuration objects (for example from a user/compiler) and transmitting updated configuration parameters (for example as an update list object) to the configuration node 9. The configuration node is a classical computing device comprising the peripheral devices 7 that is capable of receiving updated configuration parameters and applying the updated parameters to the peripheral devices 7.
The interfacing node 11 includes a memory 13 that includes a programme storage portion 15 and a data storage portion 17. The programme storage portion 15 of the memory includes computer code 19 that is used to implement the method 100. The data storage portion 17 includes a stored object 21 that defines the values of the variable parameters currently implemented on the peripheral devices 7. These may be referred to as the current set of configurations, or a shadow map.
In an initialisation step, or pre-processing step 99, the initial configurations of the peripheral devices 7 are loaded in the stored object 21, to define the starting configurations of the peripheral devices. This information may be pre-loaded by a user, received in an object at the interfacing node 11, or read through the system from the peripheral devices 7.
Figure 3 illustrates a schematic example of the stored object 21. Within the object, each variable parameter in the set of configurations of the peripheral devices 7 is defined by an ordered pair or two tuple 23 i-n. Each two tuple 23 includes an address A for setting the parameter and a value V of the parameter.
The address A of each parameter defines a register used for setting the parameter. Where a single peripheral device 7 has multiple variable parameters, each parameter will have a separate register, and thus a unique address.
In a first step 101 of the method 100, a user defines or selects an operation or programme to be performed on the quantum device 3. Based on the selected or defined operation, a compiler 25 creates a configuration object 27 defining the set of configurations for the peripheral devices 7 needed to perform the operation.
The operation may be defined or selected by a user directly through a user interface, or similar. It may be that the user directly defines each of the values of the variable parameters. Alternatively, the parameters may be retrieved from memory or lookup tables based on a selection of an operation made by the user.
The compiled configuration object 27 is in the same format as the shadow map 21, having addresses and values of parameters combined in pairs.
In a second step 103 the compiled configuration object is received by an update logic module 29 of the interface node 11.
In a next step 105, the update logic module 29 retrieves the shadow map 21. In a subsequent step 107, the update logic module 29 compares the stored object 21 and the compiled configuration object 27. The comparison may compare the objects entry by entry. The entries may be in a defined order to allow for quick comparison of the corresponding entries.
As a result of comparing the compiled configuration object 27 (representing the set of peripheral device configurations desired for a future operation) and the stored object 21 (representing the current set of configurations), an update list object 31 is generated. The update list includes only the variable parameters in the set of configurations that need changing.
The update list object 31 is in the same format as the stored object 21 and the compiled configuration object 27, having pairs of addresses and values to be updated at those addresses. The stored object 21 and compiled configuration object 27 may include parameters for all possible values that may be read or written in the set of configurations. On the other hand, the update list object 31 includes only those parameters that require modification.
The update list object 31 is sent to a transmission logic module 33 which is on the same machine as the shadow map 21. The transmission logic module 33 generates appropriate transmission payloads to send to the configuration node 9. These payloads can optionally implement compression and/or encoding according to any suitable scheme.
At the next step 109 of the method, the update list object 31 is transmitted to the configuration node 9. After the transmission, part of the method is performed on the interface node 11, and part is formed at the configuration node 9. These separate parts of the method may be performed substantially in parallel.
In the example shown in Figure 1, the configuration node 9 is formed on a second central processing unit/controller 35 integrated with a field programmable gate array (FPGA) 37. The peripheral devices 7 are addressed through the FPGA 37.
At step 111, at the configuration node 9, the update list object 31 is received by a reception logic module 39 that sits on the controller 35. At the next step 113, the reception logic module 39 reads the update list object 31 and stores it in an available configuration buffer 411, 4G in a buffer memory 41 of the controller 35.
Each configuration buffer 41i, 4h contains a list of variable parameter values to be updated and their corresponding address.
Each configuration buffer can be accessed by a configuration controller logic module 43. At step 115, the configuration controller logic module 43 reads a new configuration from one of the configuration buffers 41i, 4G and sets the new parameter values at the peripheral devices 7 such that the operation is performed. The configuration buffer 41i, 412 from which the configurations are set is also cleared (i.e. the set of configurations is removed to empty the buffer).
On the interfacing node 11 the stored object 21 is updated based on the set of configurations received in the compiled configuration object 27. Therefore, the shadow map 21 is updated for the new settings that are applied when the operation is performed.
The shadow map 21 can also be read to allow users to identify the current set of configurations, without having to directly read the peripheral devices 7.
It will be appreciated that for a typical quantum device 3, one or more users may wish to perform any one of two or more different operations. This generates a queue of operations that may be performed one after the other. For each new operation input by a user, the method 100 of Figure 2 is repeated. Where multiple operations are to be performed consecutively, the configuration controller logical module 43 reads and sets new configurations under two different conditions: (1) it receives a notification that the previous operation is completed or about to complete; and/or (2) internal time counter reaches a time-to-update value.
The time-to-update value may be a parameter stored in the configuration buffers 41i, 412, associated with each set of configurations. The time-to-update value may be passed to the configuration buffers 41i. 4h. as part of the update list object 31, or may be calculated on the central processing unit/controller 35 of the configuration node 9.
The time-to-update value may either be set by a user, or may be calculated based on an expected runtime of preceding operations. The time-to-update value can either be used by the configuration controller 43 directly to determine which configuration buffer 411, 412 to take next, or to order the configuration buffers 41i, 4h in the buffer memory to aid first in first out operation.
When the controller logical module 43 reads and sets new configurations, it may retrieve the oldest set of configurations 411 412 stored in the buffer memory 41, and then remove that set of configurations. This ensures a first in first out model of operation, to ensure the chain of changes to the set of configurations is followed.
The buffer memory 41 may have a limited number of configuration buffers 411, 412. As discussed above, when a configuration buffer 4h 412 is read, the contents are cleared. The reception logic module 39 is arranged to provide a notification to the transmitter logic module 33 when at least one configuration buffer 411412 is available.
The interfacing node 11 may also include a buffer (not shown) to queue update list objects 21 ahead of transmission to the configuration node 9. This buffer may also be operated in a first in first out model, to ensure update list objects 31 are sent in the correct order. This buffer may also provide a notification to indicate when there is no available buffer.
When one or both of the buffers are full, a busy signal may be propagated through the system to the user, to prevent further operations being inputted. Where a new update list object 31 is generated (and/or the shadow map 21 is written to with changes), a notification is triggered to the transmission logic module 33. This may trigger transmission of the new update list object 31, or, where a buffer is present in the interfacing node 11, add the update list object 31 into the buffer to be transmitted.
Where there are multiple consecutive operations, the step 117 of updating the stored object 21 occurs as the update list object 31 is generated to ensure that shadow map 21 represents the set of configurations that will be adopted immediately before the operation associated with the next compiled configuration object that is received. Therefore, the shadow map may not always represent the physical configuration of the peripheral devices 7 at that point in time, but instead represents the physical configuration of the peripheral devices 7 for the previous consecutive operation. In some cases this may be the current physical configuration but it does not necessarily have to be.
Access control may be implemented on reading and writing to the shadow map 21. The update logic module 29 only allows one user at the time write permissions to the shadow map 21. Furthermore, read operations may be prevented during active writes but can be performed by multiple users in parallel.
The access control for the shadow map 21 may be implemented in any suitable way. For example, a flag may be used to indicate a busy condition and an always running process may prevent writing if the flag reads busy. Similarly to the update logic module 29, a busy flag can be used to inform the transmission logic module 33, to ensure correct transmission from the interfacing node 11 to the configuration node 9.
In the scenario with multiple consecutive operations, the process of determining the update list object 31 occurs before the operation is performed (due to previous operations in the queue). Therefore, downtime between operations is reduced, as will be described in more detail in the example below.
In some cases, certain peripheral devices 7 may change or reset parameters automatically at the end of an operation. In this case, these parameters need to be set as part of the configuration for every operation. Those parameters that need to be changed in every operation may be flagged to always be included in the update list object 31. Optionally, the data storage portion 17 of the memory 13 may include a logger 45 that logs all update list objects 31. This can be read out and allows the full sequence of configurations to be reconstructed.
Figure 4 illustrates a configuration node 9 according to a second embodiment of the invention. The quantum device 3 and interfacing node 11 used with this configuration node 9 are the same as in Figure 1. The configuration node 9 is the same as Figure 1 unless explicitly explained otherwise.
In the embodiment shown in Figure 4, the reception logic module 39, buffer memory 41 and configuration control logic 43 are all implemented on the same FPGA 37 as the peripheral devices 7. In the embodiment shown in Figure 4, the configuration node 11 is directly coupled to the FPGA 37, in the embodiment in Figure 1, the interfacing system 11 can only communicate with the FPGA 37 through a central processing unit 35.
On the central processing unit 11 forming the interfacing node 11, the update logic module 29, memory 13 and transmission logic module 33 are interconnected by a first physical bus 47. Likewise, the reception logic module, buffer memory 41, configuration controller logic module 43 and peripheral devices 7 are interconnected by a second bus 49.
In one example, the compiler 25, interfacing node 11, and configuration node 9 are all implemented on a single system with a single bus (i.e. the first bus 47 is part of the same bus as the second bus 49). However, in other examples, the link 51 between the compiler 25 and interfacing node 11 and/or the link 53 between the interfacing node 11 and configuration node 9 may be implemented by any suitable transmission schemes. This may include any suitable local or wide area networks, such as WIFI, Bluetooth, 4G, 5G or the internet. This may allow the configuration to be set remotely, such as over the internet.
In the following example, it is assumed that: The configuration node 9 is as shown in Figure 1 (having a second central processing unit 35) and that data transmission rate from the interfacing node 11 to the FPGA 37 is 125ns per 1 kB;
The transfer rate to the peripheral devices 7 (i.e. the rate at which the peripheral devices 7 are configured) is 6kB/ps; and There are eight peripheral devices 7.
Within a quantum device 3, there are three sources of latency: the transmission latency (which represents the time to transfer the configurations to the FPGA 37) the configuration latency (which represents the time to configure the peripheral devices 7) and the execution latency or execution time (the time take to perform the operation).
The configuration overhead is the proportion of the total latency that derives from the total time of the transmission latency and the configuration latency. Ideally, the configuration overhead is as low as possible, such that majority of the time taken is due to the execution of the operation, and less time is taken by configuring the operation.
The execution latency for a given quantum operation is fixed and cannot be varied. For example, a certain operation (e.g. a quantum circuit) may have an execution latency of 860ns (e.g. this may be the total time taken to perform all gates in a quantum circuit). Using the method 100 discussed above, the amount of data required to update the configuration of each peripheral device 7 may be an average of 0. 125kB per peripheral. Therefore, the entire update list object 31 for all eight DDS is IkB total, giving a transmission latency of 125ns = 0.125ps. Furthermore, due to the reduction in data, the total configuration latency for all eight peripheral devices 7 is 8x(0.125 kB)/(6 kB/ps) = 0.166ps. Therefore, the total latency is 1.151 ps and the configuration overhead is 25%.
Compare this to the scenario without using the method disclosed herein where the full IkB of data is sent to each DDS (8kB in total). In this case, the transmission latency to send 8kB of data is 1 ps and the configuration latency for the eight DDS is 1.33 ps. Therefore, the total latency is 3.19 ps and the configuration overhead is 73% (the execution latency remains 860ns). This example is given for illustrative purposes only, to demonstrate the effectiveness of using the update list object 31 to configure the peripheral devices 7.
In the above example, the stored object 21 and compiled configuration object 27 are provided as a list of 2-tuples defining the address and value for each variable parameter. This may be ordered, to allow simple pairwise comparison of the two objects, or unordered such that a full search needs to be conducted for each pair when comparing the stored object 21 and the received compiled configuration object 27.
This is by way of example only, and the objects may store the required information in any suitable way. For example, any type of binary object may be used.
In some examples, a peripheral device identifier may be associated with each address and value in at least the stored object 21. In this way, the compiled configuration object 27 need not include the address of each peripheral device 7 and may simply include the identifier. In this case, the step of comparing the stored object 21 and the compiled configuration object 27 may also include identifying the correct peripheral device 7 based on the identifier, and determining the address for each peripheral device 7.
Furthermore, as discussed above, the update list object 31 may include a time-to-update to trigger the update. In addition, it may also include certain transmission or reception logic or other information required during the operation.
The arrangements of the interfacing node 11 and configuration node 9 given above are by way of example only. Any suitable processing devices and memories may be used, and the different logical modules may be implemented in any suitable way.
The buffer 41 in the configuration node 9 may include any number of configuration buffers 4h, 4h. It may be that the number of buffers varies in dependence on the size of the update list object 31.
In the example discussed above, the average data required to configure each peripheral device 7 is reduced from 1 kB when the full configuration for each device is provided to 0.125 kB when only the settings that need to be changed are provided. This is by way of example only, and is averaged across a number of peripheral devices 7. For example, one peripheral device 7 may not require any parameters to be updated but another peripheral device 7 may need a larger number. Where fewer settings need to be updated (for example for two very similar operations) the update list object 31 may be smaller than when many settings need to be updated.
It will be appreciated that certain steps, such as receiving the compiled configuration object 27 and retrieving the stored object 21 may occur at the same time, or one after the other (in either order) before the step of comparing the two objects. Likewise, the step of updating the stored object can be done at any suitable time before the next compiled configuration object 27 is received.

Claims

Claims
1. A method of operating a quantum control device comprising a set of peripheral devices configurable to cause one or more quantum processing units to perform a plurality of operations, the method comprising: receiving a first object defining a first set of configurations for the set of peripheral devices, the first set associated with a first operation to be performed; retrieving a stored object defining a current set of configurations for the set of peripheral devices; comparing the first object and stored object to generate an update list object of differences between the current set of configurations and the first set of configurations; and transmitting the update list object for updating configurations of the peripheral devices.
2. The method of claim 1, wherein transmitting the update list object comprises transmitting the update list object to a configuration node of the quantum control device.
3. The method of claim 2, further comprising, at the configuration node, updating the configuration of peripheral devices identified in the update list object.
4. The method of claim 3, further comprising performing the first operation on the one or more quantum processing units.
5. The method of any preceding claim, comprising: after generating the update list object, updating the stored object to define the current set of configurations of the set of peripheral devices as the first set of configurations.
6. The method of claim 5, comprising: receiving a second object defining a second set of configurations for the set of peripheral devices, the second set associated with a second operation to be performed next after the first operation; retrieving the stored object defining the current set of configurations for the set of peripheral devices, used for performing the first operation; comparing the second object and stored object to generate a second update list object of differences between the current set of configurations and the second set of configurations; and transmitting the second update list object for updating configurations of the peripheral devices.
7. The method of any preceding claim, wherein the update list object is generated ahead of an execution time for the first operation.
8. The method of claim 7, wherein the update list object is generated during a previous operation.
9. The method of any preceding claim, comprising: receiving an indication of an available configuration buffer at the configuration node; and transmitting the update list to the configuration node in response to receiving an indication of an available configuration buffer.
10. The method of any preceding claim, wherein the first object is received from a compiler at which a user defines the first set of configurations associated with the first operation.
11. The method of any preceding claim, wherein the update list also includes a time- to-update indicator, indicating a time when the peripheral devices should be configured based on the update list.
12. The method of any preceding claim, wherein the stored object and update list include at least an address and a value for variable parameters of the peripheral devices.
13. The method of any preceding claim, wherein the peripheral devices are one or more of: digital direct synthesisers; arbitrary waveform generators; digital to analogue converters; and phase trackers.
14. The method of any preceding claim, wherein at least some of the peripheral devices have two or more variable parameters controlled by the set of configurations.
15. The method of any preceding claim, wherein the stored object and update list object store information in the form of a binary object or a set of two-tuples defining an address and a value for each peripheral device.
16. A non-transitory computer readable medium comprising instructions which, when executed by a processor, cause the processor to perform the steps of any preceding claim.
17. A quantum control device comprising: an interface node having one or more processors, the one or more processors arranged to: receive a first object defining a first set of configurations for the set of peripheral devices, the first set associated with a first operation; retrieve a stored object defining a current set of configurations for the set of peripheral devices; compare the first object and stored object to generate an update list object of differences between the current set of configurations and the first set of configurations; and transmit the update list object to update configurations of a plurality of peripheral devices configurable to cause one or more quantum processing units to perform a plurality of operations.
18. The quantum control device of claim 17, comprising a configuration node for controlling operation of the plurality of peripheral devices, the one or more processors arranged to transmit the update list object to the configuration node.
19. The quantum control device of claim 18, wherein the configuration node comprises: a field programmable gate array arranged to control the peripheral devices; a reception module arranged to receive the update list object; a configuration buffer arranged to receive a list of configurations to be changed from the update list object; and a configuration controller arranged to forward the configurations to be changed to the associated peripheral devices.
20. The quantum control device of claim 19, wherein the reception module, configuration buffer, and configuration controller are provided on the field programmable gate array.
21. The quantum control device of claim 19, wherein the reception module, configuration buffer, and configuration controller are provided on a central processing unit integrated with the field programmable gate array.
22. The quantum control device of any of claims 19 to 21, wherein the reception module is arranged to provide an indication of the availability of the configuration buffer to the interfacing node, and wherein the interfacing node is arranged to transmit the update list object to the configuration node in response to receiving the indication of the configuration buffer being available.
23. The quantum control device of any of claims 17 to 22, wherein the one or more processors are arranged to: update the stored object to define the current set of configurations of the set of peripheral devices as the first set of configurations.
24. The quantum control device of claim 23, wherein the one or more processors are arranged to: receive a second object defining a second set of configurations for the set of peripheral devices, the second set associated with a second operation; retrieve the stored object defining the current set of configurations for the set of peripheral devices; compare the second object and stored object to generate a second update list object of differences between the current set of configurations and the second set of configurations; and transmit the second update list object to update configurations of the plurality of peripheral devices.
25. The quantum control device of any of claims 17 to 24, wherein the update list object also includes a time-to-update indicator, indicating a time when the peripheral devices should be configured based on the update list object.
26. The quantum control device of any of claims 17 to 25, wherein the stored object and update list object store information in the form of a binary object or a set of two- tuples defining an address and a value for each peripheral device.
27. The quantum control device of any of claims 17 to 24, wherein the peripheral devices are one or more of: digital direct synthesisers arbitrary waveform generators; digital to analogue converters; and phase trackers.
28. The quantum control device of any of claims 17 to 27, wherein at least some of the peripheral devices have two or more variable parameters controlled by the set of configurations.
EP23794461.6A 2023-10-12 2023-10-12 Method of operating a quantum control device Pending EP4792255A1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/GB2023/052647 WO2025078783A1 (en) 2023-10-12 2023-10-12 Method of operating a quantum control device

Publications (1)

Publication Number Publication Date
EP4792255A1 true EP4792255A1 (en) 2026-08-19

Family

ID=88558546

Family Applications (1)

Application Number Title Priority Date Filing Date
EP23794461.6A Pending EP4792255A1 (en) 2023-10-12 2023-10-12 Method of operating a quantum control device

Country Status (2)

Country Link
EP (1) EP4792255A1 (en)
WO (1) WO2025078783A1 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103825632B (en) * 2012-11-16 2016-08-03 纬创资通股份有限公司 Information Fast Synchronization Method Using Near Field Communication
US10275717B2 (en) * 2016-06-02 2019-04-30 Google Llc Training quantum evolutions using sublogical controls
US11853731B2 (en) * 2020-03-24 2023-12-26 IonQ, Inc. Pulse generation

Also Published As

Publication number Publication date
WO2025078783A1 (en) 2025-04-17

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: UNKNOWN

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE