Pulse generation

By generating pulse instructions through a compiler and using an FPGA to control the laser and modulation system, the problem of laser pulse control and measurement in trapped ion quantum computers has been solved, thus improving the efficiency of quantum computing operations.

CN115335833BActive Publication Date: 2025-11-07IONQ INC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202180024100.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-03-24
Filing Date
2021-03-24
Publication Date
2025-11-07
Estimated Expiration
2041-03-24

AI Technical Summary

Technical Problem

Existing technologies struggle to effectively control and measure laser pulses in trapped-ion quantum computers, resulting in low efficiency in quantum computing operations.

Method used

Pulse instructions are generated by compiling program source code, and then encoded into binary data packets using a field-programmable gate array (FPGA). This enables the control of a laser and laser modulation system to produce appropriate laser pulses, thereby achieving quantum manipulation.

Benefits of technology

This improves the control precision and measurement accuracy of laser pulses in trapped ion quantum computers, thereby enhancing the execution efficiency of quantum computing operations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115335833B_ABST
    Figure CN115335833B_ABST
Patent Text Reader

Abstract

Systems and techniques for pulse generation are provided. A classical computing device can receive program source code including quantum operations. The program source code can be compiled into a compiled program including one or more quantum operations. A library of pulse shapes can be determined to indicate a pulse shape corresponding to each quantum operation. Pulse instructions can be generated based on the library of pulse shapes to indicate one or more pulse shapes corresponding to each quantum operation. Binary format instructions can be generated based on the pulse instructions. The binary format instructions can encode the pulse instructions into binary packets using binary code of a field programmable gate array (FPGA) of a quantum computing device.
Need to check novelty before this filing date? Find Prior Art

Description

BACKGROUND

[0001] Trapped-ion quantum computers can be operated using lasers and / or microwaves. The lasers and / or microwaves can be used to control and measure the state of the trapped ions and perform quantum computing operations. Lasers directed at the trapped ions can need to be pulsed or modulated in specific patterns to perform different quantum computing operations. Programs written to run on a trapped-ion quantum computer can need to include instructions for operating a laser modulation system in order to produce the appropriate pulses to implement the quantum computing operations in the program. SUMMARY

[0002] According to embodiments of the disclosed subject matter, a classical computing device can receive program source code including quantum operations. The program source code can be compiled into a compiled program including one or more quantum operations. A library of pulse shapes can be determined to indicate a pulse shape corresponding to each quantum operation. Pulse instructions can be generated based on the library of pulse shapes to indicate one or more pulse shapes corresponding to each quantum operation. Binary format instructions can be generated based on the pulse instructions. The binary format instructions can encode the pulse instructions into binary packets using binary code of a field programmable gate array (FPGA) of a quantum computing device.

[0003] The systems and techniques disclosed herein can allow for the generation of pulses. Additional features, advantages, and embodiments of the disclosed subject matter can be set forth or apparent from consideration of the following detailed description, drawings, and claims. Moreover, it should be appreciated that the foregoing summary and the following detailed description are examples only and are intended to provide further explanation without limiting the scope of the claims. BRIEF DESCRIPTION OF DRAWINGS

[0004] The accompanying drawings, 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 principles of embodiments of the disclosed subject matter. No attempt is made to show structural details in more detail than can be necessary for a fundamental understanding of the disclosed subject matter and the various ways in which it can be practiced.

[0005] Figure 1 An example system suitable for pulse generation according to embodiments of the disclosed subject matter is shown.

[0006] Figure 2 An example arrangement suitable for pulse generation according to embodiments of the disclosed subject matter is shown.

[0007] Figure 3A An example arrangement suitable for pulse generation according to embodiments of the disclosed subject matter is shown.

[0008] Figure 3BAn example arrangement suitable for pulse generation is shown in accordance with an embodiment of the disclosed subject matter.

[0009] Figure 4 An example arrangement suitable for pulse generation is shown in accordance with an embodiment of the disclosed subject matter.

[0010] Figure 5 An example arrangement suitable for pulse generation is shown in accordance with an embodiment of the disclosed subject matter.

[0011] Figure 6 An example process suitable for pulse generation is shown in accordance with an embodiment of the disclosed subject matter.

[0012] Figure 7 An example process suitable for pulse generation is shown in accordance with an embodiment of the disclosed subject matter.

[0013] Figure 8 A computer is shown in accordance with an embodiment of the disclosed subject matter.

[0014] Figure 9 A network configuration is shown in accordance with an embodiment of the disclosed subject matter. DETAILED DESCRIPTION

[0015] In accordance with embodiments disclosed herein, pulse generation can be used to generate instructions to control a laser and a laser modulation system to perform quantum operations. The laser and the laser modulation system can be components of, for example, a trapped ion quantum computing device. The program can include quantum operations used in quantum computing. The program can be a hybrid program that includes classical operations and quantum operations, or can include only quantum operations. The quantum operations in the program can be looked up in a library of pulse shapes. An appropriate pulse shape can be selected from the library that causes the laser and the laser modulation system of the quantum computing device to perform the quantum operations. The pulse shape selected from the library of pulse shapes can have parameters that can be set based on calibration and environmental parameters of the quantum computing device and its components. The selected pulse shape and its parameters can be used to generate instructions that can be used to control the laser modulation system of the quantum computing device to perform the quantum operations in the program by using laser light produced by the laser of the quantum computing device to direct laser pulses to the trapped ions. In some embodiments, a set of pulse primitives can be used to generate instructions for controlling the laser of the quantum computing device.

[0016] A program intended to run a quantum computing device, such as a trapped ion quantum computing device, can include quantum operations. The program can be a quantum program that uses only quantum operations, or a hybrid program that uses both classical operations and quantum operations. For example, the program can be a hybrid program that can be executed on a classical computing device that can communicate with a quantum computing device through any suitable communication interface. When the hybrid program is executed, the classical operations can be executed on the classical computing device, the quantum operations can be sent to the quantum computing device, and the quantum computing device can return the results of the quantum operations to the classical program through the communication interface. A quantum program can be sent directly through the communication interface with the classical computing device to be executed on the quantum computing device, and the results of the quantum operations can be returned to the portion of the program running on the classical computing device. The program can be written in any suitable language.

[0017] The quantum operations of the program can be specified in any suitable manner, including, for example, using a quantum computing language or quantum computing syntax or extensions of a classical programming language. The quantum operations of the program can include initialization and measurement operations as well as operations specified using quantum gates that can also be used to form a quantum circuit. A quantum gate can specify a qubit of a quantum computing device to which the quantum gate is to be applied. In a trapped ion quantum computing device, each trapped ion can store the state of a single qubit, and a quantum gate can be applied to a qubit by a laser of the quantum computing device applying a laser pulse to the trapped ion, such as to entangle the ions, to implement a quantum gate that operates on more than one qubit. The laser can be directed to a component of a laser modulation system. The laser can be pulsed using the laser modulation system to produce a laser pulse. The laser pulse can be produced by pulsing, shaping, and modulating the laser produced by the laser of the laser modulation system, and can be used to affect both classical and quantum operations of the trapped ions. The laser modulation system can include any suitable hardware devices and components, including, for example, an acousto-optic modulator, an electro-optic modulator, physical optical components, electronic gating, and all related mechanical or electronic driving subcomponents. The laser modulation system can also use microwaves produced by any suitable microwave producing hardware instead of or in combination with the laser. The laser of the trapped ion quantum computing device can also be used to initialize the state of a qubit of a trapped ion before a quantum gate is applied to the qubit and to measure the state of a qubit of a trapped ion after a quantum gate is applied to the qubit.

[0018] The program including the quantum operations can be compiled before execution. For example, the source code of the program can be compiled on a classical computing device running a compiler of the hybrid or quantum program. The quantum operations in the program can be compiled into a format that can allow the compiled program to be used with any type of quantum computing device. The quantum operations in the program can not be specifically compiled to run on a trapped ion quantum computing device.

[0019] The quantum operations in the compiler can be used to generate instructions to control the lasers and laser modulation system of the quantum computing device by looking up the quantum operations in a library of pulse shapes. This can allow the quantum operations of the compiler to be performed on a trapped ion quantum computing device. The library of pulse shapes can be a database that can include complete pulse shapes. The complete pulse shapes in the library of pulse shapes can correspond to quantum operations, including initialization and measurement operations and operations to apply quantum gates to qubits. The complete pulse shapes can specify laser pulses directed at trapped ions that implement the operations. The quantum operations in the compiler can be looked up in the library of pulse shapes to determine the pulse shape corresponding to each quantum operation. The pulse shape corresponding to the quantum operation can be used to generate pulse instructions that can enable the laser modulation system of the trapped ion quantum computing device to produce pulses having these pulse shapes by modulating laser light from the lasers of the trapped ion quantum computing device. The pulse shapes from the library of pulse shapes can be adjusted based on parameters of the quantum computing device to produce the final pulse shapes to be produced by the lasers. The parameters can include, for example, calibration parameters for various components of the quantum computing device including the lasers, the laser modulation system, and the mirrors, and environmental parameters of the quantum computing device. The parameters can be determined by theoretical derivation or empirical measurement, for example, by a measurement device of the quantum computing device, and some parameters can be constant while others can be frequently updated. The pulse instructions can be generated in any suitable form. For example, the pulse instructions can be generated in a human-readable format. The human-readable pulse instructions can include text describing the pulse shapes to be produced, including the parameters of the pulse shapes and the desired timing to produce the pulse shapes, such that a human can be able to recreate the pulse shapes from the human-readable pulse instructions. The pulse shapes can be stored in the library of pulse shapes in the form of these human-readable pulse instructions.

[0020] Binary format instructions can be generated from the pulse instructions. The binary format instructions can be a set of binary data packets that can be used to control a field programmable gate array (FPGA), which in turn can control the lasers and laser modulation system of the quantum computing device. The binary data packets can be generated using binary code that can be specific to the FPGA of the quantum computing device. For example, a compiler or translator used to generate the binary format instructions can include binary code corresponding to each pulse shape in the library of pulse shapes and binary encoding of the parameters and timing for the pulse shapes. Each binary data packet generated from the pulse instructions can specify a pulse shape, including the parameters and timing of the pulse shape, for one of the pulse shapes specified in the pulse instructions. The binary data packets can all have the same length, including the same number of bits.

[0021] In some embodiments, pulse primitives can be used to produce pulse shapes. An interface running on a classical computing device can allow pulse shapes to be specified based on pulse primitives. Pulse primitives can include various aspects of a pulse shape, including, for example, amplitude, width, delay on each side of the pulse, timing, pulse type, such as a box pulse type or a curved pulse type, and other suitable parameters. A pulse syntax can be used to specify a pulse shape using various pulse primitives and values assigned to the pulse primitives. This can allow any pulse shape to be directly specified to implement any quantum operation. The pulse syntax can be used to directly write pulse instructions.

[0022] Instructions in binary format can be produced from pulse instructions produced using pulse primitives and a pulse syntax. For example, a compiler or translator used to produce instructions in binary format can include binary code corresponding to each pulse primitive used in the pulse syntax and values assigned to the pulse primitives. Each binary packet produced from a pulse instruction can specify a pulse shape, including parameters and timing of a pulse shape of one of the pulse shapes specified using pulse primitives and a pulse syntax. The binary packets can all have the same length, including the same number of bits.

[0023] Binary format instructions can be used to cause a laser and laser modulation system of a quantum computing device to produce a pulse shape. For example, binary format instructions can be sent from a classical computing device to an FPGA of a quantum computing device over a communication interface. The FPGA can be connected to a laser and laser modulation system of the quantum computing device and can communicate with and control operation of the laser. The FPGA can translate binary data packets of the binary format instructions into instructions for the laser and laser modulation system of the quantum computing device. The FPGA can control when the laser turns on and off, as well as a power level of the laser, and can control devices of the laser modulation system, including, for example, acousto-optic modulators, electro-optic modulators, physical optics including lenses and mirrors, electronic gating, and any other suitable mechanical or electronic components and subcomponents, and can operate using microwaves to produce a pulse with a pulse shape specified in the binary data packets of the binary format instructions. The pulse shape can be a signal produced by static or time-dependent modulation of an amplitude, phase, and / or frequency of the laser. This can cause the laser and laser modulation system to apply quantum operations (e.g., initialization, measurement, and quantum gates) of a program to trapped ions of the quantum computing device. Measurements of the trapped ions by the laser according to the binary format instructions can be returned to the FPGA, allowing results of the quantum operations to be returned from the FPGA to the communication interface on the classical computing device. For example, results of the quantum operations can be returned to a hybrid program that can still be executing on the classical computing device, which can perform classical operations on the results of the quantum operations. The results of the quantum operations can be results of the quantum program and can be stored, displayed, and / or used as data input for a classical computing program, for example, on the classical computing device.

[0024] Figure 1 An example system suitable for pulse generation is shown in accordance with an embodiment of the disclosed subject matter. A classical computing device 100 can include a compiler 110, a pulse shape translator 120, a binary code compiler 130, a communication interface 140, and a memory 150. The classical computing device 100 can be any suitable device, for example, Figure 8The computer 20 described in the middle is used to perform classical computing and implement the compiler 110, the pulse shape translator 120, the binary code compiler 130, the communication interface 140, and the memory 150. The classical computing device 100 can be a single computing device, or can include multiple connected computing devices, and can be, for example, a laptop, a desktop, a standalone server, a server farm or distributed server system, or can be a virtual computing device or system. The classical computing device 100 can be part of a computing system and network infrastructure, or can otherwise be connected to a computing system and network infrastructure. The compiler 110 can be any suitable combination of hardware and software for compiling source code of programs, including hybrid programs and quantum programs. The pulse shape translator 120 can be any suitable combination of hardware and software for translating quantum operations included in a compiled program into pulse shapes using a library of pulse shapes 152 stored in the memory 150 to produce pulse instructions. The binary code compiler 130 can be any suitable combination of hardware and software for compiling pulse instructions into binary format instructions including binary data packets specifying pulse shapes. The communication interface 140 can be any suitable combination of hardware and software that allows communication between the classical computing device 100 and a quantum computing device. The memory 150 can be any suitable combination of hardware and software for implementing volatile and non-volatile memory that can store, for example, the library of pulse shapes 152.

[0025] The compiler 110 can be any suitable combination of hardware and software for compiling programs including hybrid programs and quantum programs. The compiler 110 can be, for example, a compiler or interpreter that can operate on source code of programs written in any suitable programming language and can include quantum operations. For example, the program can be a hybrid program that can include both classical operations and quantum operations, or can be a quantum program that can include only quantum operations. The compiler 110 can produce a compiled program from source code of a program input to the compiler 110.

[0026] The pulse shape translator 120 can be any suitable combination of hardware and software for translating quantum operations included in a compiled program into pulse shapes using the pulse shape library 152 to produce pulse instructions. For example, the pulse shape translator 120 can look up quantum operations included in a compiled program in the pulse shape library 152 to determine appropriate pulse shapes for implementing the quantum operations using lasers of a trapped-ion quantum computing device. The pulse shape translator 120 can produce pulse instructions that include these pulse shapes as well as timing and other parameters set based on environmental parameters measured for the quantum computing device. The pulse instructions can be in a human-readable format. The pulse shape translator 120 can operate as middleware that can be used by the compiler 110, for example, or can be invoked during execution of a compiled program on the classical computing device 100 as the execution of the compiled program reaches quantum operations.

[0027] The binary code compiler 130 can be any suitable combination of hardware and software for compiling pulse instructions into binary format instructions that include binary data packets specifying pulse shapes. The binary code compiler 130 can translate or compile the pulse instructions produced by the pulse shape translator 120 into binary format instructions, for example, by producing a binary data packet for each pulse shape specified in a pulse instruction. The binary data packets can be produced based on custom binary code used by FPGAs that control lasers of a quantum computing device.

[0028] The communication interface 140 can be any suitable combination of hardware and software that allows for communication between the classical computing device 100 and a quantum computing device. For example, the communication interface 140 can allow the classical computing device 100 to send and receive data to and from various components of a quantum computing device. Data sent to a quantum computing device can include, for example, instructions sent to hardware components of a quantum computing device to control operation of the quantum computing device, including binary format instructions sent to FPGAs of a quantum computing device. Data received from a quantum computing device can include, for example, measurements of various calibration and environmental parameters of a quantum computing device by a measurement device, states of hardware components of a quantum computing device (e.g., current positions of motor-controlled mirrors), images from cameras of a quantum computing device, and results of quantum operations performed by a quantum computing device (e.g., measured by lasers of a quantum computing device). The communication interface 140 can be used by hybrid programs that can send binary format instructions to a quantum computing device to perform quantum operations of the hybrid program and receive results back through the communication interface 140, and quantum programs that can be sent directly to a quantum computing device through the communication interface 140 and results of which can be received by the communication interface 140.

[0029] The memory 150 can be any suitable storage hardware connected to the classical computing device 100. For example, the memory 150 can be a component of the classical computing device, such as a flash memory module or solid state disk, or can be connected to the classical computing device 100 through any suitable wired or wireless connection. The memory 150 can be local memory, i.e. within the environment in which the classical computing device 100 operates, or can be operated in part or in whole by a remote service. The memory 150 can store a library of pulse shapes 152. The library of pulse shapes 152 can include a database of pulse shapes that can be used to implement quantum operations using lasers of a trapped-ion quantum computing device. The pulse shapes can be stored in the library of pulse shapes 152 in any suitable format, including for example human-readable text-based descriptions. The pulse shapes can be complete pulse shapes ready for use without adjustment, but can be associated with parameters whose values can be adjusted to adjust the pulse shape. The pulse shapes can be associated with quantum operations that the pulse shapes implement, such as initialization and measurement operations and quantum gates, so that a quantum operation can be looked up in the library of pulse shapes 152 in order to retrieve the pulse shapes that implement that quantum operation.

[0030] Figure 2 An example arrangement suitable for pulse generation according to an embodiment of the disclosed subject matter is shown. Program source code can be input to the compiler 110. The program source code can be source code of a hybrid program that includes both classical operations and quantum operations, or source code of a quantum program that includes only quantum operations. The program source code can be input to the compiler 110 in any suitable manner, including for example through an integrated development environment running on the classical computing device 100.

[0031] The compiler 110 can output the compiled program to the pulse shape translator 120. The compiler 110 can compile the program source code in any suitable manner. For example, a hybrid program can be written using the syntax of quantum operations, so the compiler 110 can compile it along with the code of the classical operations into a single binary executable file. The compiler 110 can also insert the quantum operations into the compiled program without changing them, for example so that when the compiled program is viewed through a hexadecimal viewer the quantum operations can appear as human-readable text.

[0032] The pulse shape translator 120 can look up the quantum operations included in the compiled program in the pulse shape library 152. The pulse shape translator 120 can retrieve the appropriate pulse shape for the quantum operations included in the compiled program. The pulse shape translator 120 can also receive parameters from the communication interface 140. These parameters can be, for example, environmental parameters and other parameters, such as calibration parameters, that are measured for the quantum computing device that is to be used to perform the quantum operations specified in the program source code. The pulse shape translator 120 can combine the parameters with the pulse shapes from the pulse shape library 152 to produce pulse instructions. The pulse instructions can be in any suitable format, such as a human-readable format. The pulse instructions can include instructions that can specify each pulse that can be produced by the lasers of the quantum computing device to perform the quantum operations from the program source code. The pulse instructions can include the timing of the pulses.

[0033] The pulse shape translator 120 can output the pulse instructions to the binary code compiler 130. The binary code compiler 130 can produce binary format instructions from the pulse instructions. The binary code compiler 130 can produce a binary data packet for each pulse instruction included in the pulse instructions. Each binary data packet can be binary code that can be used to cause the FPGA of the quantum computing device to control the lasers of the quantum computing device to produce the pulses of the pulse shapes from the pulse shape library 152, as modified by the parameters input to the pulse shape translator 120, in order to perform the quantum operations from the program source code. After production, the binary format instructions can be stored in the memory 150, where they can be used, for example, by the compiled program, or can be sent to the communication interface 140 to be sent to the quantum computing device for execution.

[0034] Figure 3A An example arrangement suitable for pulse production according to an embodiment of the disclosed subject matter is shown. The compiled program 310 produced by the compiler 110 can include quantum operations. The quantum operations can be specified in any suitable manner in the program source code and can be represented in any suitable manner in the compiled program. The quantum operations can include a specification of the qubits of the quantum computing device to which the quantum operations are to be applied. The quantum operations can be applied to any number of qubits of the quantum computing device.

[0035] The pulse shape translator 120 can look up the quantum operations from the compiler 310 in a pulse shape library 152. Each quantum operation can have one or more corresponding pulse shapes of pulses associated with it. For example, quantum operations that act on a single qubit (e.g., initialization operations, measurement operations, H gates, and Pauli gates) can be associated with a pulse shape of a single pulse from a single laser for a single qubit. Quantum operations that act on two qubits (e.g., controlled gates) can be associated with two pulse shapes of laser pulses for the discrete qubits. The pulse shape library 152 can include quantum operations that act on any number of qubits, including quantum operations that act on more than two qubits. The laser pulses generated based on the pulse shapes can be continuous, or can overlap in time.

[0036] Each individual pulse shape in the pulse shape library 152 that corresponds to a quantum operation in the compiler 310 can be added to the pulse instructions 320 by the pulse shape translator 120 in the appropriate order. For example, the first quantum operation in the compiler 310 can be an initialization instruction for a first qubit of the quantum computing device. The pulse shape translator 120 can look up the initialization operation in the pulse shape library 152 and retrieve the corresponding pulse shape. This pulse shape can be added as the first instruction in the pulse instructions 320 with appropriate parameters, including, for example, a parameter indicating that the pulse for this instruction should be generated by a first laser of the quantum computing device, which can direct the pulse to the first qubit. The instructions added to the pulse instructions 320 for subsequent instructions in the compiler 310 to perform initialization operations on a second qubit of the quantum computing device can similarly use the pulse shape of the initialization instruction and a parameter indicating that the pulse for this instruction should be generated by a second laser of the quantum computing device, which can direct the pulse to the second qubit.

[0037] The pulse shape translator 120 can add multiple instructions to the pulse instructions 320 for quantum operations that require multiple pulses to implement, such as quantum operations that operate on more than one qubit. For example, the compiler 310 can include a quantum operation for a cX gate, which can operate on a first and second qubit of the quantum computing device. The pulse shape translator 120 can add two instructions to the pulse instructions 320, a first instruction for a pulse shape of a component of the cX operation using a first laser directed to the first qubit, and a second instruction for a pulse shape of a component of the cX operation using a second laser directed to the second qubit. The instructions in the pulse instructions 310 can include any suitable timing information, for example, the two 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 instructions can have a lasting effect on subsequent pulse instructions.

[0038] Figure 3B An example arrangement suitable for pulse generation according to embodiments of the disclosed subject matter is shown. Pulse instructions 320 can be input to binary code compiler 130. Binary code compiler 130 can generate binary format instructions 330, which can include a binary data packet for each of the pulse instructions 320. The binary data packet can be generated by binary code compiler 130 based on the binary format instructions 330 based on the binary code used by the FPGA of the quantum computing device to which the binary format instructions 330 are to be sent. The binary data packet generated by the pulse instructions can include all parameters and timing information from the pulse instructions, including the specifications of the lasers from which the pulses of the pulse instructions should be generated.

[0039] Figure 4 An example arrangement suitable for pulse generation according to embodiments of the disclosed subject matter is shown. Binary format instructions generated by binary code compiler 130, such as binary format instructions 330, can be sent to communication interface 140. The binary format instructions can be sent directly from binary code compiler 130 to communication interface 140, or can be stored and sent later, such as when the compiler program is executing on classical computing device 100. Communication interface 140 can communicate with quantum computing device 400 in any suitable manner, including, for example, through a wired or wireless network connection and / or a direct connection.

[0040] The communication interface 140 can send binary format instructions to the FPGA 410 of the quantum computing device 400. The quantum computing device 400 can be, for example, a trapped ion quantum computing device 400 and can include the FPGA 410 and any suitable number of lasers (e.g., laser 421), laser modulation systems 422, and ion traps 430 with any suitable number of trapped ions. The FPGA 410 can be any suitable FPGA for controlling the operation of the laser 421 and the laser modulation system 422 and can be in communication with the laser 421 and the laser modulation system 422. A CPU, an application specific integrated circuit (ASIC), a programmable logic device (PLD), or other electronic device capable of controlling the laser modulation system 422 based on binary format instructions can be used instead of or in conjunction with the FPGA 422. The laser 421 can be any suitable laser capable of producing laser light. The laser modulation system 422 can be any suitable hardware for directing, pulsing, and modulating laser light into laser pulses, including, for example, an acousto-optic modulator, an electro-optic modulator, physical optical components, electronic gating, and all related mechanical or electronic drive subcomponents, and can operate using microwaves. Laser pulses from any laser 421 can be directed to any different ion in the ion trap 430 by the laser modulation system 422.

[0041] The FPGA 410 can control the laser 421 to produce laser light and control the laser modulation system 422 to direct, pulse, and modulate that laser light according to the binary format instructions received through the communication interface to produce laser pulses. Laser light from the laser can be directed to ions in the ion trap 430 by the laser modulation system 422 using a pulse shape from the pulse shape library 152 encoded in a binary data packet of the binary format instructions to implement quantum operations from the program source code.

[0042] Results of any measurement operations performed on any ions by any laser 421 can be returned to the FPGA 410. The FPGA 410 can return the results to the communication interface 140 on the classical computing device 100, where they can be used in any suitable manner. For example, the results can be passed from the communication interface 140 to the compiled program executing on the classical computing device 100, allowing classical operations to be performed using the results of the quantum operations performed on the quantum computing device 400.

[0043] Figure 5An example arrangement suitable for pulse generation according to embodiments of the disclosed subject matter is shown. In some embodiments, pulse primitives can be used to generate pulse shapes. A pulse primitive interface 510 running on the classical computing device 100 can allow for specification of pulse shapes based on pulse primitives. For example, the pulse primitive interface 510 can be part of an integrated development environment. The pulse primitives can include various aspects of pulse shapes, 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 syntax can be used to specify various pulse primitives and assign values to the specified pulse primitives to create pulse shapes. This can allow for direct specification of any pulse shape to implement any quantum operation. The pulse primitive interface 510 can be used to write pulse instructions for quantum operations using the pulse syntax. The pulse instructions written using the pulse syntax can be modified by parameters received from the communication interface 140.

[0044] The pulse instructions written using the pulse primitives in the pulse syntax can be input from the pulse primitive interface 510 to the binary code compiler 130. The binary code compiler 130 can produce binary format instructions for the FPGA 410 from the pulse instructions.

[0045] In some embodiments, the pulse instructions for pulse shapes written in the pulse primitive interface 510 using pulse primitives and the pulse syntax can be added to the pulse shape library 152. For example, a user can specify a quantum operation corresponding to the pulse instructions for pulse shapes written using pulse primitives. The pulse instructions for pulse shapes can be added to the pulse shape library 152 along with the corresponding quantum operation. This can allow the pulse instructions written using pulse primitives to be used by the pulse shape translator 120.

[0046] Figure 6 An example process suitable for pulse generation according to embodiments of the disclosed subject matter is shown. At 600, program source code can be received. For example, the program source code can be received on the classical computing device 100 from another computing device, or the program source code can be created using a user interface of the classical computing device 100, such as a user interface of an integrated development environment. The program source code can be a hybrid program containing classical operations and quantum operations, or can contain only quantum operations. The program source code can be written in any suitable language or languages. For example, a hybrid program can be written in a classical programming language with extended syntax for quantum operations, or can be written using both a classical programming language and a quantum programming language.

[0047] At 602, program source code can be compiled. For example, program source code can be input to a compiler 110 on a classical computing device 100. The compiler 110 can be any suitable compiler, interpreter, or translator of any type for compiling program source code into a format that can be executed on the classical computing device 100 if the program is a hybrid program or for compiling a quantum program. The compiler 110 can produce a compiled program 310, which can include any quantum operations from the program source code. The quantum operations can be specified in the compiled program 310 in any suitable manner, including, for example, text presented in a hexadecimal view of a binary executable file.

[0048] At 604, pulse instructions can be produced from the compiled program. For example, the compiled program produced by the compiler 110 from the program source code, such as the compiled program 310, can be input to a pulse shape translator 120. The pulse shape translator 120 can look up the quantum operations included in the compiled program 310 in a pulse shape library 152 to determine pulse shapes corresponding to the quantum operations. The pulse shape translator can use the pulse shapes looked up in the pulse shape library to produce pulse instructions, such as the pulse instructions 320. The pulse shape translator 120 can modify the pulse shapes from the pulse shape library 152 based on parameters received from a communication interface 140. For example, the parameters can be environmental and calibration parameters of a quantum computing device, such as the quantum computing device 400. The pulse instructions 320 can be in any suitable format, including a human-readable format, and can include any suitable parameters and timing information related to the pulse shapes to implement the quantum operations from the compiled program 310.

[0049] At 606, binary format instructions can be produced from the pulse instructions. For example, the pulse instructions produced by the pulse shape translator 120, such as the pulse instructions 320, can be input to a binary code compiler 130. The binary code compiler 130 can produce binary format instructions, such as the binary format instructions 330. The binary format instructions 330 can include binary data packets for each of the instructions in the pulse instructions 320. The binary data packets can encode the instructions from the pulse instructions 320, including the pulse shapes, parameters, and timing, in a format that can be understood by the FPGA 410 for the quantum computing device 400 using binary code for the FPGA 410. The binary format instructions can be implemented by the FPGA 410 to control the lasers (e.g., the lasers 421) and the laser modulation system 422 of the quantum computing device 400 to implement the quantum operations specified in the program source code used to produce the compiled program 310, the pulse instructions 320, and the binary format instructions 330.

[0050] Figure 7An example process suitable for pulse generation according to embodiments of the disclosed subject matter is shown. At 700, quantum operations can be retrieved from a compiler. For example, the pulse shape translator 120 can retrieve quantum operations included in the compiler 310. The quantum operations can be specified in any suitable format in the compiler 310 such that they can be identified as quantum operations separate from classical operations in the compiler 310.

[0051] At 702, the quantum operation can be looked up in a pulse shape library. For example, the pulse shape translator 120 can have retrieved a quantum operation from the compiler 310 that applies a cX-gate to the first and second qubits of the quantum computing device 400. The pulse shape translator 120 can look up the cX-gate quantum operation in the pulse shape library 152 to determine whether a pulse shape for the quantum operation exists in the pulse shape library 152.

[0052] At 704, a pulse shape for the quantum operation can be retrieved. For example, the pulse shape translator 120 can have located the cX-gate quantum operation in the pulse shape library 152 and can retrieve a pulse shape corresponding to the cX-gate quantum operation. The quantum operation can have any number of corresponding pulse shapes in the pulse shape library 152. The pulse shape translator 152 can retrieve all pulse shapes corresponding to the quantum operation that was looked up.

[0053] At 706, a pulse instruction can be generated from the pulse shape and parameters. For example, the pulse shape translator 120 can generate an instruction of the pulse instructions 320. The pulse instruction can be generated by, for example, populating the pulse shape with any suitable values, such as values indicating the lasers of the quantum computing device 400 that will be used to generate the laser to be used for the pulse shape, values indicating the devices and components of the laser modulation system 422 that will be used to generate the appropriate pulse shape from the laser (including parameters for operation of the components and devices), and adjusting the pulse shape based on parameters of the quantum computing device 400.

[0054] Embodiments of the presently disclosed subject matter can be implemented and used in a variety of component and network architectures Figure 8is an example computer system 20 suitable for implementing embodiments of the presently disclosed subject matter. Computer 20 includes a bus 21 that interconnects major components of the computer 20, such as one or more processors 24, memory 27, such as RAM, ROM, flash memory, or the like, input / output controllers 28, and fixed storage 23, such as a hard drive, flash memory, SAN device, or the like. It will be appreciated that other components, such as a user display (e.g., a display screen via a display adapter), user input interfaces (e.g., controllers and related user input devices such as a keyboard, mouse, touchscreen, or the like), and other components known in the art for a general purpose computing system or used in conjunction with a general purpose computing system, can or can not be included.

[0055] Bus 21 permits data communication between the central processor 24 and the memory 27. The RAM is generally the main memory into which operating systems and application programs are loaded and executed. The ROM or flash memory can contain, among other code, the Basic Input-Output system (BIOS) which controls basic hardware operation such as the interaction with peripheral components. Application programs residing in the computer 20 are typically stored on a computer readable medium such as the fixed storage 23 and / or the memory 27, optical drives, external storage mechanisms, or the like.

[0056] Each of the components shown can be integrated with the computer 20 or can be separate and accessed through other interfaces. Other interfaces, such as a network interface 29, can provide connectivity to remote systems and devices via telephone links, wired or wireless local or wide area networks, proprietary networks, or the like. For example, the network interface 29 can allow the computer to communicate with other computers via an Internet, Intranet, Extranet, or the like using Figure 9 illustrated.

[0057] Many other devices or components (not shown) can be connected in a similar manner. Conversely, Figure 8 All of the components shown in FIG. 1 need not be present in every implementation of the present disclosure. The components can be interconnected in different ways or only a subset of the components can be present. The computer can perform one or more operations described herein in response to the processor 24 executing one or more sequences of one or more instructions contained in the memory 27. Such instructions can be read into the memory 27 from other computer-readable storage media. In this manner, the Figure 8 The computer's operation, as illustrated in FIG. 1, is readily known in the art and not discussed in detail in this application. Code implementing the present disclosure can be stored in the memory 27, the fixed storage 23, a remote storage location, or any other storage medium known in the art, one or more of which can be resident in the computer 20.

[0058] Figure 9An example arrangement according to embodiments of the disclosed subject matter is shown. One or more clients 10, 11, such as local computers, smart phones, tablet computing devices, remote services, etc., can connect to other devices via one or more networks 7. The networks can be a local area network, a wide area network, the Internet, or any other suitable network or networks, and can be implemented on any suitable platform including wired and / or wireless networks. The clients 10, 11 can communicate with one or more computer systems, such as processing units 14, databases 15, and user interface systems 13. In some cases, the clients 10, 11 can communicate with the user interface systems 13, which can provide access to one or more other systems, such as databases 15, processing units 14, etc. For example, the user interface 13 can be a user-accessible web page that provides data from one or more other computer systems. The user interface 13 can provide different interfaces to different clients, for example providing a human-readable web page to a web browser client 10, and a computer-readable API or other interface to a remote service client 11. The user interface 13, databases 15, and processing units 14 can be part of an integrated system, or can include multiple computer systems that communicate via a dedicated network, the Internet, or any other suitable network. The processing units 14 can for example be part of a distributed system, such as a cloud-based computing system, a search engine, a content delivery system, etc., which can also include or communicate with databases 15 and / or user interfaces 13. In some arrangements, the analysis system 5 can provide backend processing, such as pre-processing of stored or acquired data by the analysis system 5 before transmission to the processing units 14, databases 15, and / or user interfaces 13. For example, the machine learning system 5 can provide various predictive models, data analysis, etc. to one or more other systems 13, 14, 15.

[0059] For purposes of explanation, the preceding description has been made referencing particular embodiments. The illustrative discussions above, however, are 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 were chosen and described in order to explain the principles of the disclosed subject matter and its practical application and to thereby enable others skilled in the art to best utilize the embodiments together with various modifications as are suited to the particular uses contemplated.

Claims

1. A computer-implemented method performed by a data processing apparatus, the method comprising: receiving, at a classical computing device, program source code comprising one or more quantum operations; compiling the program source code into a compiled program containing the one or more quantum operations; determining a pulse-shape library indicates one or more pulse shapes corresponding to each of the one or more quantum operations, wherein the pulse-shape library comprises a list of quantum operations and pulse shapes corresponding to the quantum operations, the pulse shapes are complete pulse shapes that implement their corresponding quantum operations without adjustment, and wherein each quantum operation in the pulse-shape library corresponds to all pulse shapes that implement its corresponding quantum operation when produced by a laser and directed to a trapped ion, determining the pulse shapes further comprises retrieving a quantum operation of the one or more quantum operations from the compiled program, looking up the quantum operation of the one or more quantum operations in the pulse-shape library; and retrieving one or more pulse shapes corresponding to the quantum operation from the pulse-shape library; generating pulse instructions based on the pulse-shape library indicating the one or more pulse shapes corresponding to each of the one or more quantum operations.

2. The method of claim 1, wherein generating pulse instructions based on the pulse-shape library indicating the one or more pulse shapes corresponding to each of the one or more quantum operations further comprises 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 comprises an indication of a component of a laser modulation system of the quantum computing device.

3. The method of claim 1, further comprising: generating binary format instructions based on the pulse instructions, wherein the binary format instructions encode the pulse instructions as binary data packets using binary code of a field programmable gate array (FPGA) of a quantum computing device.

4. The method of claim 3, further comprising transmitting the binary format instructions to the FPGA of the quantum computing device, wherein the quantum computing device comprises one or more lasers and a laser modulation system controlled by the FPGA, and wherein laser light from the lasers is directed as laser pulses by the laser modulation system to one or more trapped ions based on the binary format instructions.

5. The method of claim 1, wherein the program source code comprises classical operations and quantum operations.

6. The method of claim 1, further comprising receiving parameters of a quantum computing device through a communication interface on the classical computing device.

7. A computer-implemented system comprising: a classical computing device that receives program source code that includes one or more quantum operations, compiles the program source code into a compiled program that includes the one or more quantum operations, determines a pulse-shape library that indicates one or more pulse shapes that correspond to each of the one or more quantum operations by retrieving one of the one or more quantum operations from the compiled program, looking up the one of the one or more quantum operations in a pulse-shape library, and retrieving one or more pulse shapes from the pulse-shape library that correspond to the quantum operation, and generates pulse instructions based on the pulse-shape library indicating the one or more pulse shapes that correspond to each of the one or more quantum operations, wherein the pulse-shape library includes a list of quantum operations and pulse shapes that correspond to the quantum operations that are complete pulse shapes that implement the quantum operations to which they correspond without adjustment, and wherein each quantum operation in the pulse-shape library corresponds to all pulse shapes that implement the quantum operation to which they correspond when produced by a laser and directed to a trapped ion, and a quantum computing device that includes one or more lasers that produce 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 binary format instructions received from the classical computing device.

8. The system of claim 7, wherein the classical computing device generates pulse instructions based on the pulse-shape library indicating the one or more pulse shapes that correspond to each of the one or more quantum operations by combining the one or more pulse shapes with one or more parameters and one or more values of the quantum computing device, wherein at least one of the one or more values includes an indication of a component of the laser modulation system of the quantum computing device.

9. The system of claim 7, wherein the classical computing device further generates the binary format instructions based on the pulse instructions, wherein the binary format instructions encode the pulse instructions as binary data packets using binary code of the FPGA of the quantum computing device.

10. The system of claim 9, wherein the classical computing device further transmits the binary format instructions to the FPGA of the quantum computing device.

11. The system of claim 10, wherein the program source code includes classical operations and quantum operations.

12. The system of claim 7, wherein the classical computing device further receives parameters of the quantum computing device through a communication interface on the classical computing device.

13. A system comprising: one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising: receiving, at a classical computing device, program source code that includes one or more quantum operations; compiling the program source code into a compiled program containing the one or more quantum operations; determining a pulse shape library indicates one or more pulse shapes corresponding to each of the one or more quantum operations, wherein the pulse shape library comprises a list of quantum operations and pulse shapes corresponding to the quantum operations, the pulse shapes being complete pulse shapes that implement their corresponding quantum operations without adjustment, and wherein each quantum operation in the pulse shape library corresponds to all pulse shapes that implement its corresponding quantum operation when produced by a laser and directed to a trapped ion, determining the pulse shapes further comprises retrieving 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, and retrieving one or more pulse shapes corresponding to the quantum operation from the pulse shape library; generating pulse instructions based on the pulse shape library indicating the one or more pulse shapes corresponding to each of the one or more quantum operations.

14. The system of claim 13, wherein the instructions that, when executed by the one or more computers, are operable to cause the one or more computers to perform operations comprising generating pulse instructions based on the pulse shape library indicating the one or more pulse shapes corresponding to each of the one or more quantum operations further comprise instructions that, when executed by one or more computers, are operable to cause the one or more computers to perform operations comprising 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 comprises an indication of a component of a laser modulation system of the quantum computing device.

15. The system of claim 13, further comprising instructions that, when executed by the one or more computers, are operable to cause the one or more computers to perform operations comprising generating binary format instructions based on the pulse instructions, wherein the binary format instructions encode the pulse instructions as binary data packets using binary code of a field programmable gate array (FPGA) of a quantum computing device.

Citation Information

Patent Citations

  • Quantum controller with modular and dynamic pulse generation and routing

    US10333503B1

  • Parallel multi-qubit operations on a universal ion trap quantum computer

    US20190378033A1