Optical calculation method and system, program product and storage medium thereof

By using lookup tables and monitoring modules in the optical computing system to calibrate vector and matrix elements, the problems of individual differences and noise impact of device are solved, and high-precision optical computing calibration is achieved.

CN120371079APending Publication Date: 2025-07-25SHANGHAI XIZHI TECH CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202410097237.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-01-23
Publication Date
2025-07-25

AI Technical Summary

Technical Problem

Due to individual device differences and noise, it is difficult to achieve high-precision global calibration in optical computing systems.

Method used

Multiple modulation modules are used to configure the lookup table for vector and matrix elements calibration. The lookup table maps DAC digital codes to drive the modulator, and combines the monitoring module and the ADC module for optical power monitoring and calibration to build a linear relationship to improve calculation accuracy.

Benefits of technology

Reduces calibration difficulty, improves the accuracy of the computing system, can tolerate device differences, simplifies the calibration process, and avoids the impact of additional calibration links on accuracy.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120371079A_ABST
    Figure CN120371079A_ABST
Patent Text Reader

Abstract

The invention provides an optical computing system, a correction method, a system, a program product and a storage medium thereof. The system comprises a plurality of first modulation modules, each first modulation module is provided with a first lookup table used for vector element calibration, and the first modulation modules are configured to modulate input vector elements into light waves through the first lookup tables to form input light vectors; a plurality of second modulation modules each configured with a second lookup table for matrix element calibration, the second modulation modules configured to perform a multiplication of an input matrix element and the input optical vector in an optical domain using the second lookup tables; a plurality of accumulation and summation modules, each of which is configured to perform an accumulation and summation operation on the outputs of the plurality of second modulation modules; and a plurality of ADC modules respectively configured to convert the output of the summing module into digital signals. The system provided by the invention can overcome the deviation caused by imperfect hardware or external interference and improve the calculation precision.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of optical computing, and more particularly, to an optical computing method, system, program product, and storage medium thereof. Background Art

[0002] Optical computing is a new type of analog computing hardware that needs to be calibrated before actual use to correctly perform calculations. For an optical computing chip, due to device individual differences caused by process problems, it is impossible to achieve global calibration and high-precision calculation based on a single device. In addition, the noise in the computing system also affects the calibration accuracy. This also makes it difficult to achieve high-precision calibration for large-scale optical computing chips.

[0003] How to effectively calibrate an optical computing system has become an urgent problem to be solved in this field. Summary of the Invention

[0004] The purpose of the present invention is to provide an optical computing method, system, program product, and storage medium thereof, which use a new calibration method to calibrate optical computing and improve calculation accuracy.

[0005] On the one hand, an embodiment of the present invention provides an optical computing system, which includes:

[0006] A plurality of first modulation modules, each of the first modulation modules being configured with a first look-up table for vector element calibration, and the first modulation module being configured to modulate the input vector elements into light waves using the first look-up table to form an input optical vector;

[0007] A plurality of second modulation modules, each of the second modulation modules being configured with a second look-up table for matrix element calibration, and the second modulation module being configured to perform a multiplication operation of the input matrix elements and the input optical vector in the optical domain using the second look-up table;

[0008] A plurality of accumulation and summation modules, each of the accumulation and summation modules being configured to perform an accumulation and summation operation on the outputs of the plurality of second modulation modules;

[0009] A plurality of ADC modules, each of the plurality of ADC modules being configured to convert the outputs of the plurality of accumulation and summation modules into digital signals.

[0010] In some embodiments of the present invention, the system further includes:

[0011] An optical input module for receiving an input light wave,

[0012] The first beam splitting device includes an input waveguide, a first output waveguide, and a second output waveguide. The first beam splitting device is configured to split a predetermined proportion α of the light waves in the input light wave and transmit them from the first output waveguide to the first monitoring module, and the first monitoring module obtains the real-time optical power p at time t of the first output waveguide. t .

[0013] In some embodiments of the present invention, each of the first modulation modules has a first DAC and a first modulator.

[0014] The first look-up table records the mapping relationship between the DAC digital codes and the vector element values.

[0015] The first DAC is configured to drive the first modulator according to the obtained DAC digital code to modulate the input vector elements into the light wave to form the input optical vector, wherein the DAC digital code of the mapped input vector elements is obtained by performing the look-up table mapping operation of retrieving the first look-up table.

[0016] Using the obtained DAC digital code to drive the first modulator maintains a linear relationship between the value of the input vector element and the optical power of the formed input optical vector, such that the following formula (1) holds:

[0017] P i = k i × x i + b i (1)

[0018] Wherein, x i represents the value of the i-th vector element, k i represents the linear coefficient of the i-th first modulator and k i × (2 n - 1) corresponds to the optical modulation amplitude of the i-th first modulator, b i represents the value of the optical lowest point of the i-th first modulator, and P i represents the output optical power of the i-th first modulator.

[0019] In some embodiments of the present invention, the optical modulation amplitudes k of different first modulators i are the same or different.

[0020] In some embodiments of the present invention, each of the second modulation modules has a second DAC and a second modulator.

[0021] The second look-up table records the mapping relationship between the DAC digital codes and the matrix element values.

[0022] The second DAC is configured to drive the second modulator according to the obtained DAC digital code to perform the multiplication operation, wherein the DAC digital code for mapping the input matrix elements is obtained by performing a look-up table mapping operation by retrieving the second look-up table, and using the obtained DAC digital code to drive the second modulator makes the results of the same calculation substantially consistent on different second modulators.

[0023] In some embodiments of the present invention, each of the second modulation modules further has:

[0024] A photoelectric conversion unit, which converts the result of the multiplication operation in the form of an optical signal into an electrical output.

[0025] In some embodiments of the present invention, a second monitoring module for monitoring the output optical power of the corresponding modulation module is provided for each of the first modulation modules;

[0026] Each of the first look-up tables is constructed in the following manner:

[0027] Drive the first modulator with each value of the input vector element, and monitor the output optical power P of the first modulator at time t through the monitoring module t , for the output optical power P t Perform normalization using the target input power P ref to make the following formula (2) hold:

[0028] P i =αP t ×P ref / p t (2)

[0029] Obtain an optical power curve composed of a series of discrete data points,

[0030] According to the optical power curve, determine the corresponding ideal transmittance for each value of the input vector between 0 and the maximum value, select the data point closest to the ideal transmittance from the optical power curve, and establish a mapping relationship between the corresponding vector element value and the DAC digital code according to the selected data point,

[0031] Record the mapping relationship in the first look-up table.

[0032] In some embodiments of the present invention, each of the second look-up tables is constructed in the following manner:

[0033] Scan the control signal of the second modulator in the j-th dot product channel, then the ADC output value corresponding to the j-th dot product channel is the first set of data, as shown in the following formula (3):

[0034]

[0035] Among them, I di is the dark current introduced by the optoelectronic conversion in the system, G is the gain of the transimpedance amplifier in the system, F is the transfer function corresponding to the ADC conversion, f i (I1,…I n )×k i corresponds to the i-th matrix element, b i represents the lowest optical power output by the i-th of the first modulators, k i represents the linear coefficient of the i-th first modulator and k i ×(2 n -1) corresponds to the optical modulation amplitude of the i-th first modulator;

[0036] For the j-th dot product channel in the N×N input matrix, the j-th vector element x among the N vector elements j is taken to a fixed value M, and the other vector elements x i≠j are set to 0, and the control signals I1,…I of the second modulators corresponding to the other vector elements n are set to be fixed. The value range of i is from 0 to N-1. By scanning the control signals of the second modulators in the j-th dot product channel, the ADC output value corresponding to the j-th dot product channel is the first set of data adc out1 ;

[0037] All N vector elements are set to 0, that is, x i is 0, and other conditions remain unchanged. By scanning the control signals of the second modulators in the j-th dot product channel, the ADC output value corresponding to the j-th dot product channel is the second set of data adc out2 ;

[0038] Subtract the second set of data from the first set of data to obtain the product of the uncalibrated matrix element and the fixed value M, as shown in the following formula (4):

[0039] adc out1 -adc out2 =F(f j (I1,…I n )×k j ×M) (4)

[0040] Construct an ADC output curve of adc out1 -adc out2 and the DAC digital code composed of a second series of discrete data points;

[0041] On the ADC output curve, set the calibration dynamic range, take the output value within this dynamic range of the product of the values of each matrix element on the i-th second modulator in the j-th dot product channel and M, select the data point closest to the output value from the ADC output curve, establish the mapping relationship between the corresponding matrix element value and the DAC digital code according to the selected data point, and record the mapping relationship in the second look-up table of the i-th second modulator in the j-th dot product channel;

[0042] Repeat the above process to obtain the second look-up tables of other second modulators.

[0043] In some embodiments of the present invention, before subtracting the second set of data from the first set of data, it further includes:

[0044] Perform normalization processing on the first set of data and the second set of data using the target input power P ref to make the following formula (5) hold:

[0045]

[0046] And after subtracting the second set of data from the first set of data,

[0047] Construct an ADC output curve composed of a second series of discrete data points and the DAC digital code.

[0048] In some embodiments of the present invention, the system further includes:

[0049] A post-processing module for post-processing the ADC output value, wherein the post-processing includes scaling the ADC output value by multiplying it by a scaling factor, and the scaling factor is determined according to M, the matrix element, and the upper limit of the dynamic range.

[0050] In some embodiments of the present invention, the post-processing performed by the post-processing module further includes:

[0051] Before or after performing the scaling process, subtract the ADC output value after multiplying the matrix element and the vector element from the ADC output value after multiplying the matrix element and the vector element with a value of 0 to correct the result;

[0052] Multiply the corrected result by the scaling factor.

[0053] In some embodiments of the present invention, the post-processing performed by the post-processing module further includes:

[0054] Before or after performing the scaling process, use the target input power P for the ADC output value refPerform normalization processing to make the following formula (6) hold:

[0055]

[0056] In some embodiments of the present invention, the post-processing performed by the post-processing module further includes:

[0057] After performing the scaling processing and after performing normalization processing on the ADC output value using the target input power P ref Subtract the ADC output value after multiplying the matrix element by the vector element from the ADC output value after multiplying the matrix element by the vector element with a value of 0 to correct the result.

[0058] In some embodiments of the present invention, the first look-up table and / or the second look-up table are stored on a hard disk.

[0059] In some embodiments of the present invention, the system further includes a bistable flip-flop circuit, and the first look-up table and / or the second look-up table are stored in the bistable flip-flop circuit.

[0060] On the other hand, embodiments of the present invention also provide an optoelectronic computing method, which includes:

[0061] Obtain a plurality of vector elements, and each vector element passes through the first look-up table of the corresponding first modulation module to obtain the first DAC digital code corresponding to the vector element mapped in the first look-up table;

[0062] According to the first DAC digital code corresponding to the vector element, use the first modulation module to modulate the input vector element into an optical wave to form an input optical vector;

[0063] Obtain a plurality of matrix elements, and each matrix element passes through the second look-up table of the corresponding second modulation module to obtain the second DAC digital code corresponding to the matrix element mapped in the second look-up table;

[0064] According to the second DAC digital code corresponding to the matrix element, use the second modulation module to perform a multiplication operation of the input matrix element and the input optical vector;

[0065] Perform an accumulation summation operation on the output of the second modulator;

[0066] Convert the result of the accumulation summation operation into a digital signal.

[0067] In some embodiments of the present invention, the method further includes:

[0068] Receive an input optical wave through an optical input module,

[0069] A predetermined proportion α of the light wave is split from the input light wave through a first beam splitting device to a first monitoring module. The first beam splitting device includes an input waveguide, a first output waveguide, and a second output waveguide. The first beam splitting device is configured to transmit a predetermined proportion α of the light wave in the input light wave from the first output waveguide to the first monitoring module, and the first monitoring module obtains the real-time optical power p at time t of the first output waveguide. t .

[0070] In some embodiments of the present invention, the step of modulating the input vector elements into the light wave to form an input optical vector by using the first DAC digital code corresponding to the vector elements by the first modulation module includes:

[0071] According to the first DAC digital code corresponding to the vector elements, the first DAC outputs a first control signal and loads the first control signal onto a first modulator to form an input optical vector.

[0072] Wherein, a linear relationship is maintained between the value of the input vector element and the optical power of the formed input optical vector, such that the following formula (1) holds:

[0073] P i = k i × x i + b i (1)

[0074] Wherein, x i represents the value of the i-th vector element, k i represents the linear coefficient of the i-th first modulator and k i ×(2 n -1) corresponds to the optical modulation amplitude of the i-th first modulator, b i represents the value of the optical lowest point of the i-th first modulator, and P i represents the output optical power of the i-th first modulator.

[0075] In some embodiments of the present invention, the optical modulation amplitudes k of different first modulators i are the same or different.

[0076] In some embodiments of the present invention, the step of performing the multiplication operation of the input matrix elements and the input optical vector by using the second modulation module according to the second DAC digital code corresponding to the matrix elements includes:

[0077] According to the second DAC digital code corresponding to the matrix element, the second DAC outputs a second control signal and loads the second control signal onto the second modulator to perform the multiplication operation. Among them, according to the second DAC digital code corresponding to the matrix element, the second modulation module is used to perform the multiplication operation of the input matrix element and the input optical vector, so that the results of the same calculation on different second modulators are substantially consistent.

[0078] In some embodiments of the present invention, a second monitoring module for monitoring the output optical power of the corresponding modulation module is provided for each of the first modulation modules;

[0079] Each of the first look-up tables is constructed in the following manner:

[0080] Drive the first modulator with each value of the input vector element, and monitor the output optical power P of the first modulator at time t through the monitoring module t , and perform normalization processing on the output optical power using the target input power P ref so that the following formula (2) holds:

[0081] P i = αP t ×P ref / p t (2)

[0082] Obtain an optical power curve composed of a series of discrete data points,

[0083] According to the optical power curve, determine the corresponding ideal transmittance for each value of the input vector between 0 and the maximum value, select the data point closest to the ideal transmittance from the optical power curve, and establish a mapping relationship between the corresponding vector element value and the DAC digital code according to the selected data point,

[0084] Record the mapping relationship in the first look-up table.

[0085] In some embodiments of the present invention, each of the second look-up tables is constructed in the following manner:

[0086] Scan the control signal of the second modulator in the j-th dot product channel, and the ADC output value corresponding to the j-th dot product channel is the first set of data, as shown in the following formula (3):

[0087]

[0088] Among them, I di is the dark current introduced by the optoelectronic conversion in the system, G is the gain of the transimpedance amplifier in the system, F is the transfer function corresponding to the ADC conversion, f i (I1,…In ) × k i corresponds to the i-th matrix element, b i represents the lowest optical power output by the i-th of the first modulators, k i represents the linear coefficient of the i-th first modulator and k i × (2 n -1) corresponds to the optical modulation amplitude of the i-th first modulator;

[0089] For the j-th dot product channel in the N×N input matrix, take the j-th vector element x among the N vector elements j to a fixed value M, and set the other vector elements x i≠j to 0, and make the control signals I1, …, I of the second modulators corresponding to the other vector elements n set to be fixed. The value range of i is from 0 to N - 1. Scan the control signals of the second modulators in the j-th dot product channel, then the ADC output value corresponding to the j-th dot product channel is the first set of data adc out1 ;

[0090] Set all N vector elements to 0, that is, x i is 0, with other conditions unchanged. Scan the control signals of the second modulators in the j-th dot product channel, then the ADC output value corresponding to the j-th dot product channel is the second set of data adc out2 ;

[0091] Subtract the second set of data from the first set of data to obtain the product of the uncalibrated matrix element and the fixed value M, as shown in the following formula (4):

[0092] adc out1 - adc out2 = F(f j (I1, …, I n ) × k j × M) (4)

[0093] Construct an ADC output curve of adc out1 - adc out2 versus the DAC digital code composed of a second series of discrete data points;

[0094] On the ADC output curve, set the calibration dynamic range, take the output value of the product of the values of each matrix element on the i-th second modulator in the j-th dot product channel and M within this dynamic range, select the data point closest to the output value from the ADC output curve, establish the mapping relationship between the corresponding matrix element values and the DAC digital codes according to the selected data point, and record the mapping relationship in the second look-up table of the i-th second modulator in the j-th dot product channel;

[0095] Repeat the above process to obtain the second look-up table of other second modulators.

[0096] In some embodiments of the present invention, before subtracting the second set of data from the first set of data, the method further includes:

[0097] Normalize the first set of data and the second set of data using the target input power P ref such that the following equation (5) holds:

[0098]

[0099] And after subtracting the second set of data from the first set of data,

[0100] Construct an ADC output curve composed of a second series of discrete data points corresponding to the DAC digital code.

[0101] In some embodiments of the present invention, the method further includes:

[0102] Scale the ADC output value by multiplying it by a scaling factor, which is determined according to M, the matrix elements, and the upper limit of the dynamic range.

[0103] In some embodiments of the present invention, the method further includes:

[0104] Before or after performing the scaling process, subtract the ADC output value obtained by multiplying the matrix elements by the vector elements from the ADC output value obtained by multiplying the matrix elements by the vector elements with a value of 0 to correct the result;

[0105] Multiply the corrected result by the scaling factor.

[0106] In some embodiments of the present invention, the method further includes:

[0107] Before or after performing the scaling process, normalize the ADC output value using the target input power P ref such that the following equation (6) holds:

[0108]

[0109] In some embodiments of the present invention, the method further includes:

[0110] After performing the scaling process and before normalizing the ADC output value using the target input power P refAfter normalization, the ADC output value obtained by multiplying the matrix elements by the vector elements is subtracted from the ADC output value obtained by multiplying the matrix elements by the vector elements with a value of 0 to correct the result.

[0111] In addition, an embodiment of the present invention also provides a computer program product, including computer programs / instructions, characterized in that when the computer programs / instructions are executed by a processor, the steps of the method described in any embodiment or example of the present invention are implemented.

[0112] Moreover, an embodiment of the present invention also provides a computer-readable storage medium, on which computer programs / instructions are stored, characterized in that when the computer programs / instructions are executed by a processor, the steps of the method described in any embodiment or example of the present invention are implemented.

[0113] According to the above embodiments of the present invention, it can be seen that each vector element or each matrix element of the present invention can be independently calibrated to obtain their respective look-up tables, reducing the calibration difficulty. The present invention can calibrate chips with large manufacturing deviations, that is, factors such as unstable light source output in the system, different extinction performances of each modulator, different linear coefficients of the modulators, uneven light splitting of the optical replication module, different losses of waveguides or other transmission paths, and unavoidable system dark current are compensated by the first look-up table and the second look-up table of the present invention. That is, the calibration method of the present invention has a very high tolerance for device differences and obtains high-precision calculation results. The present invention integrates the differences between the input light source, the optical link, and the device performance together and calibrates them as a whole element, simplifying the calibration process. In addition, the present invention does not perform additional optical splitting monitoring for calibration of matrix elements, but directly completes the calibration of matrix elements using the output module ADC of the dot product channel of the computing system and / or the output data of the post-processing module, avoiding the influence of the differences of additional calibration links on the calibration accuracy.

[0114] The following specifically describes various aspects, features, advantages, etc. of the embodiments of the present invention in conjunction with the drawings. Description of the Drawings

[0115] Figure 1 is a framework diagram of an optical computing system according to an exemplary embodiment of the present invention.

[0116] Figure 2 shows the architecture diagram of the vector modulation module of the embodiment of the present invention.

[0117] Figure 3 shows an example of the first modulator in the vector modulation module of the embodiment of the present invention.

[0118] Figure 4a shows the real-time monitoring data of the vector channel, Figure 4bShows the perturbation of the synchronously acquired optical power. Figure 4c Shows the data after the optical power is normalized.

[0119] Figure 5 Shows an example of the "numerical value - DAC1 code" look - up table established corresponding to a single DAC1.

[0120] Figure 6 Shows the architecture diagram of the weight modulation module according to an embodiment of the present invention.

[0121] Figure 7 Shows an example of the matrix element modulator in the weight modulation module according to an embodiment of the present invention.

[0122] Figure 8 Shows an example of the scanned data after the matrix elements are normalized.

[0123] Figure 9 Shows an example of the matrix element look - up table. Detailed implementation manners

[0124] Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. It should be understood that the present invention can be embodied in various different forms and should not be construed as limited to the embodiments shown herein.

[0125] The terms used herein are for the purpose of describing specific embodiments and are not intended to limit the present invention. As used herein, the singular forms "a" and "an" are also intended to include the plural forms unless the context clearly indicates otherwise. It should also be understood that the terms "comprising", "including" and "having" when used herein specify the presence of the stated features, wholes, steps, operations, elements and / or components, but do not preclude the presence or addition of one or more other features, wholes, steps, operations, elements, components and / or their combinations. As used herein, the term "and / or" includes any and all combinations of one or more of the associated listed items. Expressions such as "at least one of..." when preceding a list of elements modify the entire list of elements rather than individual elements of the list.

[0126] As used herein, the terms "substantially", "about" and similar terms are used as approximate terms rather than degree terms and are intended to account for the inherent variations in measured or calculated values that would be recognized by a person of ordinary skill in the art.

[0127] Unless otherwise expressly stated to the contrary, all terms used herein (including technical and scientific terms) have the same meaning as commonly understood by one of ordinary skill in the art to which this invention pertains. It should also be understood that such terms (such as those defined in common dictionaries) should be interpreted as having a meaning that is the same as or approximates their meaning in the relevant field and / or the context of this specification, and should not be interpreted in a rigid or mechanical manner.

[0128] Figure 1 A typical non - correlative multiplier structure of an optical matrix multiplier system is shown. The optical matrix multiplier system, as an example of the optical computing system of the present invention, includes: a first modulation module for modulating vector elements (such as vector modulation module 210), a second modulation module corresponding to the modulation of matrix elements and used for matrix multiplication operations (such as weight modulation module 220), a summing and accumulating module, and an analog - to - digital converter module (such as ADC 240), wherein the summing and accumulating module can be an electrical summing and accumulating module (such as TIA 230) or an optical summing and accumulating module. Embodiments of the present invention are described by taking the electrical summing and accumulating module as an example. For an N×N matrix operation, it may include N vector modulation modules 210, namely vector modulation modules 1 to n, and at most N×N weight modulation modules, namely weight modulation modules 11 to nn. Each optical output end of the vector modulation module has an optical replication module that divides the output vector optical signal of the vector modulation module into several copies of vector optical signals, at most N. At least one copy of the vector optical signal is received by the weight modulation module to perform a multiplication operation with the matrix element; the multiplication operation results of the same dot - product channels are transmitted to the summing and accumulating module to perform a summing and accumulating operation on the multiplication results. The output result of the summing and accumulating module is transmitted to the ADC module to be converted into a digital signal. Figure 1The blue lines represent optical paths, and the black lines represent electrical paths. In this exemplary embodiment, an optical wave is input through an optical input module (such as optical I / O 201). The input optical wave is evenly divided into n parts via a 1×N beam splitter device 203 and respectively input into n vector modulation modules 1 to n. The N vector modulation modules 1 to n respectively modulate n vector elements into the input optical wave to obtain n input optical vectors. For each input optical vector output by a vector modulation module, it is evenly divided into N parts via a 1×N beam splitter device 205 (which is an example of the above-mentioned optical replication module) and respectively input into n weight modulation modules in a row of an N×N matrix. For example, the output of vector modulation module 1 is respectively input into weight modulation modules 11, 21,..., n1 via a 1×N beam splitter device 205. Each weight modulation module modulates the input optical vector according to the input matrix element (such as a weight) to perform a multiplication operation of vector elements and matrix elements in the optical domain. Each column of the N×N matrix is respectively connected to a transimpedance amplifier (TIA) 230. The output of the weight modulation module in the corresponding column is accumulated and summed in the electrical domain through the TIA 230. The result of the electrical-domain accumulation and summation is subjected to analog-to-digital conversion through an ADC 240 to obtain a digital signal. A post-processing module (not shown) performs post-processing on the digital signal to obtain a final calculation result. A beam splitter device type 1 202 (which is an example of a first beam splitter device) is provided between the optical I / O 201 and the 1×N beam splitter device 203 to connect an MPD module 206 (which is an example of a first monitoring module). The MPD module 206 is used to monitor the input optical power of the system. A beam splitter device type 1 204 is provided between each vector modulation module 210 and the corresponding 1×N beam splitter device 205 to connect an MPD module 207 (which is an example of a second monitoring module). The MPD module 207 is used to monitor the output optical power of the corresponding vector modulation module 210.

[0129] In Figure 1 an optical computing system composed of a schematic optical matrix multiplier system, when performing calculations, the calculation data, such as x0,...x i ,...x n , and w 00 ,...w ij ...w (n-1)(n-1)Etc., the intensity or phase of light is encoded by a modulator, so that the corresponding calculations can be completed during the propagation of light in the entire link. In the computing system, a huge number of optical modulators modulate the above elements. Due to differences in manufacturing processes, it is difficult for each modulator to achieve exactly the same performance, and there are differences in the modulation amplitudes of the optical modulators. Between the above components, light generally relies on some passive devices for signal propagation or replication. For example, waveguides are required to transmit signals, and passive beam splitters are required to achieve signal replication. For the optical replication module that splits the output vector optical signal of the vector modulation module, in order to ensure the calculation accuracy, the optical replication module should split the vector optical signal into multiple equal copies of the vector optical signal. However, these devices are not perfect. The transmission losses of each section of the waveguide are not exactly the same, the passive optical replication module cannot achieve complete signal equal division, and the noise in the system will also affect the calculation of the system. All these will become obstacles to improving the calculation accuracy.

[0130] In view of this, in this embodiment, each of the vector modulation modules 210 is configured with a first look-up table for vector element calibration, and the vector modulation module 210 is configured to use the first look-up table to modulate the input vector elements into light waves to form an input optical vector. As Figure 2 shown, the vector modulation module 210 has a digital-to-analog converter (DAC) 211 (which is an example of a first DAC) and a Mach-Zehnder modulator (MZM) 212 (which is an example of a first modulator). The first look-up table, i.e., LUT 213, records the mapping relationship between the DAC digital codes and the vector element values. The DAC 211 is configured to drive the MZM 212 according to the obtained DAC digital code to modulate the input vector elements into light waves to form an input optical vector, where the DAC digital code mapped by the input vector elements is obtained by performing the look-up table mapping operation of retrieving the LUT 213. The operation of performing the look-up table mapping maintains a linear relationship between the value of the input vector elements and the formed input optical vector, such that P i = k i × x i + b i holds, where x i represents the value of the vector element, P i represents the output optical power of the i-th MZM 212, b i represents the lowest optical power output by the i-th first modulator, k i represents the linear coefficient and k i × (2 n - 1) corresponds to the optical modulation amplitude of the i-th first modulator.

[0131] Each first modulation module 100 has a first DAC and a first modulator. The first look-up table records the mapping relationship between the DAC digital codes and the values of the vector elements. The first DAC is configured to drive the first modulator according to the obtained DAC digital codes so as to modulate the input vector elements into an optical wave to form an input optical vector. Among them, the DAC digital codes of the mapped input vector elements are obtained by performing the look-up table mapping operation of retrieving the first look-up table. The operation of performing the look-up table mapping maintains a linear relationship between the value of the input vector elements and the formed input optical vector, such that the following formula (1) holds:

[0132] P i =k i ×x i +b i (1),

[0133] where x i represents the value of the vector element, P i represents the output optical power of the i-th first modulator, b i represents the lowest optical power output by the i-th first modulator, k i represents the linear coefficient of the i-th first modulator and k i ×(2 n -1) corresponds to the optical modulation amplitude of the i-th first modulator. In this embodiment, an MPD module 207 for monitoring the output optical power of the corresponding modulation module is provided for each of the vector modulation modules. Each of the first look-up tables (LUT 213) is constructed in the following manner:

[0134] Drive the first modulator with each value of the input vector elements, and monitor the output optical power P t at time t of the first modulator through the monitoring module, and normalize the output optical power with the target input power P ref so that the following formula (2) holds:

[0135] P i =αP t ×P ref / p t (2)

[0136] Obtain an optical power curve composed of a series of discrete data points,

[0137] According to the optical power curve, determine the corresponding ideal transmittance for each value of the input vector between 0 and the maximum value, select the data point closest to the ideal transmittance from the optical power curve, and establish the mapping relationship between the value of the corresponding vector element and the DAC digital code according to the selected data point,

[0138] Record the mapping relationship in the first lookup table.

[0139] In some embodiments, the modulator of the vector modulation module may adopt a multi-segment design, a differential or a single-ended design. As Figure 3 shown, taking a two-segment, two-arm independently driven modulator as an example to illustrate the construction of the first lookup table, i.e., LUT 213.

[0140] In Figure 3 , both the upper arm and the lower arm of the modulator include one or more segments of phase shifters. In this embodiment, taking the upper arm and the lower arm respectively including two segments of phase shifters as an example, they are upper arm segment 0 and upper arm segment 1, and lower arm segment 0 and lower arm segment 1. Assume that segment 0 is the high-speed modulation part, and segment 1 is the modulation part for adjusting the operating point at low speed. The specific process is as follows:

[0141] a) Adjustment of the operating point: Lock the digital codes of DAC1 and DAC2 at a certain fixed position according to the operating mode, and scan DAC3 and DAC4 in turn, and the following curve will be obtained. Taking Figures 4a to 4c as an example, where the horizontal axis is the digital code of DAC3 or DAC4, and the vertical axis is the data read by the monitoring module (MPD module 207) after the vector modulator. While recording the monitoring data of the vector modulator channel, the readings of MPD module 206 at the optical I / O are also monitored. Figure 4a is the real-time monitoring data of the vector channel, Figure 4b is the perturbation of the optical power synchronously collected, Figure 4c is the data after normalizing the optical power. It can be seen that the burrs around 3200 in the DAC4 curve disappear. This burr mainly comes from the perturbation of the optical power, and this normalization process compensates for the error caused by the unstable input optical power.

[0142] b) Establishment of the first lookup table LUT 213. The calibration of N vector element channels is independent of each other. Scan the phase shifters of the upper and lower arms of the segment 0, which is the phase modulator for the encoding part and also the data source for generating the lookup table.

[0143] In this embodiment, a complete numerical calibration is used to establish the lookup table. Taking a computing system with a vector element accuracy of 8int as an example, map the minimum value in the curve to 0, the maximum value (which can also be any arbitrarily defined point) to 255, and the corresponding step is (max - min) / 255. The corresponding ideal transmittance is min + V i *step, where V i represents the i-th vector element. Among Figure 4c these discrete data points, find the point closest to the ideal transmittance, and then construct the lookup table. Figure 5It is a "numerical value - DAC1 code" lookup table established corresponding to a single DAC1. In other embodiments, an incomplete numerical calibration or other methods can also be used to establish the lookup table.

[0144] In addition, for a larger chip, due to the differences in the consistency of the modulator process, the linear coefficients k between different first modulators i usually vary, which in turn leads to different optical modulation amplitudes. If calculated directly, the same calculation executed through different dot - product channels will have different results, deviating significantly from the true calculation result.

[0145] In view of this, in this embodiment, each of the weight modulation modules 220 is configured with a second lookup table for matrix element calibration, and the weight modulation module 220 is configured to perform the multiplication operation of the input matrix element and the input optical vector using the second lookup table. As Figure 6 shown, each of the weight modulation modules 220 has a DAC 221, an MZM 222, and photodiodes (PD) 224, 225. The second lookup table, i.e., LUT 226, records the mapping relationship between the DAC digital code and the matrix element value. The DAC 221 is configured to drive the MZM 222 according to the obtained DAC digital code to perform the multiplication operation, where the DAC digital code corresponding to the mapped matrix element of the input is obtained by performing the lookup table mapping operation of retrieving the LUT 226, and the operation of performing the lookup table mapping makes W’ = W / k i hold, where W’ represents the matrix element value corresponding to the DAC digital code after the lookup table mapping, and W represents the input matrix element (target weight). Since the second lookup table corresponding to the weight modulation module 220 compensates for the differences in the linear coefficient k due to the differences in the consistency of the modulator process in the vector adjustment module i thus, when performing the same calculation xw on different dot - product channels, the results are basically equal, and the commutation of element multiplication has no effect on the dot - product result, such as:

[0146] [x1,x2,x3,…][y1,y2,y3,…] = [x2,x1,x3,…][y2,y1,y3,…]

[0147] In some embodiments, the ADC output of the dot - product channel in the computing system can be described by the following formula (01):

[0148]

[0149] where, t i corresponds to the link loss after the first modulator (vector modulator) and before the second debugger (matrix element modulator), which is generally contributed by beam splitting, waveguide insertion loss, etc. is the output of the upper and lower arms of the matrix element modulator, where represents the responsivity (PD photocurrent conversion efficiency) of the photoelectric conversion that may be required therein, is the transmittance of the output of the matrix element modulator, I1,…I n are several control signals of the matrix element, generally two.

[0150] I di is the dark current introduced by assuming the existence of photoelectric conversion therein, G is the gain of the TIA, F is the transfer function corresponding to the ADC conversion, and it is assumed here that it is linear and satisfies F(x1)+F(x2) = F(x1 + x2). On the premise of not considering the influence of temperature (the photoelectric conversion responsivity is mainly affected by temperature), is only related to the input signal of the matrix element modulator (i.e., the modulator included in the weight modulation module), and it can be regarded as f i (I1,…I n ). In addition, if the P in step 1 is i substituted into the above formula, the following formula (02) can be obtained

[0151]

[0152] where x i is the vector element.

[0153] The input signal of the matrix element modulator is related to the input of the DAC corresponding to the matrix element. If there is no second look-up table, the matrix element W = f i (I1,…I n ), and the multiplication result of the matrix element and the vector element f i (I1,…I n )×(k i ×x i +b i ) = k i ×W×x i +k i ×W×b i and the actual result W×x i in addition to the light introduced by the imperfect extinction of the first modulator (i.e., the modulator included in the vector modulation module), there is also a scaling of k i . Also, since the k i corresponding to each vector element is different, this scaling cannot be compensated by summing and accumulating and then performing the corresponding scaling in the subsequent module, which will cause the same calculation to output different results at different dot product channels. In the present invention, by adding a second look-up table to the system and making the matrix element W pass through the mapping of the second look-up table to the DAC digital code corresponding to W' = W / k i , so that the control signal output by the ADC is related to W / ki corresponds to, i.e., W / k i = f i (I1, … I n ), at this time, the multiplication result f of the matrix element and the vector element i (I1, … I n ) × (k i × x i + b i ) = W × x i + W × b i . And W × b i can be removed by subtraction calculation obtained by setting the vector value to 0.

[0154] It can be found that after adding the above-mentioned second look-up table, the direct output of the ADC is only affected by the dark current and the imperfect extinction of the modulator, and these two factors can be directly obtained by setting the vector elements to 0 and can be compensated in the post-processing module.

[0155] In some embodiments, the second look-up table is constructed in the following manner:

[0156] Scan the control signal of the second modulator in the j-th dot product channel, then the ADC output value corresponding to the j-th dot product channel is the first set of data, as shown in the following formula (3):

[0157]

[0158] where I di is the dark current introduced by the photoelectric conversion in the system, G is the gain of the transimpedance amplifier in the system, F is the transfer function corresponding to the ADC conversion, f i (I1, … I n ) × k i corresponds to the i-th matrix element, b i represents the lowest optical power output by the i-th first modulator, k i represents the linear coefficient of the i-th first modulator and k i × (2 n - 1) corresponds to the optical modulation amplitude of the i-th first modulator;

[0159] For the j-th dot product channel in the N × N input matrix, take the j-th vector element x j of the N vector elements to a fixed value M, and set the other vector elements x i≠j to 0, and set the control signals I1, … I n of the second modulators corresponding to the other vector elements to be fixed. The value range of i is from 0 to N - 1. Scan the control signal of the second modulator in the j-th dot product channel, then the ADC output value corresponding to the j-th dot product channel is the first set of data adcout1 ;

[0160] Set all x of the N vector elements to 0, keep other conditions unchanged, and scan the control signal of the second modulator in the j-th dot product channel. Then, the second set of data adc of the ADC output value corresponding to the j-th dot product channel i ; out2 ;

[0161] Subtract the second set of data from the first set of data to obtain the product of the uncalibrated matrix element and the fixed value M, as shown in the following formula (4):

[0162] adc out1 -adc out2 = F(f j (I1,…I n )×k j ×M) (4)

[0163] Construct an ADC output curve of adc out1 -adc out2 versus the DAC digital code composed of a second series of discrete data points;

[0164] On the ADC output curve, set the calibration dynamic range, take the output value of the product of the matrix element value and M on the i-th second modulator in the j-th dot product channel within this dynamic range, select the data point closest to the output value from the ADC output curve, establish a mapping relationship between the corresponding matrix element value and the DAC digital code according to the selected data point, and record the mapping relationship in the second look-up table of the i-th second modulator in the j-th dot product channel;

[0165] Repeat the above process to obtain the second look-up tables of other second modulators.

[0166] In some embodiments, before subtracting the second set of data from the first set of data, it further includes:

[0167] Perform normalization processing on the first set of data and the second set of data using the target input power P ref such that the following formula (5) holds:

[0168]

[0169] And after subtracting the second set of data from the first set of data, construct an ADC output curve of versus the DAC digital code composed of a second series of discrete data points.

[0170] The present invention does not configure an additional monitoring module for calibration for the second modulation module. Instead, it directly uses the output module ADC of the dot product channel of the computing system and / or the output data of the post-processing module to complete the calibration of the matrix elements and obtain the second look-up table, which simplifies the system setup and avoids the influence of the differences in the additional calibration links on the calibration accuracy. At the same time, the construction of the second look-up table is based on the calculation result output of the computing system. In addition to compensating for the process imperfections of the first modulator and the second modulator, it also compensates for the differences in the system link structure, such as the link losses of waveguides and optical replication modules, further improving the calculation accuracy of the computing system.

[0171] In some embodiments, it is assumed that the modulators corresponding to the matrix elements are all MZMs with double arms working independently and can be adjusted independently. The general structure is as Figure 7 shown. Make DAC1 and DAC2 work alternately instead of simultaneously; the matrix elements are still 8-bit signed quantization. According to the foregoing, as Figure 8 shown, calibrating a matrix element requires scanning two sets of data respectively: the vector element value corresponding to the matrix element channel is set to 0, and the data data1(DAC1,0) and data2(0,DAC2) obtained by scanning DAC1 and DAC2; the vector element corresponding to the matrix element channel is set to 255, and the data data3(DAC1,255) and data4(255,DAC2) obtained by scanning DAC1 and DAC2. Select the maximum and minimum values for calibrating the matrix elements, because in the vector element calibration, 0 and 255 are the two values with theoretically no deviation calibration, corresponding to the minimum transmittance and the maximum transmittance respectively. According to the foregoing, take norm(data3, P ref ) - norm(data1, P ref ) and norm(data4, P ref ) - norm(data2, P ref ) for the two sets of data for calibration.

[0172] Mathematically, these four sets of data respectively correspond to the dot product results of the matrix elements at different positions such as [...,255,0,0,0...] and [...,W1,0,0,0...], [...0,255,0,0...] and [...0,W2,0,0...], etc. Here, W1 to W4, etc. will be quantized to the range of [-128,127], and the corresponding look-up table will be as Figure 9 shown.

[0173] In this example, the system further includes a post-processing module (not shown in the figure) for post-processing the ADC output value. Among them, the post-processing includes scaling the ADC output value by multiplying it by a scaling factor, and the scaling factor is determined according to M, the matrix element, and the upper limit of the dynamic range.

[0174] In some embodiments, the relationship between the scaling factor, M, the matrix elements (Weight), and the upper limit of the dynamic range satisfies: M * Weight = the upper limit of the dynamic range * scaling factor.

[0175] If the dynamic range is too small, the signal strength may be masked by noise due to weak signals, resulting in a poor signal-to-noise ratio.

[0176] Among them, the selection principle of the dynamic range is as follows:

[0177] Assume that all weight elements are n-bit signed, corresponding to the value range of [-2 n-1 , 2 n-1 -1]. Scan one by one to obtain the relationship diagram between the values of each dot product channel Out1 - Out2 and the DAC code, and select a maximum dynamic range such that the values of Out1 - Out2 within this maximum dynamic range can be obtained in each dot product channel. Select the minimum value -A of the actually used dynamic range within the maximum dynamic range j , then the actually used dynamic range is At this time, the upper limit of the dynamic range is At this time, Then

[0178] Among them, within the dynamic range, divide along the Y-axis into n - 1 parts, obtain the output values of the product of each weight value and MAX within the dynamic range, and take the DAC digital codes corresponding to each output value to obtain the look-up table.

[0179] In the above embodiment, under the current Pref, the dot product result of […, 255, 0, 0, 0…] and […, 127, 0, 0, 0…] is 127 * LSB = 127, the theoretical value is 255 * 127, the calculation result of the hardware is 127, and the intermediate scaling factor is 255.

[0180] In some embodiments, due to the limited extinction ratio, when the vector is all 0, light may still enter the computing system. Therefore, when calculating the matrix-vector multiplication of the input vector element x i and the matrix element W, use the calculation result of W and x i minus the calculation result of the matrix element when x i is all 0, that is, W@x i - W@0, to correct the result. The post-processing module scales the corrected result by the scale factor to obtain the final calculation result.

[0181] In some embodiments, the post-processing performed by the post-processing module further includes:

[0182] Before or after performing the scaling process, normalize the ADC output value using the target input power P ref to make the following formula (6) hold:

[0183]

[0184] Moreover, in some embodiments, the post-processing performed by the post-processing module further includes:

[0185] After performing the scaling process and after normalizing the ADC output value using the target input power P ref perform a multiplication operation between matrix elements and vector elements on the ADC output value, and then subtract the ADC output value obtained by performing a multiplication operation between matrix elements and vector elements with a value of 0 to correct the result.

[0186] In some embodiments, a flip-flop circuit can be used as the hardware for storing the LUT, arranged near the DAC, and can be regarded as a micro pre-processor. The flip-flop circuit has the beneficial effect of extremely low delay. In an alternative embodiment, the look-up table is written on the hard disk. After the system operates, the look-up table is loaded into the RAM. Each calculation first performs a look-up table mapping through other processing units (such as the Host CPU, co-processor, etc.) to obtain the corresponding digital code of the DAC, and then gives these digital codes to the optical computing hardware (i.e., the first modulator or the second modulator). Writing the look-up table on the hard disk will not generate additional volume and process costs for the computing system, which is simple and convenient.

[0187] The above describes the embodiments or examples of the optical computing system adopting the new calibration method of the present invention. According to the above embodiments, it can be understood that the optical computing method of the present invention may include: obtaining a plurality of vector elements, each vector element obtaining the corresponding first DAC digital code mapped in the first look-up table of the corresponding first modulation module through the first look-up table of the corresponding first modulation module; modulating the input vector elements into light waves to form an input optical vector using the first modulation module according to the first DAC digital code corresponding to the vector elements; obtaining a plurality of matrix elements, each matrix element obtaining the corresponding second DAC digital code mapped in the second look-up table of the corresponding second modulation module through the second look-up table of the corresponding second modulation module; performing a multiplication operation between the input matrix elements and the input optical vector using the second modulation module according to the second DAC digital code corresponding to the matrix elements; performing an accumulative summation operation on the output of the second modulator; and converting the result of the accumulative summation operation into a digital signal.

[0188] In some embodiments, the method further includes: receiving an input optical wave through an optical input module; splitting a predetermined proportion α of the optical wave from the input optical wave to a first monitoring module through a first beam splitting device, where the first beam splitting device includes an input waveguide, a first output waveguide, and a second output waveguide, and the first beam splitting device is configured to transmit a predetermined proportion α of the optical wave in the input optical wave from the first output waveguide to the first monitoring module, and the first monitoring module obtains the real-time optical power p at time t of the first output waveguide t 。

[0189] In some embodiments, the modulating the input vector elements into an optical wave to form an input optical vector by using the first DAC digital code corresponding to the vector elements by the first modulation module includes:

[0190] According to the first DAC digital code corresponding to the vector elements, the first DAC outputs a first control signal and loads the first control signal onto a first modulator to form an input optical vector,

[0191] wherein, a linear relationship is maintained between the value of the input vector element and the optical power of the formed input optical vector, such that the following formula (1) holds:

[0192] P i =k i ×x i +b i (1)

[0193] wherein, x i represents the value of the i-th vector element, k i represents the linear coefficient of the i-th first modulator and k i ×(2 n -1) corresponds to the optical modulation amplitude of the i-th first modulator, b i represents the value of the optical lowest point of the i-th first modulator, and P i represents the output optical power of the i-th first modulator. The optical modulation amplitudes ki of different first modulators are the same or different.

[0194] In some embodiments, the multiplying operation of the input matrix element and the input optical vector by using the second look-up table includes: obtaining the DAC digital code mapped by the input matrix element through performing the look-up table mapping operation by retrieving the second look-up table; driving a second modulator for performing the multiplying operation according to the obtained DAC digital code mapped by the matrix element. Wherein, the operation of performing the look-up table mapping makes W’ = W / k i hold, where W’ represents the calibrated matrix element and W represents the input matrix element.

[0195] In some embodiments, the optical modulation amplitudes k of different ones of the first modulators i are the same or different.

[0196] In some embodiments, a second monitoring module for monitoring the output optical power of the corresponding modulation module is provided for each of the first modulation modules. The first look-up table is constructed as follows:

[0197] Drive the first modulator using respective values of the input vector elements, and monitor the output optical power P of the first modulator at time t through the monitoring module t , and perform normalization processing on the output optical power using a target input power P ref so that the following formula (2) holds:

[0198] P i = αP t ×P ref / p t (2)

[0199] Obtain an optical power curve composed of a series of discrete data points,

[0200] According to the optical power curve, determine the corresponding ideal transmittance for each value of the input vector between 0 and the maximum value, select the data point closest to the ideal transmittance from the optical power curve, and establish a mapping relationship between the value of the corresponding vector element and the DAC digital code according to the selected data point,

[0201] Record the mapping relationship in the first look-up table.

[0202] In some embodiments, the performing, by the second modulation module, the multiplication operation of the input matrix element and the input optical vector according to the second DAC digital code corresponding to the matrix element includes:

[0203] According to the second DAC digital code corresponding to the matrix element, the second DAC outputs a second control signal and loads the second control signal onto a second modulator to perform the multiplication operation, wherein, according to the second DAC digital code corresponding to the matrix element, performing, by the second modulation module, the multiplication operation of the input matrix element and the input optical vector makes the results of the same calculation substantially consistent on different second modulators.

[0204] In some embodiments, the second look-up table is constructed as follows:

[0205] Scan the control signal of the second modulator in the j-th dot product channel, and the ADC output value corresponding to the j-th dot product channel is a first set of data, as shown in the following formula (3):

[0206]

[0207] Among them, I di is the dark current introduced by the optoelectronic conversion in the system, G is the gain of the transimpedance amplifier in the system, F is the transfer function corresponding to the ADC conversion, f i (I1,…I n )×k i corresponds to the i-th matrix element, b i represents the lowest optical power output by the i-th of the first modulators, k i represents the linear coefficient of the i-th first modulator and k i ×(2 n -1) corresponds to the optical modulation amplitude of the i-th first modulator;

[0208] For the j-th dot product channel in the N×N input matrix, the j-th vector element x among the N vector elements j is taken to a fixed value M, and the other vector elements x i≠j are set to 0, and the control signals I1,…I of the second modulators corresponding to the other vector elements n are set to be fixed. The value range of i is from 0 to N-1. Scanning the control signals of the second modulators in the j-th dot product channel, the ADC output value corresponding to the j-th dot product channel is the first set of data adc out1 ;

[0209] All N vector elements are set to 0, that is, x i is 0, and other conditions remain unchanged. Scanning the control signals of the second modulators in the j-th dot product channel, the ADC output value corresponding to the j-th dot product channel is the second set of data adc out2 ;

[0210] Subtract the second set of data from the first set of data to obtain the product of the uncalibrated matrix element and the fixed value M, as shown in the following formula (4):

[0211] adc out1 -adc out2 =F(f j (I1,…I n )×k j ×M) (4)

[0212] Construct an ADC output curve of adc out1 -adc out2 and the DAC digital code composed of a second series of discrete data points;

[0213] On the ADC output curve, set a calibration dynamic range, take the output value within this dynamic range of the product of the values of each matrix element on the i-th second modulator in the j-th dot product channel and M, select the data point closest to the output value from the ADC output curve, establish a mapping relationship between the corresponding matrix element value and the DAC digital code based on the selected data point, and record the mapping relationship in the second look-up table of the i-th second modulator in the j-th dot product channel;

[0214] Repeat the above process to obtain the second look-up tables of other second modulators.

[0215] In some embodiments, before subtracting the second set of data from the first set of data, it further includes:

[0216] Perform normalization processing on the first set of data and the second set of data using the target input power P ref to make the following formula (5) hold:

[0217]

[0218] And after subtracting the second set of data from the first set of data, construct an ADC output curve composed of a second series of discrete data points versus the DAC digital code.

[0219] In some embodiments, the method further includes: performing scaling processing on the ADC output value by multiplying it by a scaling factor, where the scaling factor is determined based on M, the matrix element, and the upper limit of the dynamic range.

[0220] In some embodiments, before or after performing the scaling processing, subtract the ADC output value after multiplying the matrix element by the vector element from the ADC output value after multiplying the matrix element by the vector element with a value of 0 to correct the result; multiply the corrected result by the scaling factor.

[0221] In some embodiments, before or after performing the scaling processing, perform normalization processing on the ADC output value using the target input power P ref to make the following formula (6) hold:

[0222]

[0223] In some embodiments, after performing the scaling processing and before performing normalization processing on the ADC output value using the target input power P refAfter normalization, the ADC output value obtained by multiplying the matrix elements by the vector elements is subtracted from the ADC output value obtained by multiplying the matrix elements by the vector elements with a value of 0 to correct the result.

[0224] It should be understood that some or all of the steps of the methods described in the embodiments of the present invention can be implemented by one or more processors executing computer programs / instructions. Therefore, the embodiments of the present invention also provide a computer program product, including computer programs / instructions, which, when executed by a processor, implement the steps of the methods described in any of the above embodiments. In addition, the embodiments of the present invention also provide a computer-readable storage medium, on which computer programs / instructions are stored, and characterized in that the computer programs / instructions, when executed by a processor, implement the steps of the methods described in any of the above embodiments.

[0225] Those skilled in the art should understand that what is disclosed above is only the embodiments of the present invention, and of course cannot be used to limit the scope of the rights claimed for the present invention. Equivalent changes made according to the embodiments of the present invention still fall within the scope covered by the claims of the present invention.

Claims

1. An optical computing system, characterized in that, Comprising: A plurality of first modulation modules, each of the first modulation modules being configured with a first look-up table for vector element calibration, and the first modulation module being configured to modulate an input vector element into an optical wave using the first look-up table to form an input optical vector; A plurality of second modulation modules, each of the second modulation modules being configured with a second look-up table for matrix element calibration, and the second modulation module being configured to perform a multiplication operation of an input matrix element and the input optical vector in the optical domain using the second look-up table; A plurality of accumulation and summation modules, each of the accumulation and summation modules being configured to perform an accumulation and summation operation on the outputs of the plurality of second modulation modules; A plurality of ADC modules, each of the plurality of ADC modules being configured to convert the outputs of the plurality of accumulation and summation modules into digital signals.

2. The optical computing system according to claim 1, wherein Further comprising: An optical input module for receiving an input optical wave, The first beam splitting device includes an input waveguide, a first output waveguide, and a second output waveguide. The first beam splitting device is configured to transmit a light wave with a predetermined ratio α of the input light wave from the first output waveguide to the first monitoring module, and the first monitoring module obtains the real-time optical power p at time t of the first output waveguide t .

3. The optical computing system according to claim 2, characterized in that, Each of the first modulation modules has a first DAC and a first modulator, The first look-up table records the mapping relationship between the DAC digital code and the vector element value, The first DAC is configured to drive the first modulator according to the obtained DAC digital code to modulate the input vector element into an optical wave to form the input optical vector, wherein the DAC digital code mapped to the input vector element is obtained by performing a look-up table mapping operation by retrieving the first look-up table, Using the obtained DAC digital code to drive the first modulator maintains a linear relationship between the value of the input vector element and the optical power of the formed input optical vector, such that the following formula (1) holds: P i = k i × x i + b i (1) Among them, x i represents the value of the i-th vector element, k i represents the linear coefficient of the i-th first modulator and k i ×(2 n - 1) corresponds to the optical modulation amplitude of the i-th first modulator, b i represents the value of the optical lowest point of the i-th first modulator, P i represents the output optical power of the i-th first modulator.

4. The optical computing system according to claim 3, characterized in that, The optical modulation amplitude k of the different first modulators i is the same or different.

5. The optical computing system according to claim 4, characterized in that, Each of the second modulation modules has a second DAC and a second modulator, The second look-up table records the mapping relationship between the DAC digital code and the matrix element value, The second DAC is configured to drive the second modulator according to the obtained DAC digital code to perform the multiplication operation, wherein the DAC digital code mapped to the input matrix element is obtained by performing a look-up table mapping operation by retrieving the second look-up table, and using the obtained DAC digital code to drive the second modulator makes the results of the same calculation substantially consistent on different second modulators.

6. The optical computing system according to claim 5, wherein Each of the second modulation modules further has: An optoelectronic conversion unit that converts the result of the multiplication operation in the form of an optical signal into an electrical output.

7. The optical computing system according to claim 3, characterized in that, A second monitoring module for monitoring the output optical power of the corresponding modulation module is provided for each of the first modulation modules; Each of the first look-up tables is constructed in the following manner: Drive the first modulator using respective values of the input vector elements, and monitor the output optical power P of the first modulator at time t through the monitoring module t , for the output optical power P t Adopt a target input power P ref Perform normalization processing so that the following formula (2) holds: P i = αP t ×P ref / p t (2) An optical power curve composed of a series of discrete data points is obtained, According to the optical power curve, for each value of the input vector between 0 and the maximum value, the corresponding ideal transmittance is determined, the data point closest to the ideal transmittance is selected from the optical power curve, and the mapping relationship between the corresponding vector element value and the DAC digital code is established, The mapping relationship is recorded in the first look-up table.

8. The optical computing system according to claim 5, wherein Each of the second look-up tables is constructed in the following manner: Scan the control signal of the second modulator in the j-th dot product channel, and the ADC output value corresponding to the j-th dot product channel is the first set of data, as shown in the following formula (3): Among them, I di is the dark current introduced by the optoelectronic conversion in the system, G is the gain of the transimpedance amplifier in the system, F is the transfer function corresponding to the ADC conversion, f i (I1,... I n ) × k i corresponds to the i-th matrix element, b i represents the lowest optical power output by the i-th of the first modulators, k i represents the linear coefficient of the i-th first modulator and k i × (2 n - 1) corresponds to the optical modulation amplitude of the i-th first modulator; For the j-th dot product channel in the N×N input matrix, the j-th vector element x among the N vector elements j is set to a fixed value M, and the other vector elements x i≠j are set to 0, and the control signals I1,... I of the second modulators corresponding to the other vector elements n are set to be fixed. The value range of i is from 0 to N - 1. By scanning the control signals of the second modulators in the j-th dot product channel, the ADC output value corresponding to the j-th dot product channel is the first set of data adc out1 ; Set all N vector elements to 0, i.e., x i is 0, with other conditions remaining unchanged, scan the control signal of the second modulator in the j-th dot product channel, then the ADC output value corresponding to the j-th dot product channel is the second set of data adc out2 ; Subtract the second set of data from the first set of data to obtain the product of the uncalibrated matrix element and the fixed value M, as shown in the following formula (4): adc out1 -adc out2 = F(f j (I1,...I n ) × k j × M) (4) Construct an ADC consisting of a second series of discrete data points out1 -ADC out2 The ADC output curve versus the DAC digital code; On the ADC output curve, set the calibration dynamic range, and take the output value of the product of each matrix element value and M on the i-th second modulator in the j-th dot product channel within this dynamic range. Select the data point closest to the output value from the ADC output curve, and establish the mapping relationship between the corresponding matrix element value and the DAC digital code according to the selected data point. Record the mapping relationship in the second look-up table of the i-th second modulator in the j-th dot product channel; Repeat the above process to obtain the second look-up tables of other second modulators.

9. The optical computing system according to claim 8, wherein Before subtracting the second set of data from the first set of data, it further includes: Apply the target input power P to the first set of data and the second set of data ref Perform normalization processing so that the following formula (5) holds: And after subtracting the second set of data from the first set of data, Construct an ADC output curve corresponding to the DAC digital code from the second series of discrete data points.

10. The optical computing system according to claim 8, wherein It further includes: A post-processing module for post-processing the ADC output value. Among them, the post-processing includes scaling the ADC output value by multiplying it by a scaling factor, and the scaling factor is determined according to M, the matrix element, and the upper limit of the dynamic range.

11. The optical computing system according to claim 10, wherein The post-processing performed by the post-processing module further includes: Before or after performing the scaling process, subtract the ADC output value after multiplying the matrix element by the vector element from the ADC output value after multiplying the matrix element by the vector element with a value of 0 to correct the result; Multiply the corrected result by the scaling factor.

12. The optical computing system according to claim 10, characterized in that, The post-processing performed by the post-processing module further includes: Before or after performing the scaling process, normalize the ADC output value using the target input power P ref such that the following equation (6) holds:

13. The optical computing system according to claim 12, characterized in that, The post-processing performed by the post-processing module further includes: After performing the scaling process and after normalizing the ADC output value using the target input power P ref After that, the ADC output value obtained by multiplying the matrix element by the vector element is subtracted from the ADC output value obtained by multiplying the matrix element by the vector element with a value of 0 to correct the result.

14. The optical computing system according to claim 1, characterized in that, The first look-up table and / or the second look-up table is stored on the hard disk.

15. The optical computing system according to claim 1, characterized in that, It further includes a bistable flip-flop circuit, and the first look-up table and / or the second look-up table is stored in this bistable flip-flop circuit.

16. An optoelectronic computing method, characterized in that, It includes: Obtain a plurality of vector elements, and each vector element obtains the first DAC digital code corresponding to the vector element mapped in the first look-up table through the first look-up table of the corresponding first modulation module; According to the first DAC digital code corresponding to the vector element, use the first modulation module to modulate the input vector element into an optical wave to form an input optical vector; Obtain a plurality of matrix elements, and each matrix element obtains the second DAC digital code corresponding to the matrix element mapped in the second look-up table through the second look-up table of the corresponding second modulation module; According to the second DAC digital code corresponding to the matrix element, use the second modulation module to perform the multiplication operation of the input matrix element and the input optical vector; Perform an accumulation summation operation on the output of the second modulator; Convert the result of the accumulation summation operation into a digital signal.

17. The method according to claim 16, wherein It further includes: Receive the input optical wave through the optical input module, A predetermined proportion α of the light wave is split from the input light wave by a first beam splitting device to a first monitoring module, where the first beam splitting device includes an input waveguide, a first output waveguide, and a second output waveguide. The first beam splitting device is configured to transmit a predetermined proportion α of the light wave split from the input light wave from the first output waveguide to the first monitoring module, and the first monitoring module obtains the real-time optical power p at time t of the first output waveguide. t 。 18. The method according to claim 17, wherein The use of using the first DAC digital code corresponding to the vector element and using the first modulation module to modulate the input vector element into an optical wave to form an input optical vector includes: According to the first DAC digital code corresponding to the vector element, the first DAC outputs a first control signal and loads the first control signal onto a first modulator to form an input optical vector. Among them, a linear relationship is maintained between the value of the input vector element and the optical power of the formed input optical vector, such that the following formula (1) holds: P i = k i × x i + b i (1) where x i represents the value of the i-th vector element, k i represents the linear coefficient of the i-th first modulator and k i ×(2 n -1) corresponds to the optical modulation amplitude of the i-th first modulator, b i represents the value of the optical lowest point of the i-th first modulator, P i represents the output optical power of the i-th first modulator.

19. The method according to claim 18, wherein The optical modulation amplitude k of different ones of the first modulators i is the same or different.

20. The method according to claim 19, wherein The multiplication operation of the input matrix element and the input optical vector performed by the second modulation module according to the second DAC digital code corresponding to the matrix element includes: According to the second DAC digital code corresponding to the matrix element, the second DAC outputs a second control signal and loads the second control signal onto a second modulator to perform the multiplication operation. Among them, the multiplication operation of the input matrix element and the input optical vector performed by the second modulation module according to the second DAC digital code corresponding to the matrix element makes the results of the same calculation on different second modulators basically consistent.

21. The method according to claim 18, characterized in that, A second monitoring module for monitoring the output optical power of the corresponding modulation module is provided for each of the first modulation modules; Each of the first lookup tables is constructed in the following manner: Drive the first modulator using respective values of the input vector elements, and monitor the output optical power P of the first modulator at time t through the monitoring module t , and perform normalization processing on the output optical power using a target input power P ref such that the following formula (2) holds: P i = αP t ×P ref / p t (2) An optical power curve composed of a series of discrete data points is obtained. According to the optical power curve, for each value of the input vector between 0 and the maximum value, the corresponding ideal transmittance is determined. The data point closest to the ideal transmittance is selected from the optical power curve, and a mapping relationship between the corresponding vector element value and the DAC digital code is established according to the selected data point. The mapping relationship is recorded in the first lookup table.

22. The method according to claim 20, wherein Each of the second lookup tables is constructed in the following manner: The control signal of the second modulator in the j-th dot product channel is scanned, and the ADC output value corresponding to the j-th dot product channel is the first set of data, as shown in the following formula (3): Among them, I di is the dark current introduced by the optoelectronic conversion in the system, G is the gain of the transimpedance amplifier in the system, F is the transfer function corresponding to the ADC conversion, f i (I1,... I n )×k i corresponds to the i-th matrix element, b I represents the lowest optical power output by the i-th of the first modulators, k i represents the linear coefficient of the i-th first modulator and k i ×(2 n -1) corresponds to the optical modulation amplitude of the i-th first modulator; For the j-th dot product channel in the N×N input matrix, the j-th vector element x among the N vector elements j is taken to a fixed value M, and the other vector elements x i≠j are set to 0, and the control signals I1,... I of the second modulators corresponding to the other vector elements n are set to be fixed. With i ranging from 0 to N-1, the control signals of the second modulators in the j-th dot product channel are scanned, and the ADC output value corresponding to the j-th dot product channel is the first set of data adc out1 ; Set all N vector elements to 0, i.e., x i Set it to 0, keep other conditions unchanged, and scan the control signal of the second modulator in the j-th dot product channel. Then, the ADC output value corresponding to the j-th dot product channel is the second set of data adc out2 ; The product of the uncalibrated matrix element and the fixed value M is obtained by subtracting the second set of data from the first set of data, as shown in the following formula (4): adc out1 -adc out2 =F(f j (I1,...I n )×k j ×M) (4) Construct an ADC consisting of a second series of discrete data points out1 -ADC out2 The ADC output curve versus the DAC digital code; On the ADC output curve, a calibration dynamic range is set. The output values of the products of each matrix element value and M on the i-th second modulator in the j-th dot product channel within this dynamic range are taken. The data point closest to the output value is selected from the ADC output curve, and a mapping relationship between the corresponding matrix element value and the DAC digital code is established. The mapping relationship is recorded in the second lookup table of the i-th second modulator in the j-th dot product channel; The above process is repeated to obtain the second lookup tables of other second modulators.

23. The method according to claim 22, wherein Before subtracting the second set of data from the first set of data, it further includes: Normalize the first set of data and the second set of data using the target input power P ref such that the following formula (5) holds: And after subtracting the second set of data from the first set of data, Construct the ADC output curve corresponding to the DAC digital code with a second series of discrete data points.

24. The method according to claim 22, wherein It further includes: The ADC output value is scaled by multiplying it by a scaling factor, and the scaling factor is determined according to M, the matrix element, and the upper limit of the dynamic range.

25. The method according to claim 24, wherein It further includes: Before or after performing the scaling process, the ADC output value after multiplying the matrix element and the vector element is subtracted by the ADC output value after multiplying the matrix element and the vector element with a value of 0 to correct the result. Multiply the result of the correction by the scaling factor.

26. The method according to claim 24, wherein Further comprising: Before or after performing the scaling process, normalize the ADC output value using the target input power P ref such that the following equation (6) holds:

27. The method according to claim 26, wherein Further comprising: After performing the scaling process and normalizing the ADC output value using the target input power P ref After the normalization process, the ADC output value after multiplying the matrix element by the vector element is subtracted from the ADC output value after multiplying the matrix element by the vector element with a value of 0 to correct the result.

28. A computer program product comprising a computer program / instructions, characterized in that, When the computer program / instructions are executed by a processor, the steps of the method according to any one of claims 16 to 27 are implemented.

29. A computer-readable storage medium having computer programs / instructions stored thereon, characterized in that, When the computer program / instructions are executed by a processor, the steps of the method according to any one of claims 16 to 27 are implemented.

Citation Information

Patent Citations

  • Optoelectronic computing systems

    CN112424796A

  • Optoelectronic Computing Systems

    US20200110992A1

  • Optical modulaton for optoelectronic processing

    US20210173238A1