Pulse Generation
By compiling quantum operations into pulse instructions and encoding them for an FPGA, the challenge of generating laser pulses for quantum calculation operations in trap ion quantum computers is addressed, enabling efficient execution of quantum operations.
Patent Information
- Application Number
- JP2022557199
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-03-24
- Filing Date
- 2021-03-24
- Publication Date
- 2025-07-31
- Estimated Expiration
- 2041-03-24
AI Technical Summary
Existing trap ion quantum computers require efficient methods to generate laser pulses for performing quantum calculation operations, as existing technologies lack a systematic approach to convert high-level quantum operations into control signals for laser modulation systems.
A classical computing device compiles quantum operations into pulse instructions using a pulse shape library, which are then encoded into binary format instructions for a field programmable gate array (FPGA) to control laser modulation systems in quantum computing devices, enabling precise pulse generation for quantum operations.
This approach allows for accurate and efficient execution of quantum operations on trap ion quantum computers by converting high-level quantum operations into precise laser pulse instructions, facilitating the performance of quantum gates and measurements.
Smart Images

Figure 0007716423000001 
Figure 0007716423000002 
Figure 0007716423000003
Abstract
Description
[Technical Field]
[0001] The present invention relates to pulse generation systems and techniques. [Background technology]
[0002] Trap ion quantum computers can be operated using lasers and / or microwaves. Lasers and / or microwaves can be used to control and measure the state of trapped ions, or to perform quantum calculation operations. The laser beam directed at the trap ions may need to be pulsed or modulated in a particular pattern to perform different quantum calculation operations. Programs written to run on a trap ion quantum computer may need to include instructions for operating a laser modulation system, which will generate pulses appropriate to perform quantum calculation operations in the program.
[0003] According to embodiments of the disclosed subject matter, a classical computing device may receive program source code including quantum operations. The program source code may be compiled into a compiled program including one or more quantum operations. It may be determined that pulse shapes indicated by a pulse shape library correspond to each of the quantum operations. Pulse instructions may be generated based on the correspondence of the one or more pulse shapes indicated by the pulse shape library to each of the quantum operations. Binary format instructions may be generated based on the pulse instructions. The binary format instructions may encode the pulse instructions in binary packets using binary code for a field programmable gate array (FPGA) of the quantum computing device.
[0004] The systems and techniques disclosed herein can enable pulse generation. Additional features, advantages, and embodiments of the disclosed subject matter can be defined or clarified by considering the following detailed description, the drawings, and the claims. Further, it is to be understood that both the foregoing summary and the following detailed description are examples and are intended to provide further explanation without limiting the scope of the claims.
Brief Description of the Drawings
[0005] The accompanying drawings are included to provide a further understanding of the disclosed subject matter, are incorporated in and constitute a part of this specification. The drawings also illustrate embodiments of the disclosed subject matter and, together with the detailed description, serve to explain the principles of the embodiments of the disclosed subject matter. No attempt is made to show structural details in more detail than may be necessary for a fundamental understanding of the disclosed subject matter and the various ways in which it may be implemented.
[0006] [Figure 1] An exemplary system suitable for pulse generation according to an embodiment of the disclosed subject matter is shown. [Figure 2] An exemplary arrangement suitable for pulse generation according to an embodiment of the disclosed subject matter is shown. [Figure 3A] An exemplary arrangement suitable for pulse generation according to an embodiment of the disclosed subject matter is shown. [Figure 3B] An exemplary arrangement suitable for pulse generation according to an embodiment of the disclosed subject matter is shown. [Figure 4] An exemplary arrangement suitable for pulse generation according to an embodiment of the disclosed subject matter is shown. [Figure 5] An exemplary arrangement suitable for pulse generation according to an embodiment of the disclosed subject matter is shown. [Figure 6] An exemplary procedure suitable for pulse generation according to an embodiment of the disclosed subject matter is shown. [Figure 7] An exemplary procedure suitable for pulse generation according to an embodiment of the disclosed subject matter is shown. [Figure 8] A computer according to an embodiment of the disclosed subject matter is shown. [Figure 9] Shows a network configuration according to an embodiment of the disclosed subject matter.
DETAILED DESCRIPTION OF THE INVENTION
[0007] According to embodiments disclosed herein, pulse generation may be used to generate instructions for controlling a laser and a laser modulation system to perform quantum operations. The laser and the laser modulation system may be, for example, components of a trapped ion quantum computing device. The program may include quantum operations used in quantum computing. The program may be a hybrid program that includes both classical and quantum operations, or a program that includes only quantum operations. The quantum operations in the program may be looked up in a library of pulse shapes. An appropriate pulse shape for causing the laser and laser modulation system of the quantum computing device to perform a quantum operation may be selected from the library of pulse shapes. The pulse shape selected from the library of pulse shapes may have parameters that may be set based on calibration and environmental parameters of the quantum computing device and its components. The selected pulse shape may be used together with its parameters to generate instructions, and the instructions may be used to control the laser modulation system of the quantum computing device to direct a laser pulse at a trapped ion using the laser light generated by the laser of the quantum computing device, thereby performing a quantum operation from the program. In some implementations, a set of pulse primitives may be used to generate instructions used to control the laser of the quantum computing device.
[0008] A program intended to execute a quantum computing device such as a trapped ion quantum computing device may include quantum operations. The program may be a quantum program that uses only quantum operations, or a hybrid program that uses both classical and quantum operations. For example, the program may be a hybrid program, which may be executed on a classical computing device capable of communicating with the quantum computing device via any suitable communication interface. When the hybrid program is executed, the classical operations may be executed on the classical computing device, the quantum operations may be sent to the quantum computing device, and the quantum computing device may return the results of the quantum operations to the classical program via the communication interface. The quantum program may be sent to be directly executed on the quantum computing device via a communication interface with the classical computing device, and the results of the quantum operations may be returned to a part of the communication interface executed on the classical computing device. The program may be written in any suitable language.
[0009] The quantum operations of a program may be specified in any suitable way, including, for example, using a quantum computing language or syntax, or an extension of a classical programming language. The quantum operations of a program may include operations specified using initialization and measurement operations, as well as quantum gates that may also be used to form a quantum circuit. A quantum gate can specify the qubits of a quantum computing device to which the quantum gate is applied. In a trapped ion quantum computing device, each trapped ion may store the state of a single qubit, and the quantum gates may be applied to the qubits via the lasers of the quantum computing device that apply pulses of laser light to entangle the ions, for example, to implement quantum gates operating on multiple qubits. The laser light may be directed towards components of a laser modulation system. The laser light may be pulsed using the laser modulation system to generate laser pulses. The laser pulses may result from the pulsing, shaping, and modulation of the laser light generated by the laser by the laser modulation system and may be used in both classical and quantum operations that affect the trapped ions. The laser modulation system may include any suitable hardware device and components, including, for example, acousto-optic modulators, electro-optic modulators, physical optics components, electronic gating, and all associated mechanically or electronically driven sub-components. The laser modulation system may also use microwaves generated by any suitable microwave generation hardware instead of, or in combination with, the laser. Using the lasers of a trapped ion quantum computing device, it is also possible to initialize the state of the qubits of the trapped ions before applying quantum gates to the qubits and to measure the state of the qubits of the trapped ions after applying quantum gates to the qubits.
[0010] A program including quantum operations may be compiled before execution. For example, the source code of the program may be compiled on a classical computing device running a compiler for hybrid or quantum programs. The quantum operations in the program may be compiled into a form that may allow the compiled program to be used on any type of quantum computing device. The quantum operations in the compiled program do not have to be specifically compiled to run on a trapped-ion quantum computing device.
[0011] Quantum operations in the compiled program can be used to generate instructions for controlling a laser and a laser modulation system of a quantum computing device by looking up the quantum operations in a pulse shape library, thereby enabling the quantum operations of the compiled program to be executed on the trapped ion quantum computing device. The pulse shape library can be a database that can contain complete pulse shapes. A complete pulse shape in the pulse shape library can correspond to a quantum operation, where the quantum operation includes initialization and measurement operations and an operation for applying a quantum gate to a qubit. The complete pulse shape can specify a laser pulse directed to the trapped ion that performs the operation. Quantum operations from the compiled program can be looked up in the pulse shape library to determine a pulse shape corresponding to each quantum operation. The pulse shapes corresponding to the quantum operations can be used to generate pulse instructions that can cause a laser modulation system of the trapped ion quantum computing device to generate pulses having those pulse shapes by modulating laser light from a laser of the trapped ion quantum computing device. The pulse shapes from the pulse shape library can be adjusted based on parameters of the quantum computing device to generate the final pulse shapes generated by the laser. The parameters may include, for example, calibration parameters for various components of the quantum computing device, including the laser, laser modulation system, and mirrors, as well as environmental parameters of the quantum computing device. The parameters may be determined, for example, by theoretical derivation or empirical measurement using a measurement device of the quantum computing device, and some parameters may be constant while other parameters may be updated frequently. The pulse instructions may be generated in any suitable form. For example, the pulse instructions may be generated in a human-readable format. The human-readable pulse instructions may include text describing the pulse shape to be generated, including parameters of the pulse shape and the desired timing of the generation of the pulse shape, so that a human can recreate the pulse shape from the human-readable pulse instructions. The pulse shapes may be stored in a pulse shape library in the form of these human-readable pulse instructions.
[0012] Binary format instructions may be generated from the pulse instructions. The binary format instructions may be a series of binary packets that can be used to control a field programmable gate array (FPGA), which may then control a laser and laser modulation system of the quantum computing device. The binary packets may be generated using binary code that may be specific to the FPGA of the quantum computing device. For example, a compiler or converter used to generate the binary format instructions may include binary codes corresponding to each of the pulse shapes in a pulse shape library and binary encodings of parameters and timing for the pulse shapes. Each binary packet generated from the pulse instructions may specify a pulse shape, including parameters and timing for the pulse shape, for one of the pulse shapes specified in the pulse instruction. The binary packets may all be of the same length, containing the same number of bits.
[0013] In some implementations, pulse shapes may be generated using pulse primitives. An interface running on a classical computing device may allow specification of pulse shapes based on pulse primitives. The pulse primitives may include various aspects of the pulse shape, including, for example, amplitude, width, delay on each side of the pulse, timing, pulse type (e.g., box pulse type or curved pulse type), and other suitable parameters. A pulse grammar may be used to specify pulse shapes using various pulse primitives and values assigned to the pulse primitives. This may allow any pulse shape to be directly specified to perform any quantum operation. A pulse grammar may be used to write pulse instructions directly.
[0014] Binary format instructions may be generated from pulse instructions generated using pulse primitives and a pulse grammar. For example, a compiler or converter used to generate the binary format instructions may include binary code corresponding to each of the pulse primitives used in the pulse grammar and the values assigned to the pulse primitives. Each binary packet generated from the pulse instruction may specify a pulse shape, including parameters and timing for the pulse shape, for one of the pulse shapes specified using the pulse primitives and pulse grammar. The binary packets may all be the same length, containing the same number of bits.
[0015] The binary instructions may be used to cause a laser and laser modulation system of the quantum computing device to generate pulse shapes. For example, the binary instructions may be sent from a classical computing device to an FPGA of the quantum computing device via a communications interface. The FPGA may be connected to the laser and laser modulation system of the quantum computing device and communicate with and control the operation of the laser. The FPGA may convert binary packets of binary instructions into instructions for the laser and laser modulation system of the quantum computing device. The FPGA may control the on / off timing and power level of the laser, and may control devices of the laser modulation system, including, for example, acousto-optic modulators, electro-optic modulators, physical optical devices including lenses and mirrors, electronic gates, and any other suitable mechanical or electronic components and subcomponents, operating using microwaves to generate pulses having pulse shapes specified in the binary packets of binary instructions. The pulse shapes may be signals resulting from static or time-dependent modulation of the amplitude, phase, and / or frequency of laser light. This enables the laser and laser modulation system to apply quantum operations, such as program initialization, measurements, and quantum gates, to trapped ions of the quantum computing device. Measurements of the trapped ions made by the laser according to the binary format instructions may be returned to the FPGA, allowing the results of the quantum operation to be returned from the FPGA to a communication interface on the classical computing device. The results of the quantum operation may be returned to, for example, a hybrid program that may still run on the classical computing device, which may perform classical operations on the results of the quantum operation. The results of the quantum operation may be the results of the quantum program and may be stored, displayed, and / or used, for example, on the classical computing device as data input to a classical computing program.
[0016] FIG. 1 illustrates an exemplary system suitable for pulse generation according to embodiments of the disclosed subject matter. Classical computing device 100 may include compiler 110, pulse shape converter 120, binary code compiler 130, communication interface 140, and storage 150. Classical computing device 100 may be any suitable device, such as computer 20 of FIG. 8, for performing classical computations and implementing compiler 110, pulse shape converter 120, binary code compiler 130, communication interface 140, and storage 150. Classical computing device 100 may be a single computing device or may include multiple connected computing devices, such as a laptop, desktop, individual server, server farm, or distributed server system, or may be a virtual computing device or system. Classical computing device 100 may be part of or connected to a computing system and network infrastructure. Compiler 110 may be any suitable combination of hardware and software for compiling program source code, including source code for hybrid and quantum programs. Pulse shape converter 120 may be any suitable combination of hardware and software for converting quantum operations contained in a compiled program into pulse shapes using a pulse shape library 152 stored in storage 150 to generate pulse instructions. Binary code compiler 130 may be any suitable combination of hardware and software for compiling pulse instructions into binary format instructions including binary packets that specify pulse shapes. Communications interface 140 may be any suitable combination of hardware and software for enabling communication between classical computing device 100 and quantum computing device. Storage 150 may be any suitable combination of hardware and software for implementing any suitable combination of volatile and non-volatile storage, e.g., capable of storing pulse shape library 152.
[0017] Compiler 110 may be any suitable combination of hardware and software for compiling a program including a hybrid program and a quantum program. Compiler 110 may be, for example, a compiler or an interpreter, which may operate on the source code of a program written in any suitable programming language and may include quantum operations. The program may be, for example, a hybrid program that includes both classical and quantum operations, or a quantum program that includes only quantum operations. Compiler 110 may generate a compiled program from the source code for the program input to Compiler 110.
[0018] Pulse shape converter 120 may be any suitable combination of hardware and software for converting the quantum operations included in the compiled program into pulse shapes using pulse shape library 152 to generate pulse instructions. Pulse shape converter 120 may, for example, look up the quantum operations included in the compiled program in pulse shape library 152 and determine a suitable pulse shape for implementing the quantum operations using the lasers of the trapped ion quantum computing device. Pulse shape converter 120 may generate pulse instructions including these pulse shapes, along with the timing and other parameters set based on the environmental parameters measured for the quantum computing device. The pulse instructions may be in a human-readable format. Pulse shape converter 120 may operate, for example, as middleware that may be utilized by compiler 110, or as middleware that may be called when the execution of the compiled program reaches a quantum operation during the execution of the compiled program on classical computing device 100.
[0019] The binary code compiler 130 may be any suitable combination of hardware and software for compiling pulse instructions into binary format instructions including binary packets that specify the pulse shape. The binary code compiler 130 may translate or compile the pulse instructions generated by the pulse shape converter 120 into binary format instructions, for example, by generating a binary packet for each pulse shape specified by the pulse instructions. The binary packet may be generated based on a custom binary code used by an FPGA that controls the laser of the quantum computing device.
[0020] The communication interface 140 may be any suitable combination of hardware and software for enabling communication between the classical computing device 100 and the quantum computing device. For example, the communication interface 140 may enable the classical computing device 100 to send data to and receive data from various components of the quantum computing device. The data sent to the quantum computing device may include, for example, instructions sent to the hardware components of the quantum computing device to control the operation of the quantum computing device, or binary format instructions sent to the FPGA of the quantum computing device. The data received from the quantum computing device may include, for example, measurements of various calibration and environmental parameters of the quantum computing device obtained by a measuring device, the state of the hardware components of the quantum computing device such as the current position of the motor control mirror, an image from the camera of the quantum computing device, and results of quantum operations measured by, for example, the laser of the quantum computing device and executed by the quantum computing device. The communication interface 140 may be used in a hybrid program or a quantum program. The hybrid program may execute the quantum operations of the hybrid program, send binary format instructions to the quantum computing device, and receive the results via the communication interface 140. The quantum program may be directly sent to the quantum computing device via the communication interface 140, and the results may be received by the communication interface 140.
[0021] Storage 150 may be any suitable storage hardware connected to classical computing device 100. For example, storage 150 may be a component of a classical computing device such as a flash memory module or a solid state disk, or may be connected to classical computing device 100 via any suitable wired or wireless connection. Storage 150 may be local storage, i.e., within the environment in which classical computing device 100 operates, or may be operated in part or in whole by a remote service. Storage 150 may store pulse shape library 152. Pulse shape library 152 may include a database of pulse shapes that can be used to implement quantum operations using the lasers of a trapped ion quantum computing device. The pulse shapes may be stored in pulse shape library 152 in any suitable format, including, for example, a human-readable text-based description. The pulse shapes may be complete pulse shapes that can be used without adjustment, or may be associated with parameters whose values can be adjusted to adjust the pulse shapes. The pulse shapes may be associated with the quantum operations (initialization and measurement operations, quantum gates, etc.) implemented by the pulse shapes, such that the quantum operations may be looked up in pulse shape library 152 to retrieve the pulse shapes that implement those quantum operations.
[0022] FIG. 2 shows an exemplary arrangement suitable for pulse generation according to an embodiment of the disclosed subject matter. Program source code may be input to compiler 110. The program source code may be the source code of a hybrid program that includes both classical and quantum operations, or may be the source code of a quantum program that includes only quantum operations. The program source code may be input to compiler 110 in any suitable manner, such as, for example, via an integrated development environment executed on classical computing device 100.
[0023] Compiler 110 may output the compiled program to the pulse shape converter 120. Compiler 110 may compile the program source code in any suitable way. For example, a hybrid program may be written using the syntax for quantum operations that can be compiled by compiler 110 into a single binary executable file together with the code for classical operations. Also, compiler 110 may insert quantum operations into the compiled program without modification so that, for example, when viewed through a hexadecimal viewer, the quantum operations appear as, for example, readable text.
[0024] The pulse shape converter 120 may look up the quantum operations included in the compiled program in the pulse shape library 152. The pulse shape converter 120 may search for a suitable pulse shape for the quantum operations included in the compiled program. Also, the pulse shape converter 120 may receive parameters from the communication interface 140. The parameters may be, for example, environmental parameters measured for the quantum computing device used to execute the quantum operations specified in the program source code, or other parameters such as calibration parameters. The pulse shape converter 120 may combine the parameters with the pulse shapes from the pulse shape library 152 to generate pulse instructions. The pulse instructions may be in any suitable form, such as, for example, a human-readable form. The pulse instructions may include instructions that can specify each of the pulses that can be generated by the lasers of the quantum computing device to execute the quantum operations from the program source code. The pulse instructions may include the timing for the pulses.
[0025] Pulse shape converter 120 may output the pulse instructions to binary code compiler 130. Binary code compiler 130 may generate binary instructions from the pulse instructions. Binary code compiler 130 may generate a binary packet for each pulse instruction included in the pulse instructions. Each binary packet may be binary code that can be used to cause an FPGA of a quantum computing device to control a laser of the quantum computing device to generate pulses with pulse shapes from pulse shape library 152, modified by parameters input to pulse shape converter 120, to execute quantum operations from the program source code. Once generated, the binary instructions may be stored in storage 150 where they can be used by the compiled program, or may be transmitted to communication interface 140 to be transmitted to the quantum computing device for execution.
[0026] 3A shows an exemplary arrangement suitable for pulse generation according to embodiments of the disclosed subject matter. The compiled program 310 produced by the compiler 110 may include quantum operations. The quantum operations may be specified in any suitable manner in the program source code or expressed in any suitable manner in the compiled program. The quantum operations may include specifications of qubits of a quantum computing device to which the quantum operation is applied. The quantum operations may be applied to any number of qubits of the quantum computing device.
[0027] The pulse shape converter 120 may look up quantum operations from the compiled programs 310 in the pulse shape library 152. Each quantum operation may have a corresponding pulse or pulse shape associated with it. For example, quantum operations that operate on a single qubit, such as initialization operations, measurement operations, H-gates, and Pauli gates, may be associated with a pulse shape for a single pulse from a single laser directed at the single qubit. A quantum operation that operates on two qubits, such as a control gate, may be associated with two pulse shapes for laser pulses directed at separate qubits. The pulse shape library 152 may include quantum operations that operate on any number of qubits, including quantum operations that operate on more than two qubits. The laser pulses generated based on the pulse shapes may be sequential or overlap in time.
[0028] Each separate pulse shape from pulse shape library 152 corresponding to a quantum operation in compiled program 310 may be added to pulse instructions 320 in the appropriate order by pulse shape converter 120. For example, a first quantum operation in compiled program 310 may be an initialization instruction for a first quantum bit of a quantum computing device. Pulse shape converter 120 may look up the initialization operation in pulse shape library 152 and retrieve the corresponding pulse shape. This pulse shape may be added as a first instruction in pulse instructions 320 with appropriate parameters, such as a parameter indicating that a pulse for the instruction should be generated by a first laser of the quantum computing device, which can direct a pulse to the first quantum bit. An instruction added to pulse instructions 320 for a subsequent instruction in compiled program 310 to perform an initialization operation on a second quantum bit of the quantum computing device may similarly use the pulse shape for the initialization instruction and a parameter indicating that a pulse for the instruction should be generated by a second laser of the quantum computing device, which can direct a pulse to the second quantum bit.
[0029] The pulse shape converter 120 may add a plurality of instructions to the pulse instruction 320 for a quantum operation that requires a plurality of pulses to implement, such as a quantum operation acting on a plurality of qubits. For example, the compiled program 310 may include a quantum operation for a cX gate that can operate on the first and second qubits of the quantum computing device. The pulse shape converter 120 may add two instructions to the pulse instruction 320: a first instruction of the pulse shape for the component of the cX operation directed to the first qubit using the first laser, and a second instruction of the pulse shape for the component of the cX operation directed to the second qubit using the second laser. Since the instructions of the pulse instruction 310 may include any appropriate timing information, for example, both pulses for the cX operation can be generated at appropriate times relative to each other to implement the cX gate on the first and second qubits of the quantum computing device. The pulse instruction may have a permanent effect on subsequent pulse instructions.
[0030] FIG. 3B shows an exemplary arrangement suitable for pulse generation according to an embodiment of the disclosed subject matter. The pulse instruction 320 may be input to the binary code compiler 130. The binary code compiler 130 may generate a binary format instruction 330 that may include binary packets for each of the instructions of the pulse instruction 320. The binary code compiler 130 may generate the binary packets based on the binary code used by the FPGA of the quantum computing device to which the binary format instruction 330 is transmitted. The binary packets generated from the pulse instruction may include all of the parameters and timing information of the pulse instruction, including the specifications of the laser for which the pulse of the pulse instruction is to be generated.
[0031] FIG. 4 shows an exemplary arrangement suitable for pulse generation according to an embodiment of the disclosed subject matter. Binary format instructions generated by the binary code compiler 130, e.g., binary format instruction 330, may be sent to the communication interface 140. The binary format instructions may be sent directly from the binary code compiler 130 to the communication interface 140 or, for example, stored and then sent when the compiled program is executed on the classical computing device 100. The communication interface 140 may communicate with the quantum computing device 400 in any suitable way, e.g., by way of a wired or wireless network connection and / or by way of a direct connection.
[0032] Communications interface 140 may transmit the binary format instructions to FPGA 410 of quantum computing device 400. Quantum computing device 400 may be, for example, a trapped ion quantum computing device 400 and may include FPGA 410, any suitable number of lasers of any suitable type, such as, for example, laser 421, laser modulation system 422, and ion trap 430 having any suitable number of trapped ions. FPGA 410 may be any suitable FPGA for controlling the operation of laser 421 and laser modulation system 422 and may be in communication with laser 421 and laser modulation system 422. A CPU, application specific integrated circuit (ASIC), programmable logic device (PLD), or other electronic device that may be capable of controlling laser modulation system 422 based on the binary format instructions may be used in place of or in conjunction with FPGA 422. Laser 421 may be any suitable laser capable of generating laser light. The laser modulation system 422 may be any suitable hardware for directing, pulsing, and modulating laser light into laser pulses, including, for example, acousto-optic modulators, electro-optic modulators, physical-optical components, electronic gates, and all associated mechanically or electronically driven subcomponents, and may operate using microwaves. The laser pulses may be directed at the ions in the ion trap 430 directly or via mirrors and other optics. Laser pulses originating from any of the lasers 421 may be directed via the laser modulation system 422 to any of the different ions in the ion trap 430.
[0033] The FPGA 410 may generate laser pulses by controlling the laser 421 to generate laser light according to the binary-form instructions received via the communication interface, and controlling the laser modulation system 422 to direct, pulse, and modulate the laser light. The laser light from the laser can be directed by the laser modulation system 422 towards the ions in the ion trap 430 using the pulse shapes from the pulse shape library 152 encoded in the binary packets of the binary-form instructions in order to implement the quantum operations from the program source code.
[0034] The result of any measurement operation performed on any of the ions captured by any of the lasers 421 may be returned to the FPGA 410. The FPGA 410 may return the result to the communication interface 140 on the classical computing device 100, where it may be used in any suitable way. For example, the result may be passed from the communication interface 140 to a compiled program executed on the classical computing device 100, enabling classical operations to be performed using the results of the quantum operations executed on the quantum computing device 400.
[0035] Figure 5 shows an exemplary arrangement suitable for pulse generation according to an embodiment of the disclosed subject matter. In some implementations, the pulse shape may be generated using pulse primitives. A pulse primitive-based specified pulse shape may be enabled by a pulse primitive interface 510 executed on a classical computing device 100. The pulse primitive interface 510 may be, for example, part of an integrated development environment. The pulse primitive may include various aspects of the pulse shape including, for example, amplitude, width, delay on each side of the pulse, timing, pulse type (e.g., box pulse type or curve pulse type), and other suitable parameters. Pulse grammar may be used to specify various pulse primitives, assign values to the specified pulse primitives, and create a pulse shape. Thereby, in some cases, any pulse shape may be directly specified to implement any quantum operation. The pulse primitive interface 510 may be used to write pulse instructions for quantum operations using pulse grammar. Pulse instructions written using pulse grammar may be modified by parameters received from the communication interface 140.
[0036] Pulse instructions written in pulse grammar using pulse primitives may be input from the pulse primitive interface 510 to a binary code compiler 130. The binary code compiler 130 may generate binary format instructions for the FPGA 410 from the pulse instructions.
[0037] In some implementations, pulse instructions of a pulse shape written to the pulse primitive interface 510 using pulse primitives and pulse grammar may be added to a pulse shape library 152. For example, a user may specify a quantum operation corresponding to a pulse instruction of a pulse shape written using pulse primitives. The pulse instruction of that pulse shape may be added to the pulse shape library 152 along with the corresponding quantum operation. Thereby, pulse instructions written using pulse primitives may be made available for use in the pulse shape converter 120.
[0038] FIG. 6 illustrates an exemplary procedure suitable for pulse generation according to embodiments of the disclosed subject matter. At 600, program source code may be received. For example, the program source code may be received on the classical computing device 100 from another computing device or may be created using a user interface of the classical computing device 100, such as the user interface of an integrated development environment. The program source code may be a hybrid program including both classical and quantum operations or a program including only quantum operations. The program source code may be written in any suitable language or languages. For example, a hybrid program may be written in a classical programming language with a syntax extended for quantum operations or may be written using both a classical programming language and a quantum programming language.
[0039] At 602, the program source code may be compiled. For example, the program source code may be input to a compiler 110 on the classical computing device 100. The compiler 110 may be any type of suitable compiler, interpreter, or translator for compiling the program source code into a form executable on the classical computing device 100, if the program is a hybrid program, or for compiling a quantum program. The compiler 110 may generate a compiled program 310 from the program source code, which may include any quantum operations. The quantum operations may be specified in the compiled program 310 in any suitable manner, such as, for example, as text that appears in a hexadecimal view of a binary executable file.
[0040] At 604, pulse instructions may be generated from a compiled program. For example, a compiled program generated from program source code by compiler 110, e.g., compiled program 310, may be input to pulse shape converter 120. Pulse shape converter 120 may look up a quantum operation included in compiled program 310 in pulse shape library 152 to determine a pulse shape corresponding to the quantum operation. The pulse shape converter may generate pulse instructions, such as pulse instruction 320, using the pulse shape looked up in the pulse shape library. Pulse shape converter 120 may modify the pulse shape from pulse shape library 152 based on parameters received from communication interface 140. The parameters may be, for example, environmental and calibration parameters of a quantum computing device, such as quantum computing device 400. Pulse instructions 320 may be in any suitable format, including a human-readable format, and may include any suitable parameter and timing information along with the pulse shape to implement the quantum operation from compiled program 310.
[0041] At 606, binary format instructions may be generated from the pulse instructions. For example, pulse instructions, such as pulse instructions 320, generated by pulse shape converter 120 may be input to binary code compiler 130. Binary code compiler 130 may generate binary format instructions, such as binary format instructions 330. Binary format instructions 330 may include a binary packet for each instruction of pulse instructions 320. The binary packet may use binary code for FPGA 410 of quantum computing device 400 to encode instructions from pulse instructions 320, including pulse shape, parameters, and timing, in a format understandable by FPGA 410. The binary format instructions may be implemented by FPGA 410 to control lasers, such as laser 421, and laser modulation system 422 of quantum computing device 400 to implement quantum operations specified in the program source code used to generate compiled program 310, pulse instructions 320, and binary format instructions 330.
[0042] Figure 7 shows an exemplary procedure suitable for pulse generation according to an embodiment of the disclosed subject matter. At 700, a quantum operation may be retrieved from the compiled program. For example, the pulse shape transformer 120 may retrieve the quantum operation included in the compiled program 310. The quantum operation may be specified within the compiled program 310 in any suitable format such that it can be identified as a separate quantum operation from the classical operations within the compiled program 310.
[0043] At 702, the quantum operation may be looked up in a pulse shape library. For example, the pulse shape transformer 120 may retrieve from the compiled program 310 a quantum operation that applies a cX gate to the first and second qubits of the quantum computing device 400. The pulse shape transformer 120 may look up the cX - gate quantum operation in the pulse shape library 152 to determine whether a pulse shape for the quantum operation exists within the pulse shape library 152.
[0044] At 704, a pulse shape for the quantum operation may be searched for. For example, the pulse shape transformer 120 may have located the cX gate quantum operation in the pulse shape library 152 and may search for the pulse shape corresponding to the cX gate quantum operation. The quantum operation may have any number of corresponding pulse shapes within the pulse shape library 152. The pulse shape transformer 152 may search for all pulse shapes corresponding to the looked - up quantum operation.
[0045] At 706, a pulse command may be generated from a pulse shape and parameters. For example, the pulse shape converter 120 may generate the command of the pulse command 320. The pulse command may be, for example, a value indicating the laser of the quantum computing device 400 used to generate the laser light for the pulse shape, a value indicating the devices and components of the laser modulation system 422 used to generate a laser pulse of an appropriate pulse shape from the laser light, a value including parameters related to the operation of the components and devices, and a value for adjusting the pulse shape based on the parameters of the quantum computing device 400, etc., and may be generated by inputting any appropriate value related to the pulse shape.
[0046] Embodiments of the presently disclosed subject matter may be implemented in and used with various components and network architectures. FIG. 8 is an exemplary computer system 20 suitable for implementing embodiments of the presently disclosed subject matter. The computer 20 includes a bus 21 that interconnects the main components of the computer 20, such as one or more processors 24, a memory 27 such as RAM, ROM, flash RAM, an input / output controller 28, and a fixed storage 23 such as a hard drive, flash storage, a SAN device, etc. It will be understood that other components, such as a user display such as a display screen via a display adapter, a user input interface such as a controller, related user input devices such as a keyboard, a mouse, a touch screen, etc., and other components well known in the art used in or in combination with a general-purpose computing system may or may not be included.
[0047] The bus 21 enables data communication between the central processor 24 and the memory 27. The RAM is generally the main memory where the operating system and application programs are loaded. The ROM or flash memory can include, among other codes, a basic input / output system (BIOS) that controls basic hardware operations such as the interaction with peripheral components. Applications resident on the computer 20 are generally stored on and accessed via computer-readable media such as the fixed storage 23 and / or the memory 27, optical drives, external storage mechanisms, etc.
[0048] Each of the components shown may be integral with the computer 20 or separate and accessed via other interfaces. Other interfaces such as the network interface 29 may provide connections to remote systems and devices via, for example, a telephone link, a wired or wireless local or wide area network connection, a proprietary network connection, etc. For example, the network interface 29 enables the computer to communicate with other computers via one or more local, wide area, or other networks as shown in FIG. 9.
[0049] Many other devices or components (not shown), such as a document scanner, digital camera, auxiliary, supplemental, or backup systems, etc., can be connected in a similar manner. Conversely, not all of the components shown in FIG. 8 need to be present to practice the present disclosure. The components may be interconnected in a manner different from that shown. The operation of a computer as shown in FIG. 8 is well known in the art and will not be discussed in detail in this application. The code for practicing the present disclosure can be stored on a computer-readable storage medium such as one or more of the memory 27, fixed storage 23, remote storage locations, or any other storage mechanism known in the art.
[0050] Figure 9 shows an exemplary arrangement according to one embodiment of the disclosed subject matter. One or more clients 10, 11, such as a local computer, smartphone, tablet computing device, remote service, etc., may be connected to other devices via one or more networks 7. The network may be a local network, wide area network, Internet, or any other suitable single communication network or multiple communication networks, and may be implemented on any suitable platform including a wired network and / or a wireless network. The clients 10, 11 may communicate with one or more computer systems such as a processing unit 14, a database 15, and a user interface system 13. In some cases, the clients 10, 11 may communicate with a user interface system 13 that can provide access to one or more other systems such as the database 15, the processing unit 14, etc. For example, the user interface 13 may be a user-accessible web page that provides data from one or more other computer systems. The user interface 13 may provide different interfaces to different clients, such as when a human-readable web page is provided to the web browser client 10 and a computer-readable API or other interface is provided to the remote service client 11. The user interface 13, the database 15, and the processing unit 14 may be part of an integrated system or may include multiple computer systems that communicate via a private network, the Internet, or any other suitable network. The processing unit 14 may be part of a distributed system such as, for example, a cloud-based computing system, a search engine, a content delivery system, etc., which may also include or be able to communicate with the database 15 and / or the user interface 13. In some arrangements, the analysis system 5 may provide backend processing such that data stored or retrieved is preprocessed by the analysis system 5 before being distributed to the processing unit 14, the database 15, and / or the user interface 13.For example, the machine learning system 5 may provide various predictive models, data analytics, etc. to one or more other systems 13, 14, 15.
[0051] The foregoing description has been set forth with reference to specific embodiments for purposes of explanation. However, the exemplary discussion above is not intended to be exhaustive or to limit the embodiments of the disclosed subject matter to the precise forms disclosed. Many modifications and variations are possible in light of the above teachings. The embodiments have been chosen and described in order to explain the principles of the embodiments of the disclosed subject matter and their practical application, so that others skilled in the art may utilize these embodiments, and various modifications thereof, as may be suitable for the particular use contemplated.
Claims
Claims 1 A computer-implemented method executed by a data processing apparatus, comprising: receiving, by a classical computing device, program source code including one or more quantum operations; compiling the program source code into a compiled program including the one or more quantum operations; determining, for each of the one or more quantum operations, one or more pulse shapes indicated by a pulse shape library; generating a pulse instruction based on the correspondence between the one or more pulse shapes indicated by the pulse shape library and each of the one or more quantum operations; wherein the pulse shape library includes a list of quantum operations and pulse shapes corresponding to the quantum operations, and the pulse shapes are complete pulse shapes for implementing the quantum operations when generated by a laser and directed at trapped ions. Claims 2. The step of determining, for each of the one or more quantum operations, one or more pulse shapes indicated by a pulse shape library includes: searching for one of the one or more quantum operations from the compiled program; looking up the one of the one or more quantum operations in the pulse shape library; searching the pulse shape library for one or more pulse shapes corresponding to the quantum operation. The method according to claim 1, further comprising the steps described above. Claims 3 The step of generating a pulse instruction based on the correspondence between the one or more pulse shapes indicated by the pulse shape library and each of the one or more quantum operations further includes combining the one or more pulse shapes with one or more parameters and one or more values of a quantum computing device, wherein at least one of the one or more values indicates a component of a laser modulation system of the quantum computing device. The method according to claim 1. Claims 4 Generating a binary format instruction based on the pulse instruction, wherein the binary format instruction encodes the pulse instruction in a binary packet using the binary code of a field programmable gate array (FPGA) of a quantum computing device. The method according to claim 1, further comprising the steps described above. Claims 5 A step of transmitting the binary-form instruction to the FPGA of the quantum computing device, wherein the quantum computing device includes one or more lasers and a laser modulation system controlled by the FPGA, and laser light from the laser is converted into laser pulses by the laser modulation system based on the binary-form instruction and directed to one or more trapped ions, the step The method according to claim 4, further comprising
6. The method according to claim 1, wherein the program source code includes classical operations and quantum operations
7. A step of receiving parameters of a quantum computing device via a communication interface on the classical computing device The method according to claim 1, further comprising
8. A computer-implemented system, comprising A classical computing device that receives program source code including one or more quantum operations, compiles the program source code into a compiled program including the one or more quantum operations, determines one or more pulse shapes indicated by a pulse shape library corresponding to each of the one or more quantum operations, and generates a pulse instruction based on the fact that the one or more pulse shapes correspond to each of the one or more quantum operations, and generates a binary-form instruction based on the pulse instruction A quantum computing device comprising one or more lasers that generate laser light, a laser modulation system that directs the laser light to one or more trapped ions, and an FPGA that controls the one or more lasers and the laser modulation system based on the binary-form instruction received from the classical computing device A system comprising
9. The classical computing device determines, for each of the one or more quantum operations, one or more pulse shapes indicated by a pulse shape library by searching for one of the one or more quantum operations from the compiled program looking up the one of the one or more quantum operations in the pulse shape library The system according to claim 8, wherein the one or more pulse shapes corresponding to the quantum operation are determined by searching from the pulse shape library
10. The classical computing device generates a pulse instruction by combining the one or more pulse shapes indicated by the pulse shape library with one or more parameters and one or more values of the quantum computing device, based on the correspondence between the one or more pulse shapes indicated by the pulse shape library and each of the one or more quantum operations, wherein at least one of the one or more values indicates a component of the laser modulation system of the quantum computing device. The system according to claim 8.
11. The binary format instruction encodes the pulse instruction in a binary packet using the binary code of the FPGA of the quantum computing device. The system according to claim 8.
12. The classical computing device further transmits the binary format instruction to the FPGA of the quantum computing device. The system according to claim 11.
13. The program source code includes classical operations and quantum operations. The system according to claim 12.
14. The pulse shape library includes a list of quantum operations and pulse shapes corresponding to the quantum operations, and the pulse shape is a complete pulse shape for implementing the quantum operation when laser light generated by a laser is modulated into the pulse shape and directed towards trapped ions. The system according to claim 8.
15. The classical computing device further receives the parameters of the quantum computing device via a communication interface on the classical computing device. The system according to claim 8.
16. A system comprising one or more computers and one or more storage devices storing operable instructions, wherein the instructions, when executed by the one or more computers, cause the one or more computers to receive, in a classical computing device, program source code including one or more quantum operations; compile the program source code into a compiled program including the one or more quantum operations; determine one or more pulse shapes indicated by a pulse shape library corresponding to each of the one or more quantum operations; generate a pulse instruction based on the correspondence between the one or more pulse shapes indicated by the pulse shape library and each of the one or more quantum operations; perform operations including The pulse shape library includes a list of quantum operations and pulse shapes corresponding to the quantum operations. The pulse shape is a complete pulse shape that implements the quantum operation when generated by a laser and directed at trapped ions, system.
17. When executed by the one or more computers, the instructions operable to cause the one or more computers to perform an operation including determining one or more pulse shapes indicated by a pulse shape library corresponding to each of the one or more quantum operations, when executed by the one or more computers, cause the one or more computers to, search for one of the one or more quantum operations from the compiled program; look up the one of the one or more quantum operations in the pulse shape library; search for one or more pulse shapes corresponding to the quantum operation from the pulse shape library; The system according to claim 16, further comprising the instructions operable to cause the operation including the above.
18. When executed by the one or more computers, the instructions operable to cause the one or more computers to perform an operation including generating a pulse instruction based on the one or more pulse shapes indicated by the pulse shape library corresponding to each of the one or more quantum operations, when executed by the one or more computers, cause the one or more computers to combine the one or more pulse shapes with one or more parameters and one or more values of a quantum computing device, wherein at least one of the one or more values indicates a component of a laser modulation system of the quantum computing device, step The system according to claim 16, further comprising the instructions operable to cause the operation including the above.
19. When executed by the one or more computers, the instructions operable to cause the one or more computers to perform an operation including generating a binary format instruction based on the pulse instruction, wherein the binary format instruction encodes the pulse instruction in a binary packet using the binary code of a field programmable gate array (FPGA) of a quantum computing device, step, further comprising the instructions operable to cause the operation including the above. The system according to claim 16.
Citation Information
Patent Citations
Quantum controller with modular and dynamic pulse generation and routing
US10333503B1
Verified compilation of reversible circuits
US20170147303A1
Parallel multi-qubit operations on a universal ion trap quantum computer
US20190378033A1