Optical computing method and system, and program product and storage medium therefor

By using lookup tables and monitoring modules in the optical computing system to modulate vector and matrix elements, the problems of individual differences and noise impacts of devices are solved, and high-precision optical computing calibration and simplified calibration process are realized.

WO2025157057A1PCT designated stage expired Publication Date: 2025-07-31SHANGHAI XIZHI TECH CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2025/072650
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-01-23
Filing Date
2025-01-16
Publication Date
2025-07-31

Smart Images

  • Figure CN2025072650_31072025_PF_FP_ABST
    Figure CN2025072650_31072025_PF_FP_ABST
Patent Text Reader

Abstract

Provided in the present invention are an optical computing system, a correction method and system, and a program product and a storage medium therefor. The optical computing system comprises: a plurality of first modulation modules, which are respectively configured with first lookup tables for vector element calibration, wherein each first modulation module is configured to use the first lookup table to modulate an inputted vector element into an optical wave to form an input optical vector; a plurality of second modulation modules, which are respectively configured with second lookup tables for matrix element calibration, wherein each second modulation module is configured to use the second lookup table to execute a multiplication operation on an inputted matrix element and the input optical vector in an optical domain; a plurality of accumulative summation modules, wherein each accumulative summation module is configured to execute an accumulative summation operation on the outputs of the plurality of second modulation modules; and a plurality of ADC modules, which are respectively configured to convert the outputs of the summation modules into digital signals. The optical computing system of the present invention can overcome a deviation caused by imperfect hardware or external interference, thereby improving the computation accuracy.
Need to check novelty before this filing date? Find Prior Art

Description

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

[0001] This application claims the benefit and priority of Chinese invention patent application number 202410097237X, filed on January 23, 2024, entitled “Optical computing method, system, program product and storage medium thereof,” the entire contents of which are incorporated herein by reference. Technical Field

[0002] 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

[0003] Optical computing is a new type of analog computing hardware that requires calibration before actual use to ensure accurate calculations. For optical computing chips, individual device variations due to process issues make it impossible to achieve global calibration and high-precision calculations based on calibration of individual devices. Furthermore, noise in the computing system can also affect calibration accuracy. This makes high-precision calibration of large-scale optical computing chips difficult.

[0004] How to effectively calibrate optical computing systems has become an urgent problem that needs to be solved in this field. Summary of the Invention

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

[0006] In one aspect, an embodiment of the present invention provides an optical computing system comprising:

[0007] a plurality of first modulation modules, each of which is configured with a first lookup table for vector element calibration, and the first modulation module is configured to use the first lookup table to modulate an input vector element into a light wave to form an input light vector;

[0008] a plurality of second modulation modules, each of the second modulation modules being configured with a second lookup table for matrix element calibration, the second modulation module being configured to perform a multiplication operation of an input matrix element and the input light vector in the optical domain using the second lookup table;

[0009] a plurality of accumulative summing modules, each of the accumulative summing modules being configured to perform an accumulative summing operation on the outputs of the plurality of second modulation modules;

[0010] A plurality of ADC modules are provided, each of the plurality of ADC modules being configured to convert outputs of the plurality of accumulating and summing modules into digital signals.

[0011] In some embodiments of the present invention, the system further comprises:

[0012] Optical input module, receives input light waves,

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

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

[0015] The first lookup table records the mapping relationship between DAC digital codes and vector element values.

[0016] The first DAC is configured to drive the first modulator according to the obtained DAC digital code to modulate the input vector element into the light wave to form the input light vector, wherein the DAC digital code mapped to the input vector element is obtained by calling the first lookup table to perform a lookup table mapping operation,

[0017] The use of 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 light vector, so that the following formula (1) holds: i =k i ×x i +b i (1)

[0018] 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.

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

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

[0021] The second lookup table records the mapping relationship between the DAC digital code and the matrix element value.

[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 mapped to the matrix element of the input is obtained by calling the second lookup table to perform a lookup table mapping operation, and the use of the obtained DAC digital code to drive the second modulator makes the results of the same calculation on different second modulators basically consistent.

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

[0024] A photoelectric conversion unit 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 is provided corresponding to each of the first modulation modules to monitor the output optical power of the corresponding modulation module;

[0026] Each of the first lookup tables is constructed in the following manner:

[0027] The first modulator is driven by each value of the input vector element, and the output optical power P of the first modulator at time t is monitored by the monitoring module. t , the output optical power P t Using the target input power P ref Perform normalization so that the following formula (2) holds true: i =αP t ×P ref / p t (2)

[0028] Obtain an optical power curve consisting of a series of discrete data points.

[0029] According to the optical power curve, for each input vector value between 0 and the maximum value, a corresponding ideal transmittance is determined, a 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 based on the selected data point.

[0030] The mapping relationship is recorded in the first lookup table.

[0031] In some embodiments of the present invention, each of the second lookup tables is constructed in the following manner:

[0032] 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):

[0033] Among them, 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 Corresponding to the i-th matrix element, b i represents the lowest optical power output by the first modulator i, 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;

[0034] Multiply the jth point channel in the N×N input matrix by the jth vector element x in the N vector elements. j Take a fixed value M, and other vector elements x i≠j Set to 0, and make the control signals of the second modulator corresponding to other vector elements I1, ...I n Set to fixed, i ranges from 0 to N-1, scans the control signal of the second modulator in the j-th point multiplication channel, and the ADC output value corresponding to the j-th point multiplication channel is the first group of data adc out1 ;

[0035] Set all N vector elements to 0, that is, x i is 0, other conditions remain unchanged, scan the control signal of the second modulator in the j-th point multiplication channel, then the ADC output value corresponding to the j-th point multiplication channel is the second set of data adc out2 ;

[0036] 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)

[0037] Construct an ADC consisting of a second series of discrete data points out1 -adc out2 ADC output curve with DAC digital code;

[0038] On the ADC output curve, a calibration dynamic range is set, an 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 the dynamic range is obtained, a data point closest to the output value is selected from the ADC output curve, a mapping relationship between the corresponding matrix element value and the DAC digital code is established based on the selected data point, and the mapping relationship is recorded in the second lookup table of the i-th second modulator in the j-th dot product channel;

[0039] Repeat the above process to obtain the second lookup tables of other second modulators.

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

[0041] The target input power P is used for the first and second sets of data. ref Perform normalization so that the following formula (5) holds true:

[0042] After subtracting the second set of data from the first set of data,

[0043] Construct a second series of discrete data points ADC output curve versus DAC digital code.

[0044] In some embodiments of the present invention, the system further comprises:

[0045] A post-processing module is used to perform post-processing on the ADC output value, wherein the post-processing includes multiplying the ADC output value by a scaling factor for scaling processing, and the scaling factor is determined according to M, matrix elements and an upper limit of a dynamic range.

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

[0047] Before or after performing the scaling process, the ADC output value after the matrix element is multiplied by the vector element having a value of 0 is subtracted from the ADC output value after the matrix element is multiplied by the vector element to correct the result;

[0048] The corrected result is multiplied by the scaling factor.

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

[0050] Before or after performing the scaling process, the target input power P is used for the ADC output value. ref Perform normalization so that the following formula (6) holds true:

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

[0052] After performing the scaling process and adopting the target input power P to the ADC output value ref After normalization, the ADC output value after multiplying the matrix element by the vector element with a value of 0 is subtracted from the ADC output value after multiplying the matrix element by the vector element to correct the result.

[0053] In some embodiments of the present invention, the first lookup table and / or the second lookup table are stored on a hard disk.

[0054] In some embodiments of the present invention, the system further includes a bistable trigger circuit, and the first lookup table and / or the second lookup table is stored in the bistable trigger circuit.

[0055] In another aspect, an embodiment of the present invention further provides a photoelectric computing method, comprising:

[0056] Obtain a plurality of vector elements, and obtain a first DAC digital code corresponding to each vector element mapped in the first lookup table through a first lookup table of a corresponding first modulation module;

[0057] According to the first DAC digital code corresponding to the vector element, the first modulation module is used to modulate the input vector element into a light wave to form an input light vector;

[0058] Obtain a plurality of matrix elements, and obtain a second DAC digital code corresponding to the matrix element mapped by the second lookup table through a second lookup table of a corresponding second modulation module for each matrix element;

[0059] performing a multiplication operation of the input matrix element and the input light vector using the second modulation module according to the second DAC digital code corresponding to the matrix element;

[0060] performing a cumulative summation operation on the output of the second modulator;

[0061] The result of the cumulative summation operation is converted into a digital signal.

[0062] In some embodiments of the present invention, the method further comprises:

[0063] Receive input light waves through the optical input module,

[0064] A light wave of a predetermined proportion α is separated from the input light wave by a first beam splitter and sent to a first monitoring module, wherein the first beam splitter includes an input waveguide, a first output waveguide, and a second output waveguide. The first beam splitter is configured to transmit the light wave of a predetermined proportion α separated 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 of the first output waveguide at time t. t .

[0065] In some embodiments of the present invention, using the first DAC digital code corresponding to the vector element and employing the first modulation module to modulate the input vector element into a light wave to form the input light vector includes:

[0066] 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 to the first modulator to form an input light vector.

[0067] The values ​​of the input vector elements and the optical power of the formed input light vector maintain a linear relationship, so that the following formula (1) holds true: i =k i ×x i +b i (1)

[0068] 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.

[0069] In some embodiments of the present invention, different optical modulation amplitudes k of the first modulator are i Same or different.

[0070] In some embodiments of the present invention, performing the multiplication operation of the input matrix element and the input light vector using the second modulation module according to the second DAC digital code corresponding to the matrix element includes:

[0071] 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 to the second modulator to perform the multiplication operation, wherein, 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 light vector so that the results of the same calculation on different second modulators are basically consistent.

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

[0073] Each of the first lookup tables is constructed in the following manner:

[0074] The first modulator is driven by each value of the input vector element, and the output optical power P of the first modulator at time t is monitored by the monitoring module. t , the target input power P is used for the output optical power ref Perform normalization so that the following formula (2) holds true: i =αP t ×P ref / p t (2)

[0075] Obtain an optical power curve consisting of a series of discrete data points.

[0076] According to the optical power curve, for each input vector value between 0 and the maximum value, a corresponding ideal transmittance is determined, a 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 based on the selected data point.

[0077] The mapping relationship is recorded in the first lookup table.

[0078] In some embodiments of the present invention, each of the second lookup tables is constructed in the following manner:

[0079] 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):

[0080] Among them, 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 iCorresponding to the i-th matrix element, b i represents the lowest optical power output by the first modulator i, 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;

[0081] Multiply the jth point channel in the N×N input matrix by the jth vector element x in the N vector elements. j Take a fixed value M, and other vector elements x i≠j Set to 0, and make the control signals of the second modulator corresponding to other vector elements I1, ...I n Set to fixed, the value range of i is 0 to N-1, scan the control signal of the second modulator in the j-th point multiplication channel, then the ADC output value corresponding to the j-th point multiplication channel is the first group of data adc out1 ;

[0082] Set all N vector elements to 0, that is, x i is 0, other conditions remain unchanged, scan the control signal of the second modulator in the j-th point multiplication channel, then the ADC output value corresponding to the j-th point multiplication channel is the second set of data adc out2 ;

[0083] 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)

[0084] Construct an ADC consisting of a second series of discrete data points out1 -adc out2 ADC output curve with DAC digital code;

[0085] On the ADC output curve, a calibration dynamic range is set, an 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 the dynamic range is obtained, a data point closest to the output value is selected from the ADC output curve, a mapping relationship between the corresponding matrix element value and the DAC digital code is established based on the selected data point, and the mapping relationship is recorded in the second lookup table of the i-th second modulator in the j-th dot product channel;

[0086] Repeat the above process to obtain the second lookup tables of other second modulators.

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

[0088] The target input power P is used for the first and second sets of data. ref Perform normalization so that the following formula (5) holds true:

[0089] After subtracting the second set of data from the first set of data,

[0090] Construct a second series of discrete data points ADC output curve versus DAC digital code.

[0091] In some embodiments of the present invention, the method further comprises:

[0092] The ADC output value is multiplied by a scaling factor for scaling processing, where the scaling factor is determined according to M, matrix elements, and an upper limit of a dynamic range.

[0093] In some embodiments of the present invention, the method further comprises:

[0094] Before or after performing the scaling process, the ADC output value after the matrix element is multiplied by the vector element having a value of 0 is subtracted from the ADC output value after the matrix element is multiplied by the vector element to correct the result;

[0095] The corrected result is multiplied by the scaling factor.

[0096] In some embodiments of the present invention, the method further comprises:

[0097] Before or after performing the scaling process, the target input power P is used for the ADC output value. ref Perform normalization so that the following formula (6) holds true:

[0098] In some embodiments of the present invention, the method further comprises:

[0099] After performing the scaling process and adopting the target input power P to the ADC output value ref After normalization, the ADC output value after multiplying the matrix element by the vector element with a value of 0 is subtracted from the ADC output value after multiplying the matrix element by the vector element to correct the result.

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

[0101] Furthermore, an embodiment of the present invention further provides a computer-readable storage medium having a computer program / instruction stored thereon, wherein the computer program / instruction, when executed by a processor, implements the steps of the method described in any embodiment or example of the present invention.

[0102] According to the above-described embodiments of the present invention, each vector element or matrix element can be independently calibrated to obtain its own lookup table, reducing the difficulty of calibration. The present invention can calibrate chips with large manufacturing deviations. Factors such as unstable light source output, varying extinction performance of modulators, varying linear coefficients of modulators, uneven optical replication module spectroscopy, varying waveguide or other transmission path losses, and unavoidable system dark current are all compensated for through the first and second lookup tables of the present invention. This means that the calibration method of the present invention is highly tolerant to device differences and produces highly accurate calculation results. The present invention integrates the differences between the input light source, optical link, and device performance, calibrating the entire system as a single element, simplifying the calibration process. Furthermore, the present invention does not perform additional spectroscopic monitoring of matrix elements for calibration. Instead, it uses the output data of the output module ADC and / or post-processing module of the computing system's point product channel to directly calibrate the matrix elements, avoiding the impact of differences in additional calibration links on calibration accuracy.

[0103] The various aspects, features, advantages, etc. of the embodiments of the present invention are described in detail below with reference to the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0104] FIG. 1 is a block diagram of an optical computing system according to an exemplary embodiment of the present invention.

[0105] FIG2 shows an architecture diagram of a vector modulation module according to an embodiment of the present invention.

[0106] FIG3 shows an example of a first modulator in a vector modulation module according to an embodiment of the present invention.

[0107] FIG4 a shows the real-time monitoring data of the vector channel, FIG4 b shows the disturbance of the optical power collected synchronously, and FIG4 c shows the data after the optical power is normalized.

[0108] FIG. 5 shows an example of a “value-DAC1 code” lookup table established corresponding to a single DAC1.

[0109] FIG6 shows an architecture diagram of a weight modulation module according to an embodiment of the present invention.

[0110] FIG. 7 shows an example of a matrix element modulator in a weight modulation module according to an embodiment of the present invention.

[0111] FIG. 8 shows an example of scan data after matrix elements are normalized.

[0112] FIG9 shows an example of a matrix element lookup table. DETAILED DESCRIPTION

[0113] 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 forms and should not be construed as limited to the embodiments shown herein.

[0114] The terms used herein are for the purpose of describing specific embodiments, rather than for limiting the present invention. As used herein, the singular forms "one" and "a kind of" are intended to also include plural forms, unless the context clearly indicates otherwise. It should also be understood that the terms "comprise," "include," and "have" specify the presence of stated features, integral bodies, steps, operations, elements, and / or parts when used herein, but do not exclude the presence or addition of one or more other features, integral bodies, steps, operations, elements, parts, and / or their collections. 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..." modify the entire list of elements when preceding a list of elements, rather than modifying the individual elements of the list.

[0115] As used herein, the terms "substantially," "about," and similar terms are used as terms of approximation rather than as terms of degree, and are intended to take into account the inherent variations in measurements or calculations that those of ordinary skill in the art would recognize.

[0116] Unless otherwise expressly stated, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the present invention belongs. It should also be understood that the terms (such as those defined in commonly used dictionaries) should be interpreted as having the same or similar meaning as they have in the context of the relevant art and / or this specification, and should not be interpreted rigidly or inflexibly.

[0117] Figure 1 shows a typical non-coherent multiplier structure of an optical matrix multiplier system. As an example of the optical computing system of the present invention, the optical matrix multiplier system includes: a first modulation module (e.g., vector modulation module 210) for modulating vector elements, a second modulation module (e.g., weight modulation module 220) corresponding to the modulation of matrix elements and used for matrix multiplication operations, a summation and accumulation module, and an analog-to-digital converter module (e.g., ADC 240). The summation and accumulation module can be an electrical summation and accumulation module (e.g., TIA 230) or an optical summation and accumulation module. The embodiments of the present invention are described using the electrical summation and accumulation module as an example. For N×N matrix operations, it can include N vector modulation modules 210, i.e., vector modulation modules 1 to n, and up to N×N weight modulation modules, i.e., weight modulation modules 11 to nn. Each vector modulation module has an optical replication module at its optical output end, which splits the vector modulation module's output optical vector signal into a maximum of N copies of the vector optical signal. At least one copy of the vector optical signal is received by the weight modulation module and multiplied with the matrix elements. The multiplication results of the same point multiplication channel are transmitted to the summation and accumulation module for summation and accumulation. The output of the summation and accumulation module is transmitted to the ADC module for conversion into a digital signal. In Figure 1, the blue lines represent the optical path, and the black lines represent the electrical path. In this exemplary embodiment, an optical wave is input through an optical input module (e.g., optical I / O 201). The input light wave is evenly split into n parts by a 1×N beam splitter 203 and respectively input into n vector modulation modules 1 to n. The N vector modulation modules 1 to n respectively modulate the n vector elements into the input light wave to obtain n input light vectors. The input light vector output by each vector modulation module is evenly split into N parts by a 1×N beam splitter 205 (which serves as an example of the optical replication module) and respectively input into a row of n weight modulation modules in an N×N matrix. For example, the output of the vector modulation module 1 is input to the weight modulation modules 11, 21, ..., n1 respectively via the 1×N beam splitter 205. Each weight modulation module modulates the input light vector according to the input matrix element (e.g., weight) to perform a multiplication operation of the vector element and the matrix element in the optical domain. Each column of the N×N matrix is ​​connected to a transimpedance amplifier (TIA) 230, and the output of the weight modulation module of the corresponding column is accumulated and summed in the electrical domain by the TIA 230. The result of the electrical domain accumulation and summation is converted into a digital signal by the ADC 240. The digital signal is post-processed by a post-processing module not shown to obtain the final calculation result. A beam splitter type 1 202 (which serves as an example of a first beam splitter) is provided between the optical I / O 201 and the 1×N beam splitter 203 to connect the MPD module 206 (which serves as 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 type 1 204 is provided between each vector modulation module 210 and the corresponding 1×N beam splitter 205 to connect an MPD module 207 (which serves as 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 .

[0118] In the optical computing system composed of the optical matrix multiplier system shown in FIG1 , when performing calculations, the calculated data, such as x0, ..., x i ,…x n , and w 00 ,…w ij ...w(n-1)(n-1), etc., through modulators that encode the intensity or phase of light, allowing the corresponding calculations to be performed during the propagation of light across the entire link. In a computing system, a large number of optical modulators modulate the aforementioned elements. Due to differences in manufacturing processes, it's difficult for each modulator to achieve completely consistent performance, and the modulation amplitudes of the optical modulators vary. Between these components, light generally relies on passive devices for signal propagation or replication. For example, waveguides are required to transmit signals, and passive beam splitting devices are needed to replicate the signals. To ensure computational accuracy, the optical replication module, which splits the output vector optical signal of the vector modulation module, must split the vector optical signal into multiple equal copies. However, these devices are not perfect. The transmission loss of each waveguide segment is not completely uniform, the passive optical replication module cannot achieve perfect signal division, and system noise can also affect the system's computations, all of which hinder computational accuracy.

[0119] In view of this, in this embodiment, each of the vector modulation modules 210 is configured with a first lookup table for vector element calibration, and the vector modulation module 210 is configured to use the first lookup table to modulate the input vector element into the light wave to form the input light vector. As shown in Figure 2, the vector modulation module 210 has a digital-to-analog converter (DAC) 211 (which serves as an example of a first DAC) and a Mach-Zehnder modulator (MZM) 212 (which serves as an example of a first modulator), and the first lookup table, i.e., LUT 213, records the mapping relationship between the DAC digital code and the vector element value. The DAC 211 is configured to drive the MZM 212 according to the obtained DAC digital code to modulate the input vector element into the light wave to form the input light vector, wherein the DAC digital code of the input vector element mapping is obtained by calling the LUT 213 to perform the lookup table mapping operation, and the operation of performing the lookup table mapping maintains a linear relationship between the value of the input vector element and the formed input light vector, so that P i =k i ×x i +bi Established, where x i Represents the value of a 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 first modulator i, k i represents the linear coefficient and k i ×(2 n -1) corresponds to the optical modulation amplitude of the i-th first modulator.

[0120] Each first modulation module 100 has a first DAC and a first modulator, and the first lookup 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 the light wave to form an input light vector, wherein the DAC digital code mapped to the input vector element is obtained by calling the first lookup table to perform a lookup table mapping operation. The operation of performing the lookup table mapping maintains a linear relationship between the value of the input vector element and the formed input light vector, so that the following formula (1) holds: P i =k i ×x i +b i (1),

[0121] where x i Represents the value of a vector element, P i represents the output optical power of the first modulator i, b i represents the lowest optical power output by the first modulator i, 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 is provided for each of the vector modulation modules to monitor the output optical power of the corresponding modulation module. Each of the first lookup tables (LUT 213) is constructed in the following manner:

[0122] The first modulator is driven by each value of the input vector element, and the output optical power P of the first modulator at time t is monitored by the monitoring module. t , the target input power P is used for the output optical power ref Perform normalization so that the following formula (2) holds true: i =αP t ×P ref / p t (2)

[0123] Obtain an optical power curve consisting of a series of discrete data points.

[0124] According to the optical power curve, for each input vector value between 0 and the maximum value, a corresponding ideal transmittance is determined, a 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 based on the selected data point.

[0125] The mapping relationship is recorded in the first lookup table.

[0126] In some embodiments, the modulator of the vector modulation module can adopt a multi-segment design, a differential design, or a single-ended design. As shown in FIG3 , a two-segment modulator with two independently driven arms is used as an example to illustrate the construction of the first lookup table, namely, LUT 213 .

[0127] In Figure 3, both the upper and lower arms of the modulator include one or more phase shifters. This embodiment uses the example of the upper and lower arms each including two phase shifters, namely upper arm segment 0 and upper arm segment 1, and lower arm segment 0 and lower arm segment 1. Segment 0 is assumed to be the high-speed modulation portion, and segment 1 is the low-speed modulation portion for adjusting the operating point. The specific process is as follows:

[0128] a) Adjustment of the operating point: Lock the digital codes of DAC1 and DAC2 at a fixed position according to the operating mode, and scan DAC3 and DAC4 in turn to obtain the following curves. Taking Figures 4a to 4c as examples, the horizontal axis represents the digital code of DAC3 or DAC4, and the vertical axis represents 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 reading of the MPD module 206 at the optical I / O is also monitored. Figure 4a shows the real-time monitoring data of the vector channel, Figure 4b shows the disturbance of the optical power collected synchronously, and Figure 4c shows the data after normalization of the optical power. It can be seen that the burr on the DAC4 curve at around 3200 has disappeared. This burr mainly comes from the disturbance of the optical power. The normalization process compensates for the error caused by the unstable input optical power.

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

[0130] This embodiment uses complete numerical calibration to establish a lookup table. In this embodiment, a computing system with a vector element precision of 8 int is used as an example. The minimum value in the curve is mapped to 0, and the maximum value (which can also be any custom point) is mapped to 255. The corresponding step is (max-min) / 255, and the corresponding ideal transmittance is min+Vi *step,V i represents the i-th vector element. Among the discrete data points in Figure 4c, the point closest to the ideal transmittance is found to construct a lookup table. Figure 5 shows a "value-DAC1 code" lookup table established for a single DAC1. In other embodiments, incomplete numerical calibration or other methods can also be used to establish the lookup table.

[0131] In addition, for larger chips, due to the difference in modulator process consistency, the linear coefficient k between different first modulators i Usually they are different, which leads to different optical modulation amplitudes. If calculated directly, the same calculation will have different results when executed through different point multiplication channels, which deviates greatly from the actual calculation results.

[0132] In view of this, in the present 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 use the second lookup table to perform a multiplication operation of the input matrix element and the input light vector. As shown in FIG6 , each of the weight modulation modules 220 has a DAC 221, an MZM 222, and photodiodes (PDs) 224 and 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, wherein the DAC digital code of the input matrix element mapping is obtained by calling the LUT 226 to perform the lookup table mapping operation, and the operation of performing the lookup table mapping makes W'=W / k i = ... i Therefore, the same calculation xw is performed on different dot product channels, and the results are basically equal. The exchange of element multiplication has no effect on the dot product result, such as: [x1,x2,x3,…][y1,y2,y3,…]=[x2,x1,x3,…][y2,y1,y3,…]

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

[0134] Among them, t i The link loss corresponds to the link between the first modulator (vector modulator) and the second modulator (matrix element modulator), which is generally contributed by beam splitting, waveguide insertion loss, etc. are the outputs of the upper and lower arms of the matrix element modulator, where Indicates the responsivity of photoelectric conversion (PD photocurrent conversion efficiency) that may be required, is the transmittance of the output of the matrix element modulator, I1,…I n These are several control signals for the matrix elements, usually two.

[0135] I di Assuming the presence of dark current due to photoelectric conversion, G is the gain of the TIA, and F is the transfer function corresponding to the ADC conversion, which is assumed to be linear and satisfy F(x1)+F(x2)=F(x1+x2). Without considering the influence of temperature (the photoelectric conversion responsivity is mainly affected by temperature), It is only related to the input signal of the matrix element modulator (that is, the modulator contained in the weight modulation module), which can be regarded as f i (I1,…I n ). In addition, if the P in step 1 is i Substituting into the above formula, we can get the following formula (02)

[0136] where x i is a vector element.

[0137] 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 lookup table, the matrix element W = f i (I1,…I n ), the result of multiplication of matrix elements and vector elements f i (I1,…I n )×(k i ×x i +b i )=k i ×W×x i +W×b i Compared with the actual result W×x i In addition to the light introduced by the imperfect extinction of the first modulator (ie, the modulator included in the vector modulation module), there is also k i Scaling. And because each vector element corresponds to k i The scaling cannot be compensated by the corresponding scaling in the post-processing module after summing and accumulating, which will result in different outputs of the same calculation in different point multiplication channels. In the present invention, a second lookup table is added to the system, and after the matrix element W is input, the corresponding DAC digital code is mapped through the second lookup table to obtain W'=W / k i , so that the control signal output by ADC is consistent with W / k i Correspondingly, that is, W / ki =f i (I1,…I n ), at this time, the multiplication result f of the matrix element and the vector element is i (I1,…I n )×(k i ×x i +b i )=W×x i +W / k i ×b i . And W / k i ×b i This can be removed by subtracting the vector value from the input.

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

[0139] In some embodiments, the second lookup table is constructed as follows:

[0140] 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):

[0141] Among them, 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 Corresponding to the i-th matrix element, b i represents the lowest optical power output by the first modulator i, 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;

[0142] Multiply the jth point channel in the N×N input matrix by the jth vector element x in the N vector elements. j Take a fixed value M, and other vector elements x i≠j Set to 0, and make the control signals of the second modulator corresponding to other vector elements I1, ...I n Set to fixed, the value range of i is 0 to N-1, scan the control signal of the second modulator in the j-th point multiplication channel, then the ADC output value corresponding to the j-th point multiplication channel is the first group of data adc out1 ;

[0143] Subtract all the x elements of N vectors i Set to 0, other conditions remain unchanged, scan the control signal of the second modulator in the j-th point multiplication channel, then the second group of data adc of the ADC output value corresponding to the j-th point multiplication channel out2 ;

[0144] 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)

[0145] Construct an ADC consisting of a second series of discrete data points out1 -adc out2 ADC output curve with DAC digital code;

[0146] On the ADC output curve, a calibration dynamic range is set, an 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 the dynamic range is obtained, a data point closest to the output value is selected from the ADC output curve, a mapping relationship between the corresponding matrix element value and the DAC digital code is established based on the selected data point, and the mapping relationship is recorded in the second lookup table of the i-th second modulator in the j-th dot product channel;

[0147] Repeat the above process to obtain the second lookup tables of other second modulators.

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

[0149] The target input power P is used for the first and second sets of data. ref Perform normalization so that the following formula (5) holds true:

[0150] After subtracting the second set of data from the first set of data, a second series of discrete data points is constructed. ADC output curve versus DAC digital code.

[0151] The present invention does not configure an additional monitoring module for calibration for the second modulation module, but uses the output data of the output module ADC and / or the post-processing module of the computing system's point multiplication channel to directly complete the calibration of the matrix elements to obtain the second lookup table, which simplifies the system setting and avoids the influence of the difference of the additional calibration link on the calibration accuracy. At the same time, the construction of the second lookup 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 loss of the waveguide and the optical replication module, further improving the calculation accuracy of the computing system.

[0152] In some embodiments, it is assumed that the modulators corresponding to the matrix elements are all MZMs with two arms working independently, which can be adjusted independently. The general structure is shown in Figure 7. DAC1 and DAC2 are not allowed to work at the same time, but work in turns; the matrix elements are still 8-bit signed quantization. According to the above, as shown in Figure 8, calibrating a matrix element requires scanning two sets of data separately: the vector element value corresponding to the matrix element channel is set to 0, and the data obtained by scanning DAC1 and DAC2 are data1 (DAC1, 0) and data2 (0, DAC2); the vector element corresponding to the matrix element channel is set to 255, and the data obtained by scanning DAC1 and DAC2 are data3 (DAC1, 255) and data4 (255, DAC2). The maximum and minimum values ​​are selected to calibrate the matrix elements, because in the vector element calibration, 0 and 255 are two values ​​​​that are calibrated without deviation in theory, corresponding to the minimum transmittance and the maximum transmittance respectively. According to the above, take norm(data3, P ref )-norm(data1,P ref ) and norm(data4, P ref )-norm(data2,P ref ) Two sets of data are calibrated.

[0153] Mathematically, these four sets of data correspond to the dot product results of 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…]. Here, W1 to W4 will be quantized to the range of [-128,127]. The corresponding lookup table is shown in Figure 9.

[0154] In this example, the system further includes a post-processing module (not shown in the figure) for performing post-processing on the ADC output values, wherein the post-processing includes multiplying the ADC output values ​​by a scaling factor for scaling, and the scaling factor is determined based on M, matrix elements, and the upper limit of the dynamic range.

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

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

[0157] The dynamic range selection principles are as follows:

[0158] Assume that all weight elements are n-bit signed, corresponding to [-2 n-1 ,2 n-1 -1], scan the value range of each point multiplication channel Out1-Out2 one by one to obtain the relationship between the value and DAC code, select a maximum dynamic range so that the Out1-Out2 value within the maximum dynamic range can be obtained in each point multiplication channel. Select the minimum value of the actual dynamic range in the maximum dynamic range -A j , then the actual dynamic range used is At this time, the upper limit of the dynamic range is at this time, but

[0159] The dynamic range is divided into n-1 parts along the Y axis, the output value of the product of each weight value and MAX within the dynamic range is obtained, and the DAC digital code corresponding to each output value is obtained to obtain a lookup table.

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

[0161] In some embodiments, due to the finite extinction ratio, light may still enter the computing system when all vectors are 0, so the vector element x in the computing input is i When performing matrix-vector multiplication with matrix element W, use W and x i Subtract x from the result of the calculation i The result of the calculation of matrix elements when all are 0, that is, W@x i -W@0 is used to correct the result. The post-processing module scales the corrected result to obtain the final calculation result.

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

[0163] Before or after performing the scaling process, the target input power P is used for the ADC output value. ref Perform normalization so that the following formula (6) holds true:

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

[0165] After performing the scaling process and adopting the target input power P to the ADC output value ref After normalization, the ADC output value after multiplying the matrix element by the vector element with a value of 0 is subtracted from the ADC output value after multiplying the matrix element by the vector element to correct the result.

[0166] In some embodiments, a flip-flop (bistable trigger) circuit can be used as the hardware for storing the LUT, which is arranged near the DAC and can be regarded as a micro preprocessor. The flip-flop circuit has the beneficial effect of extremely low latency. In an optional embodiment, the lookup table is written on the hard disk. After the system is in operation, the lookup table is loaded into the RAM. Each calculation is first performed by other processing units (such as the host CPU, coprocessor, etc.) to perform the lookup table mapping to obtain the corresponding DAC digital code, and then these digital codes are given to the optical computing hardware (i.e., the first modulator or the second modulator). Writing the lookup table on the hard disk does not generate additional volume and process costs for the computing system, and is simple and convenient.

[0167] The above describes the implementation or embodiment of the optical computing system using the new calibration method of the present invention. According to the above implementation, it can be understood that the optical computing method of the present invention may include: obtaining multiple vector elements, each vector element passes through the first lookup table of the corresponding first modulation module to obtain the first DAC digital code corresponding to the vector element mapped in the first lookup table; according to the first DAC digital code corresponding to the vector element, using the first modulation module to modulate the input vector element into the light wave to form an input light vector; obtaining multiple matrix elements, each matrix element passes through the second lookup table of the corresponding second modulation module to obtain the second DAC digital code corresponding to the matrix element mapped in the second lookup table; according to the second DAC digital code corresponding to the matrix element, using the second modulation module to perform a multiplication operation of the input matrix element and the input light vector; performing an accumulation and summation operation on the output of the second modulator; and converting the result of the accumulation and summation operation into a digital signal.

[0168] In some embodiments, the method further includes: receiving an input light wave through an optical input module; splitting a light wave of a predetermined proportion α from the input light wave through a first beam splitting device to a first monitoring module, wherein the first beam splitting device includes an input waveguide and a first output waveguide and a second output waveguide, and the first beam splitting device is configured to transmit the light wave of the predetermined proportion α 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 of the first output waveguide at time t t .

[0169] In some embodiments, using the first DAC digital code corresponding to the vector element and employing the first modulation module to modulate the input vector element into a light wave to form the input light vector includes:

[0170] 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 to the first modulator to form an input light vector.

[0171] The values ​​of the input vector elements and the optical power of the formed input light vector maintain a linear relationship, so that the following formula (1) holds true: i =k i ×x i +b i (1)

[0172] 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. The optical modulation amplitudes ki of different first modulators are the same or different.

[0173] In some embodiments, performing the multiplication operation of the input matrix element and the input light vector using the second lookup table includes: obtaining a DAC digital code mapped to the input matrix element by calling the second lookup table to perform a lookup table mapping operation; and driving the second modulator for performing the multiplication operation according to the obtained DAC digital code mapped to the matrix element. The operation of performing the lookup table mapping makes W'=W / k i holds true, W' represents the matrix element after calibration, and W represents the input matrix element.

[0174] In some embodiments, different optical modulation amplitudes k of the first modulator are i Same or different.

[0175] In some embodiments, a second monitoring module is provided for each of the first modulation modules to monitor the output optical power of the corresponding modulation module. The first lookup table is constructed in the following manner:

[0176] The first modulator is driven by each value of the input vector element, and the output optical power P of the first modulator at time t is monitored by the monitoring module. t , the target input power P is used for the output optical power ref Perform normalization so that the following formula (2) holds true: i =αP t ×P ref / p t (2)

[0177] Obtain an optical power curve consisting of a series of discrete data points.

[0178] According to the optical power curve, for each input vector value between 0 and the maximum value, a corresponding ideal transmittance is determined, a 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 based on the selected data point.

[0179] The mapping relationship is recorded in the first lookup table.

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

[0181] 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 to the second modulator to perform the multiplication operation, wherein, 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 light vector so that the results of the same calculation on different second modulators are basically consistent.

[0182] In some embodiments, the second lookup table is constructed as follows:

[0183] 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):

[0184] Among them, 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 Corresponding to the i-th matrix element, b i represents the lowest optical power output by the first modulator i, 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;

[0185] Multiply the jth point channel in the N×N input matrix by the jth vector element x in the N vector elements. j Take a fixed value M, and other vector elements x i≠j Set to 0, and make the control signals of the second modulator corresponding to other vector elements I1, ...I n Set to fixed, the value range of i is 0 to N-1, scan the control signal of the second modulator in the j-th point multiplication channel, then the ADC output value corresponding to the j-th point multiplication channel is the first group of data adc out1 ;

[0186] Set all N vector elements to 0, that is, x i is 0, other conditions remain unchanged, scan the control signal of the second modulator in the j-th point multiplication channel, then the ADC output value corresponding to the j-th point multiplication channel is the second set of data adc out2 ;

[0187] 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)

[0188] Construct an ADC consisting of a second series of discrete data points out1 -adc out2 ADC output curve with DAC digital code;

[0189] On the ADC output curve, a calibration dynamic range is set, an 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 the dynamic range is obtained, a data point closest to the output value is selected from the ADC output curve, a mapping relationship between the corresponding matrix element value and the DAC digital code is established based on the selected data point, and the mapping relationship is recorded in the second lookup table of the i-th second modulator in the j-th dot product channel;

[0190] Repeat the above process to obtain the second lookup tables of other second modulators.

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

[0192] The target input power P is used for the first and second sets of data. ref Perform normalization so that the following formula (5) holds true:

[0193] After subtracting the second set of data from the first set of data, a second series of discrete data points is constructed. ADC output curve versus DAC digital code.

[0194] In some embodiments, the method further includes: multiplying the ADC output value by a scaling factor for scaling, where the scaling factor is determined according to M, matrix elements, and an upper limit of a dynamic range.

[0195] In some embodiments, the method further includes: before or after performing the scaling process, subtracting 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 to correct the result; and multiplying the corrected result by the scaling coefficient.

[0196] In some embodiments, before or after performing the scaling process, the ADC output value is subjected to a target input power P ref Perform normalization so that the following formula (6) holds true:

[0197] In some embodiments, after performing the scaling process and applying the target input power P to the ADC output value, ref After normalization, the ADC output value after multiplying the matrix element by the vector element with a value of 0 is subtracted from the ADC output value after multiplying the matrix element by the vector element to correct the result.

[0198] It should be understood that some or all of the steps described in the various embodiments of the present invention can be implemented by one or more processors executing computer programs / instructions. Therefore, embodiments of the present invention further provide a computer program product comprising a computer program / instructions, which, when executed by a processor, implement the steps described in any of the aforementioned embodiments. Furthermore, embodiments of the present invention further provide a computer-readable storage medium having a computer program / instructions stored thereon, characterized in that, when executed by a processor, the computer program / instructions implement the steps described in any of the aforementioned embodiments.

[0199] Those skilled in the art should understand that what is disclosed above is merely an embodiment of the present invention, and certainly cannot be used to limit the scope of rights for which the present invention is requested for patent protection. Equivalent changes made based on the embodiment 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 of the first output waveguide at time t. t .

3. The optical computing system according to claim 2, wherein 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 different ones of the 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 on different second modulators substantially consistent.

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 corresponding to 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 according to the selected data point, 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 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, where i ranges 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. Take the output value within this dynamic range of the product of each matrix element value and M on the i-th second modulator in the j-th dot product channel. 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 lookup table of the i-th second modulator in the j-th dot product channel; Repeat the above process to obtain the second lookup 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: Normalize the first set of data and the second set of data using the target input power P ref so that the following formula (5) holds: And after subtracting the second set of data from the first set of data, Constructed from a second series of discrete data points The ADC output curve of the DAC digital code.

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, wherein 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, wherein 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 lookup table and / or the second lookup table are 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 lookup table and / or the second lookup table are stored in this bistable flip-flop circuit.

16. An optoelectronic computing method, characterized in that, It includes: Obtain multiple vector elements. Each vector element obtains the corresponding first DAC digital code mapped in the first lookup table of the corresponding first modulation module through the first lookup table; 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 multiple matrix elements. Each matrix element obtains the corresponding second DAC digital code mapped in the second lookup table of the corresponding second modulation module through the second lookup table; 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 accumulative summation operation on the output of the second modulator; Convert the result of the accumulative 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 separated from the input light wave by a first beam splitting device and transmitted 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 separated 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 step of using the first modulation module to modulate the input vector element into an optical wave to form an input optical vector according to the first DAC digital code corresponding to the vector element 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 the 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 step of performing the multiplication operation of the input matrix element and the input optical vector 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, performing the multiplication operation of the input matrix element and the input optical vector 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, wherein 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 , 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 look-up table.

22. The method according to claim 20, 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 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 ; 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 ; Subtract the second group of data from the first group 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, a calibration dynamic range is set. 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 is 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 according to the selected data point. The mapping relationship is recorded 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.

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

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 from the ADC output value after multiplying the matrix element and the vector element with a value of 0 to correct the result; Multiply the corrected result by the scaling factor.

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

27. The method according to claim 26, wherein It 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 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

  • Method and device for forming and observing stereo images having maximum spatial resolution

    US20130208100A1

  • Optoelectronic Computing Systems

    US20200110992A1

  • Data processing method and system

    WO2023174072A1