WO2023003246A1 - 멀티레벨 룩업테이블을 이용한 함수근사 장치 및 방법 - Google Patents
멀티레벨 룩업테이블을 이용한 함수근사 장치 및 방법 Download PDFInfo
- Publication number
- WO2023003246A1 WO2023003246A1 PCT/KR2022/010127 KR2022010127W WO2023003246A1 WO 2023003246 A1 WO2023003246 A1 WO 2023003246A1 KR 2022010127 W KR2022010127 W KR 2022010127W WO 2023003246 A1 WO2023003246 A1 WO 2023003246A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- lut
- approximation
- function
- mapping information
- segments
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 230000006870 function Effects 0.000 claims abstract description 169
- 238000013507 mapping Methods 0.000 claims description 88
- 230000008569 process Effects 0.000 claims description 17
- 238000000605 extraction Methods 0.000 claims description 8
- 230000008859 change Effects 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 16
- 239000000284 extract Substances 0.000 description 8
- 230000001788 irregular Effects 0.000 description 7
- 238000012886 linear function Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/17—Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method
- G06F17/175—Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method of multidimensional data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/17—Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/02—Digital function generators
- G06F1/03—Digital function generators working, at least partly, by table look-up
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/01—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
- G06F5/012—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising in floating-point computations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
Definitions
- the present disclosure relates to a function approximation apparatus and method using a multilevel lookup table.
- various non-linear functions are used for calculation (eg, exp, log, sqrt, tanh, sigmoid, mish, swish, etc.).
- nonlinear functions in order to calculate an accurate function value, a lot of time may be consumed in the calculation, or a large area may be required when implemented in HW.
- An approximation method based on equal segments is used, which sets N to 2 N (where N is a natural number).
- N is a natural number
- upper N bits may be used as an address for accessing memory.
- the approximation based on the equal segment has the advantage that it is possible to read the approximation coefficient for the corresponding segment from the LUT (Look-up Table) as illustrated in FIG. 14 using the upper N bits. .
- the approximation coefficient includes a slope and an offset in the case of linear approximation.
- Approximation based on uniform segments can reduce the approximation error as the number of segments increases for a given function, but since the size of the LUT for storing approximation coefficients increases in proportion to the number of segments, The problem is that the number may be limited.
- NVDLA an open source Artificial Intelligence processor published by NVIDIA
- NVIDIA is a linear approximation based on two LUTs, as illustrated in FIGS. 15 and 16, in order to reduce approximation errors.
- method (refer to 'http://nvdla.org/hw/v1/ias/lut-programming.html').
- the first LUT linearly approximates the given function by dividing the entire input interval of the function into L parts
- the second LUT linearly approximates the given function by dividing the input interval to be calculated more precisely into J parts.
- the first LUT linearly approximates a function by equally dividing the entire given input section into 8 sections (S A0 to S A7 ), and the second LUT divides a part of the input section into 20 sections.
- the function is approximated by equally dividing into subintervals (S B0 to S B19 ).
- the variation of the function in one sub-period, illustrated in FIG. 15, is smaller than the variation in the function seen in one segment, illustrated in FIG. 13, so that linear approximation based on two LUTs can be facilitated.
- the total size of the two LUTs can store approximation coefficients for a total of 28 (8 + 20) segments, as illustrated in FIG. 16. is the size of
- NVDLA For a given input variable value, NVDLA first calculates two values simultaneously using two LUTs. Next, when the input variable value is included in the range that the second LUT can approximate, a value calculated based on the second LUT is selected as an output, and when not included in the range, a value calculated based on the first LUT is selected. A value is selected as an output.
- the piece-by-piece linear approximation based on these two LUTs is effective in reducing approximation error when a highly variable part exists in only a part of the entire input range of a given function, but when there are several parts with a large change Or, even if it exists in a part, if the change is very severe, there is a problem that the approximation error cannot be effectively reduced.
- An object of the present invention is to provide a function approximation apparatus and method for approximating a function value for a function in multiple stages using a multi-level look-up table (LUT) with different lengths of .
- LUT multi-level look-up table
- obtaining input variable values for a function obtaining input variable values for a function; Extracting an approximation coefficient for the function using a multi-level look-up table (LUT) based on the input variable value, wherein the multi-level LUT is K (K is a natural number greater than or equal to 2) contains two LUTs; And calculating a function value for the input variable value using the approximation coefficient, wherein each of the K LUTs has a different size of supported segments, and the kth (where k is 1 to K- natural number up to 1) The size of the segment supported by the LUT is larger than the size of the segment supported by the (k+1)th LUT, and the (k+1)th LUT is determined based on the mapping information provided by the kth LUT. It provides a function approximation method for each interval, characterized in that it approaches.
- an input unit for obtaining input variable values for a function
- a memory including a multi-level look-up table (LUT), wherein the multi-level LUT includes K (K is a natural number equal to or greater than 2) LUTs; a coefficient extraction unit extracting approximate coefficients for the function using the multi-level LUT based on the input variable values; And a function value generator for calculating a function value for the input variable value using the approximation coefficient, wherein each of the K LUTs has a different size of a segment to support, and a kth (where k is from 1 to 1).
- a natural number up to K-1 The size of a segment supported by the LUT is larger than the size of a segment supported by the (k+1)th LUT, and based on the mapping information provided by the kth LUT, the (k+1) A function approximation device for each section, characterized in that it approaches the LUT, is provided.
- a computer-readable recording medium in which instructions are stored, wherein the instructions, when executed by the computer, cause the computer to: obtain input variable values for a function; Extracting an approximation coefficient for the function using a multi-level look-up table (LUT) based on the input variable value, wherein the multi-level LUT is K (K is a natural number greater than or equal to 2) contains two LUTs; And a process of calculating a function value for the input variable value using the approximation coefficient, wherein each of the K LUTs has a different size of supported segments, and the kth (where k is 1 to K natural number up to -1) The size of the segment supported by the LUT is greater than the size of the segment supported by the (k+1)th LUT, and the (k+1)th LUT based on the mapping information provided by the kth LUT
- a computer-readable recording medium characterized in that for accessing to provide.
- a function approximation device and method for approximating a function value for a function in multiple stages using a multi-level LUT in which the length of a segment is set differently according to the amount of change of a nonlinear function By providing, There is an effect that it is possible to reduce an approximation error by using a small-sized LUT.
- FIG. 1 is a schematic block diagram of a system equipped with a function approximation device according to an embodiment of the present disclosure.
- FIG. 2 is a schematic block diagram of a function approximation device according to an embodiment of the present disclosure.
- FIG. 3 is an exemplary diagram illustrating linear function approximation using a two-step LUT according to an embodiment of the present disclosure.
- FIG. 4 is an exemplary diagram of a structure of a two-step LUT according to an embodiment of the present disclosure.
- FIG. 5 is an exemplary diagram illustrating a configuration of a half-precision FP number according to an embodiment of the present disclosure.
- FIG. 6 is an exemplary diagram illustrating the marking of LUT mapping information in a second step according to an embodiment of the present disclosure.
- FIG. 7 is an exemplary diagram illustrating the marking of LUT mapping information in a second step according to another embodiment of the present disclosure.
- FIG. 8 is an exemplary diagram illustrating the marking of LUT mapping information in a second step according to another embodiment of the present disclosure.
- FIG. 9 is a flowchart of a function approximation method based on a two-step LUT according to an embodiment of the present disclosure.
- FIG. 10 is a schematic block diagram of a function approximation device based on a multi-level LUT according to an embodiment of the present disclosure.
- FIG. 11 is a flowchart of a function approximation method based on a multilevel LUT according to an embodiment of the present disclosure.
- FIG. 12 is a flowchart of a method for generating a two-step LUT based on linear approximation according to an embodiment of the present disclosure.
- 13 is an exemplary diagram illustrating linear function approximation using one LUT.
- 15 is an exemplary diagram illustrating linear function approximation using two LUTs.
- 16 is an exemplary view of the structure of two LUTs.
- first, second, A, B, (a), and (b) may be used. These terms are only used to distinguish the component from other components, and the nature, sequence, or order of the corresponding component is not limited by the term.
- a part 'includes' or 'includes' a certain component it means that it may further include other components without excluding other components unless otherwise stated.
- the '... Terms such as 'unit' and 'module' refer to a unit that processes at least one function or operation, and may be implemented as hardware, software, or a combination of hardware and software.
- This embodiment discloses a function approximation device and method using a multilevel lookup table. More specifically, in approximating a nonlinear function value based on piecewise linear approximation or piecewise polynomial approximation, in order to reduce the approximation error, a segment according to the variation of the function Provided is a function approximation device and method for approximating a function value for a function in multiple stages using a multi-level look-up table (LUT) with different lengths of .
- LUT multi-level look-up table
- HW accelerators for neural networks generally include engines dedicated to performing matrix operations such as convolution operations; a processor that performs a non-linear function, such as an activation function, or a pooling function; on-chip memory; and DMA (Direct Memory Access) for external memory access.
- the function approximation device according to the present embodiment may be mounted and operated on a processor.
- multi-level LUT collectively refers to all LUTs included in multi-level LUTs.
- a 2-step LUT is an expression collectively referring to two included LUTs.
- the output of the next stage LUT is generated using the output of the previous stage LUT.
- Each LUT included in the multi-level LUT is called a first LUT, a second LUT, ..., and the like.
- the NVDLA includes two LUTs, but since outputs of the first LUT and the second LUT are simultaneously generated, the LUT type included in the NVDLA does not correspond to a multi-level LUT.
- a 'target function' or 'function' the original nonlinear function to be subjected to section-by-section approximation.
- FIG. 1 is a schematic block diagram of a system equipped with a function approximation device according to an embodiment of the present disclosure.
- a system equipped with a function approximation device includes a data memory 110 , a program memory 120 , and a processor 130 .
- the processor 130 may perform function approximation on the target function.
- the processor 130 includes a control unit 132, a register 134, a calculation unit 136, and a memory access unit 138.
- the register 134 is a place where the operation input/output of the operation unit 136 is stored
- the memory access unit 138 performs access to the data memory 110 and the program memory 120
- the control unit 132 is a processor ( 130) controls the operation (eg, power management, interrupt handling, etc.).
- the calculation unit 136 is equipped with a function approximation device according to the present embodiment, and approximates a function value for a target function in multiple stages.
- FIG. 2 is a schematic block diagram of a function approximation device according to an embodiment of the present disclosure.
- the function approximation device is mounted in the operation unit 136 and approximates the function value of the function in multiple steps using a multi-level LUT to perform section-by-section linear approximation or section-by-section polynomial approximation.
- the bar illustrated in FIG. 2 shows a function approximation device using a two-step LUT.
- the function approximation device includes all or part of the input unit 202, the index generation unit 204, the first LUT 206, the number determination unit 208, the second LUT 212, and the function value generation unit 214. do.
- the first LUT 206 and the second LUT 212 are included in the memory 220 in the function approximation device, and the index generator 204 and the number determination unit 208 are included in the coefficient extraction unit 230 in the function approximation device. ) can be included.
- FIG. 2 is an exemplary configuration according to the present embodiment, and includes other components or other connections between components according to the operation of the index generator, the structure of the multi-level LUT, the operation of the function value generator, and the configuration of the memory.
- Various implementations are possible.
- the LUT can be accessed using only the upper N bits of the input variable.
- N is 3 for the first LUT 206, and m (where m is a natural number) bits from the N+1 th bit are used for the second LUT 212.
- m is 1 or 2.
- FIGS. 3 and 4 show linear function approximation.
- FIG. 3 is an exemplary diagram illustrating linear function approximation using a two-step LUT according to an embodiment of the present disclosure.
- a brief process of generating the second LUT 212 in advance by the computing device is as follows.
- the computing device divides the entire input section into 8 sections (S A0 to S A7 ) using the first LUT 206, generates approximation coefficients for the target function for each section, and calculates an approximation error.
- the computing device divides the segment with the large approximation error into small segments (S Ba , S Bb , S Bc , S Bd ), and generates approximation coefficients for the individual small segments.
- the linear approximation coefficient for the small segment is stored in the second LUT 212 .
- the intervals S A1 and S A6 where the change in the target function is relatively small are subdivided into two sub-ranges (S Ba0 S Ba1 , S Bd0 to S Bd1 ), and S A2 where the change in the target function is large. and S A5 sections are subdivided into 4 subsections (S Bb0 ⁇ S Bb3 , S B0 ⁇ S BC3 ).
- the first LUT 206 is data for subdivided subsections S A1 , S A2 , S A5 , and S A6 , instead of approximation coefficients, and information about how many subsections the corresponding section is subdivided into. , and information about where linear approximation coefficients are stored in the second LUT 212 is stored.
- the function approximation device When the input variable value (x) is given, the function approximation device reads the value of the first LUT 206 using this, and determines whether the read value is a linear approximation coefficient or 'mapping information for the LUT in the second step (hereinafter, ' It is determined whether it is used in compatibility with 'mapping information)'. If it is the mapping information, the function approximation device reads the linear approximation coefficient corresponding to the input variable value at the corresponding position of the second LUT 212 and then calculates an approximation value. As illustrated in Figure 3, the total size of the two LUTs is 20 (8 + (2 + 4 + 4 + 2)). Therefore, the function approximation device according to the present embodiment can approximate a function using a LUT smaller than that illustrated in FIG. 16 .
- FIG. 4 is an exemplary diagram of a structure of a two-step LUT according to an embodiment of the present disclosure.
- the first LUT 206 i) stores linear approximation coefficients for individual sections, or ii) stores mapping information for the second stage LUT .
- the second LUT 212 stores corresponding approximation coefficients when linear approximation is performed by dividing individual sections mapped by the LUT of the second stage into small segments each having a required size.
- the positions [1] and [6] of the first LUT 206 subdivide the corresponding section into two subsections, and store mapping information (BaseIndex, NumSeg) for the LUT in the second step.
- BaseIndex base index
- NumSeg number of small segments
- the positions [2] and [5] of the first LUT 206 subdivide the corresponding section into four sub-sections, respectively, and store mapping information.
- the first LUT 206 and the second LUT 212 have different segment sizes supported, and the segment size supported by the first LUT 206 is supported by the second LUT 212. is greater than the size of the segment to be Also, the function approximation device may access the second LUT 212 based on mapping information provided by the first LUT 206 .
- the input unit 202 obtains an input variable (value) x for the target function.
- the input variable may be expressed as a floating point number (hereinafter referred to as 'FP number') generally used in a computing system.
- 'FP number' a floating point number
- the FP numbering system is capable of expressing a very wide range of sizes.
- a half-precision FP number (hereinafter 'FP16', that is, a 16-bit floating point number), as illustrated in FIG. 5, has a 1-bit sign (S) and a 5-bit exponent. E), and 10-bit mantissa (M). At this time, depending on the values of the E field and the M field, it indicates a normal number (normalized number, +/-0) or a special value (NaN (Not a Number), +/-Inf (infinity), sub-normal number ( can represent a regular number)).
- S 1-bit sign
- E 5-bit exponent.
- M 10-bit mantissa
- mapping information can be stored without additional overhead. By doing this, it can be determined whether the values read from the first LUT 206 are linear approximation coefficients or mapping information. A method of mapping the mapping information of the LUT in the second step to the NaN code will be described later.
- the index generator 204 generates a first index for accessing the first LUT 206 from input variables.
- the first index may indicate a location where information about a segment including an input variable value is stored in the first LUT 206 .
- the first index of N bits may be generated by converting the FP number into an integer and then extracting upper N bits. Meanwhile, when the input variable is in the form of an integer, as described above, the first index may be generated by extracting the upper N bits of the input variable.
- the function approximation device extracts the output of the first LUT 206 based on the first index. As described above, this output may be linear approximation coefficients for segments supported by the first LUT 206 or mapping information for the second LUT 212 .
- the number determination unit 208 determines whether the output of the first LUT 206 is a number on the floating point number system.
- the output of the first LUT 206 represents the linear approximation coefficients for the segment, namely the slope and offset.
- the output of the first LUT 206 indicates mapping information for the second LUT 212 and includes a base index and the number of small segments.
- the index generator 204 generates a second index for accessing the second LUT 212 from input variables and mapping information.
- the index generation unit 204 calculates the location of the corresponding small segment using m bits after N bits used for the first index, and then bases the location of the small segment on the base.
- a second index may be generated by adding the indices.
- the function approximation device extracts the output of the second LUT 212 based on the second index.
- the output of the second LUT 212 represents the linear approximation coefficient for the small segment.
- the function value generator 214 generates an approximate value for the target function using the linear approximation coefficient.
- the linear approximation coefficients that is, the slope (A) and the offset (B) may be outputs of the first LUT 206 or the second LUT 212 .
- NaN in the FP number system represents a case where all bits of the E field are 1 and the M field is not 0, as illustrated in FIG. 5 . Therefore, it is possible to determine whether the value stored in the second LUT 212 is mapping information by storing a value other than 0 as mapping information for the LUT of the second stage in the M field of the NaN code.
- a NaN code can be used as mapping information.
- B For the value stored at position, if all the bit values of field E are 1 and the value of field M is not 0, the function approximator considers the value stored at position B as mapping information for the LUT of the second stage. .
- the function approximation device checks BaseIndex and NumSeg, which are mapping information, using values stored in M fields in FP numbers of A and B positions.
- HW logic for this must be used. As the number of bits allocated to the M field increases, Delays can be long.
- mapping information in a NaN code when storing mapping information in a NaN code, a bit value at a predetermined position of one of the M fields may be fixed to 1.
- FIGS. 7 and 8 show a method of storing the mapping information for the LUT in the second step after fixing the most significant bit value of the M field to 1 among the values stored in the first LUT 206 .
- whether or not mapping information is included may be checked using the value stored in location A
- mapping information is included may be checked using the value stored in location B.
- the mapping information for the LUT in the second step is a sub-normal number code can be mapped to
- an irregular number in the FP number system represents a case where all bits of the E field are 0 and the M field is not 0. Therefore, it is possible to determine whether the value stored in the second LUT 212 is mapping information by storing a value other than 0 as mapping information for the second stage LUT in the M field of the irregular number code.
- mapping information that is, among the values read from the first LUT 206, at the position of B Regarding the stored value, if all bit values of the E field are 0 and the value of the M field is not 0, the function approximation device regards the value stored at the location of B as mapping information for the LUT of the second stage.
- a bit value at a preset position of one of the M fields may be fixed to 1.
- the S field of a NaN code or an irregular number code has a don't care condition.
- the S field of the corresponding code may be set to a preset value to indicate the mapping information.
- the S field is 1, the M field may indicate mapping information.
- FIG. 9 is a flowchart of a function approximation method based on a two-step LUT according to an embodiment of the present disclosure.
- the function approximation device obtains an input variable (value) for the target function (S900).
- the function approximation device generates a first index from an input variable in order to access the first LUT 206 (S902).
- the first index may indicate a location where information about a segment including an input variable value is stored in the first LUT 206 .
- the function approximation device extracts the output of the first LUT 206 based on the first index (S904). As described above, this output may be linear approximation coefficients for segments supported by the first LUT 206 or mapping information for the second LUT 212 .
- the function approximation device determines whether the output of the first LUT 206 is a number on the floating point number system (S906).
- the output of the first LUT 206 represents the linear approximation coefficients for the segment, namely the slope and offset.
- the output of the first LUT 206 indicates mapping information for the second LUT 212 and includes a base index and the number of small segments.
- the function approximation device generates a second index from input variables and mapping information in order to access the second LUT 212 (S908).
- the function approximation device extracts the output of the second LUT 212 based on the second index (S910).
- the output of the second LUT 212 represents the linear approximation coefficient for the small segment.
- the function approximation device generates an approximate value for the function using the linear approximation coefficient (S912).
- the linear approximation coefficients that is, the slope (A) and the offset (B) may be outputs of the first LUT 206 or the second LUT 212 .
- the description of this embodiment is for linear approximation based on the two-step LUT, but the scope of application of this embodiment is not necessarily limited thereto.
- the function approximation device includes a multi-level LUT composed of K (K is a natural number) LUT
- Linear approximation based on multi-level LUTs can be implemented by equally applying the process of generating mapping information for the second LUT 212 based on the same to all subsequent LUTs including the third LUT.
- FIG. 10 is a schematic block diagram of a function approximation device based on a multi-level LUT according to an embodiment of the present disclosure.
- the function approximation device based on the multi-level LUT is loaded into the calculation unit 136 and implemented as illustrated in FIG. 2, but the memory 220 includes the multi-level LUT.
- the multilevel LUT includes K (K is a natural number greater than or equal to 2) LUTs.
- K is a natural number greater than or equal to 2 LUTs.
- Each of the K LUTs has a different segment size supported, and the size of the segment supported by the kth (where k is a natural number from 1 to K-1) LUT is the size of the segment supported by the (k+1)th LUT. bigger than size
- Each of the K LUTs may be represented by a floating point number system, as described above.
- the function approximation device may access the (k+1)th LUT based on mapping information provided by the kth LUT. Accordingly, the k th LUT includes linear approximation coefficients or mapping information as information about the segment, and the K th LUT in the last step includes linear approximation coefficients as information about the segment.
- the mapping information is information for dividing each of the t segments into small segments supported by the (k+1)th LUT for t (where t is a natural number) segments among all segments supported by the kth LUT.
- each of the t segments is a segment in which an approximation error for the function is greater than a preset threshold value.
- the number of small segments may be determined according to the size of an approximation error for a function that each of the t segments has.
- the mapping information may include, for each of the t segments, a base index that is a starting position in the (k+1)th LUT and the number of small segments.
- mapping information on the floating point number system since the method of defining mapping information on the floating point number system has already been described based on FIGS. 5 to 8, further detailed description is omitted.
- the input unit 202 obtains an input variable (value) for a target function.
- the coefficient extraction unit 230 extracts linear approximation coefficients for a function using a multi-level LUT based on input variables.
- the index generator 204 generates a jth index (where j is a natural number from 1 to K) based on input variables and mapping information.
- the first index is generated based only on input variables.
- the number determination unit 208 determines whether the j th output extracted from the j th LUT is a number based on the j th index.
- the coefficient extraction unit 230 extracts the j-th output as a linear approximation coefficient when the j-th output is a number on the floating point number system , and when the j-th output is mapping information, mapping information based on the LUT of the next stage. Re-extract the linear approximation coefficients using
- the function value generation unit 214 generates function values for input variables using linear approximation coefficients.
- the memory 220 including the multi-level LUT illustrated in FIG. 2 or 10 may be implemented as follows.
- each LUT included in the multi-level LUT may be implemented as a physically separate memory.
- the function approximation device may access each LUT included in a separated memory based on a pipeline method.
- the processing speed (throughput) for function approximation can be increased.
- multi-level LUTs may be physically stored in the same memory while each LUT included in the multi-level LUT is logically separated.
- the function approximation device may generate an index for accessing each LUT based on a pre-stored start position in memory for each LUT.
- FIG. 11 is a flowchart of a function approximation method based on a multilevel LUT according to an embodiment of the present disclosure.
- the function approximation device obtains an input variable (value) and initializes j (where j is a natural number from 1 to K) to 1 (S1100).
- the function approximation device generates a j-th index based on input variables and mapping information (S1102).
- the first index is generated based only on input variables.
- the function approximation device generates a j-th output from the j-th LUT based on the j-th index (S1104).
- the jth output may be linear approximation coefficients for a segment supported by the jth LUT or mapping information for a LUT of a next stage.
- the function approximation device determines whether the jth output is a number on the floating point number system (1106).
- the function approximation device increases j by 1 (S1108), and then repeats the process of extracting linear approximation coefficients (S1102 to S1106) using the mapping information.
- the function approximation device extracts the jth output as a linear approximation coefficient when the jth output is a number.
- the function approximation device generates an approximate value for the function using the linear approximation coefficient (S1110).
- FIG. 12 is a flowchart of a method for generating a two-step LUT based on linear approximation according to an embodiment of the present disclosure.
- the computing device assumes that the size of the LUT (the number of segments supported by the first LUT or the second LUT) available in the HW is given.
- the computing device divides the entire input range of the target function by the size of the first LUT (num_lut1), and applies piecewise linear approximation to the target function in a direction of reducing an error between the target function and the approximation function (S1200).
- the computing device calculates an error between the target function and the approximation function for each segment (S1204).
- the number of areas (lut2_remained) in the second LUT not yet filled with values is set as the size of the second LUT (S1206).
- the computing device selects the segment (S 1 ) having the largest error (E S1 ) among the segments of the first LUT (S1208).
- the fact that the error is large indicates that the variation of the target function in the corresponding segment is large, and thus the difference in values between the target function and the approximation function is large.
- the computing device checks whether the largest error (E S1 ) is smaller than the target, preset error threshold (E TH ) (S1210), and if so, dividing the corresponding section into small segments (S1212 to S1226). ), and if it is small, the process of dividing into small segments is terminated.
- the computing device checks whether the currently selected segment is mapped to the second LUT (S1212), and if so, sets twice the number of segments mapped to the second LUT as num_segment_lut2_cur (S1214). If not mapped, the computing device sets num_segment_lut2_cur to 2 (S1216).
- the computing device checks whether num_segment_lut2_cur is less than the number of empty spaces (lut2_remained) of currently available lut2 (S1218), and if not small, ends the process of dividing into small segments.
- the computing device divides the currently selected segment into num_segment_lut2_cur, changes the mapping information to the second LUT so that it is linearly approximated, and subtracts the number of spaces of the second-stage LUT additionally used from the number of empty spaces of the second LUT. .
- the computing device performs precise linear approximation on each of the small segments divided in two stages in a direction of reducing an error between the target function and the approximation function (S1220).
- the computing device stores coefficients for the calculated slope and offset in the second LUT (S1222).
- the computing device calculates an error between the target function and the approximation function for each small segment (S1224).
- the computing device replaces the approximate error (E S1 ) for the section selected in the first LUT with the largest error among errors calculated for the second LUT (S1226).
- the computing device operates the second LUT.
- the mapping process (S1208 to S1226) to is repeated. Using this iterative process, a two-step function approximation result capable of minimizing an approximation error while satisfying the LUT size condition of a given HW can be obtained.
- the computing device provides a method for generating a two-step LUT based on linear approximation, as illustrated in FIG. 12, for K LUTs included in the multi-step LUT, , k is a natural number from 1 to K-1) LUT and the (k+1) th LUT are repeatedly applied to generate a linear approximation-based multi-level LUT.
- the present embodiment has been described for the application of the section-by-section linear approximation method, but the section-by-section polynomial approximation method can also be similarly applied.
- the formula expressing each segment is , there are (P+1) coefficients stored for one section. Therefore, a LUT capable of storing (P+1) coefficients is used.
- Table 1 shows the comparison results of the tanh and sigmoid functions, which are activation functions frequently used in neural networks.
- Table 1 shows the LUT sizes (sizes of the first LUT and the second LUT) when the approximation error is similar between the case where the linear approximation by 64 segments is applied using the conventional method and the linear approximation by the two stages is applied. .
- the proposed multi-level LUT method can approximate the target function with a similar approximation error using only LUTs ranging in size from 59.4% to 75%.
- each process is sequentially executed, but is not necessarily limited thereto.
- the flowchart is not limited to a time-series sequence.
- a programmable system includes at least one programmable processor (which may be a special purpose processor) coupled to receive data and instructions from and transmit data and instructions to a storage system, at least one input device, and at least one output device. or may be a general-purpose processor).
- Computer programs also known as programs, software, software applications or code
- processor 132 processor
- first LUT 208 number determination unit
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Nonlinear Science (AREA)
- Image Processing (AREA)
Abstract
Description
Claims (17)
- 컴퓨팅 장치가 수행하는, 구간별(piecewise) 함수근사 방법에 있어서,함수에 대해 입력 변수값을 획득하는 과정;상기 입력 변수값을 기반으로 멀티레벨(multi-level) LUT(Look-up Table)를 이용하여 상기 함수에 대한 근사 계수를 추출하는 과정, 여기서, 상기 멀티레벨 LUT는 K(K는 2 이상의 자연수) 개의 LUT를 포함함; 및상기 근사 계수를 이용하여 상기 입력 변수값에 대한 함수값을 연산하는 과정을 포함하되,상기 K 개의 LUT 각각은,지원하는 세그멘트의 크기가 상이하고, 제k(여기서, k는 1부터 K-1까지의 자연수) LUT가 지원하는 세그멘트의 크기가 제(k+1) LUT가 지원하는 세그멘트의 크기보다 크고, 상기 제k LUT가 제공하는 매핑 정보를 기반으로 상기 제(k+1) LUT를 접근하는 것을 특징으로 하는, 구간별 함수근사 방법.
- 제1항에 있어서,상기 매핑 정보는,상기 제k LUT에서 지원하는 전체 세그멘트 중 t(여기서, t는 자연수) 개의 세그멘트에 대해, 상기 t 개의 세그멘트 각각을 상기 제(k+1) LUT에서 지원하는 소형 세그멘트로 분할하는 정보인 것을 특징으로 하는, 구간별 함수근사 방법.
- 제2항에 있어서,상기 t 개의 세그멘트 각각은,상기 함수에 대한 근사 오차가 기설정된 임계치보다 큰 세그멘트이고, 상기 소형 세그멘트의 개수는, 상기 t 개의 세그멘트 각각이 갖는, 상기 근사 오차의 크기에 따라 결정되는 것을 특징으로 하는, 구간별 함수근사 방법.
- 제2항에 있어서,상기 매핑 정보는,상기 t 개의 세그멘트 각각에 대해, 상기 제(k+1) LUT에서의 시작 위치인 베이스 인덱스, 및 상기 소형 세그멘트의 개수를 포함하는 것을 특징으로 하는, 구간별 함수근사 방법.
- 제1항에 있어서,상기 제k LUT는, 세그멘트에 대한 정보로서, 상기 근사 계수 또는 상기 매핑 정보를 포함하고, 제K LUT는, 세그멘트에 대한 정보로서, 상기 근사 계수를 포함하는 것을 특징으로 하는, 구간별 함수근사 방법.
- 제1항에 있어서,상기 근사 계수를 추출하는 과정은,상기 입력 변수값 및 상기 매핑 정보를 기반으로 제j(여기서, j는 1부터 상기 K까지의 자연수) 인덱스를 생성하는 과정, 여기서, 상기 제1 인덱스는 상기 입력 변수값만을 기반으로 생성됨;상기 제j 인덱스를 이용하여 상기 제j LUT로부터 제j 출력을 추출하는 과정; 및상기 제j 출력이 상기 플로팅포인트 넘버 체계 상의 숫자인 경우, 상기 제j 출력을 상기 근사 계수로 추출하는 과정을 포함하되,상기 제j 출력이 상기 매핑 정보인 경우, 상기 매핑 정보를 이용하여 상기 근사 계수를 추출하는 과정을 반복하는 것을 특징으로 하는, 구간별 함수근사 방법.
- 제1항에 있어서,상기 K 개의 LUT 각각은,플로팅포인트 넘버 체계에서, 숫자로 이용하는 코드 영역에 상기 근사 계수를 할당하고, 상기 숫자로 이용하는 않는 코드 영역에 상기 매핑 정보를 할당하는 것을 특징으로 하는, 구간별 함수근사 방법.
- 제7항에 있어서,상기 K 개의 LUT 각각은,상기 근사 계수를 나타내기 위해 부정규 넘버(sub-normal number) 코드를 이용하지 않는 경우, 상기 부정규 넘버의 코드 영역에 상기 매핑 정보를 할당하는 것을 특징으로 하는, 구간별 함수근사 방법.
- 제8항에 있어서,상기 매핑 정보 중 상기 소형 세그멘트의 개수를 나타내는 플로팅포인트 넘버에 대해, 만티사 필드(mantissa)에 0이 아닌 값을 설정하여, 상기 매핑 정보임을 나타내는 것을 특징으로 하는, 구간별 함수근사 방법.
- 제8항에 있어서,상기 매핑 정보를 나타내는 플로팅포인트 넘버에 대해, 만티사 필드 중 하나의 기설정된 위치의 비트값을 1로 설정하여, 상기 매핑 정보임을 나타내는 것을 특징으로 하는, 구간별 함수근사 방법.
- 제8항에 있어서,상기 매핑 정보를 나타내는 플로팅포인트 넘버에 대해, 부호 필드에 기설정된 값을 설정하여, 상기 매핑 정보임을 나타내는 것을 특징으로 하는, 구간별 함수근사 방법.
- 함수에 대해 입력 변수값을 획득하는 입력부;멀티레벨(multi-level) LUT(Look-up Table)를 포함하는 메모리, 여기서, 상기 멀티레벨 LUT는 K(K는 2 이상의 자연수) 개의 LUT를 포함함;상기 입력 변수값을 기반으로 상기 멀티레벨 LUT를 이용하여 상기 함수에 대한 근사 계수를 추출하는 계수추출부; 및상기 근사 계수를 이용하여 상기 입력 변수값에 대한 함수값을 연산하는 함수값생성부를 포함하되,상기 K 개의 LUT 각각은,지원하는 세그멘트의 크기가 상이하고, 제k(여기서, k는 1부터 K-1까지의 자연수) LUT가 지원하는 세그멘트의 크기가 제(k+1) LUT가 지원하는 세그멘트의 크기보다 크고, 상기 제k LUT가 제공하는 매핑 정보를 기반으로 상기 제(k+1) LUT를 접근하는 것을 특징으로 하는, 구간별 함수근사 장치.
- 제12항에 있어서,상기 매핑 정보는,상기 제k LUT에서 지원하는 전체 세그멘트 중 t(여기서, t는 자연수) 개의 세그멘트에 대해, 상기 t 개의 세그멘트 각각을 상기 제(k+1) LUT에서 지원하는 소형 세그멘트로 분할하는 정보인 것을 특징으로 하는, 구간별 함수근사 장치.
- 제13항에 있어서,상기 t 개의 세그멘트 각각은,상기 함수에 대한 근사 오차가 기설정된 임계치보다 큰 세그멘트이고, 상기 소형 세그멘트의 개수는, 상기 t 개의 세그멘트 각각이 갖는, 상기 근사 오차의 크기에 따라 결정되는 것을 특징으로 하는, 구간별 함수근사 장치.
- 제12항에 있어서,상기 계수추출부는,상기 입력 변수값 및 상기 매핑 정보를 기반으로 제j(여기서, j는 1부터 K까지의 자연수) 인덱스를 생성하는 인덱스생성부, 여기서, 상기 제1 인덱스는 상기 입력 변수값만을 기반으로 생성됨; 및상기 제j 인덱스를 기반으로 상기 제j LUT로부터 추출된 제j 출력이 상기 플로팅포인트 넘버 체계 상의 숫자인지를 판단하는 숫자판정부를 포함하되,상기 제j 출력이 상기 숫자인 경우, 상기 제j 출력을 상기 근사 계수로 추출하고, 상기 제j 출력이 상기 매핑 정보인 경우, 상기 매핑 정보를 이용하여 상기 근사 계수를 다시 추출하는 것을 특징으로 하는, 구간별 함수근사 장치.
- 제12항에 있어서,상기 K 개의 LUT 각각은,플로팅포인트 넘버 체계에서, 숫자로 이용하는 코드 영역에 상기 근사 계수를 할당하고, 상기 숫자로 이용하는 않는 코드 영역에 상기 매핑 정보를 할당하는 것을 특징으로 하는, 구간별 함수근사 장치.
- 명령어가 저장된, 컴퓨터로 읽을 수 있는 기록매체로서, 상기 명령어는 상기 컴퓨터에 의해 실행될 때 상기 컴퓨터로 하여금,함수에 대해 입력 변수값을 획득하는 과정;상기 입력 변수값을 기반으로 멀티레벨(multi-level) LUT(Look-up Table)를 이용하여 상기 함수에 대한 근사 계수를 추출하는 과정, 여기서, 상기 멀티레벨 LUT는 K(K는 2 이상의 자연수) 개의 LUT를 포함함; 및상기 근사 계수를 이용하여 상기 입력 변수값에 대한 함수값을 연산하는 과정을 실행하도록 하되,상기 K 개의 LUT 각각은,지원하는 세그멘트의 크기가 상이하고, 제k(여기서, k는 1부터 K-1까지의 자연수) LUT가 지원하는 세그멘트의 크기가 제(k+1) LUT가 지원하는 세그멘트의 크기보다 크고, 상기 제k LUT가 제공하는 매핑 정보를 기반으로 상기 제(k+1) LUT를 접근하는 것을 특징으로 하는, 컴퓨터로 읽을 수 있는 기록매체.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP22846116.6A EP4375855A1 (en) | 2021-07-19 | 2022-07-12 | Function approximation device and method using multi-level look-up table |
CN202280050505.1A CN117859124A (zh) | 2021-07-19 | 2022-07-12 | 使用多层级查找表的函数近似方法和装置 |
US18/579,212 US20240320301A1 (en) | 2021-07-19 | 2022-07-12 | Method and apparatus for function approximation using multi-level lookup table |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2021-0094365 | 2021-07-19 | ||
KR1020210094365A KR102529602B1 (ko) | 2021-07-19 | 2021-07-19 | 멀티레벨 룩업테이블을 이용한 함수근사 장치 및 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023003246A1 true WO2023003246A1 (ko) | 2023-01-26 |
Family
ID=84979446
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2022/010127 WO2023003246A1 (ko) | 2021-07-19 | 2022-07-12 | 멀티레벨 룩업테이블을 이용한 함수근사 장치 및 방법 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20240320301A1 (ko) |
EP (1) | EP4375855A1 (ko) |
KR (1) | KR102529602B1 (ko) |
CN (1) | CN117859124A (ko) |
WO (1) | WO2023003246A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116432711A (zh) * | 2023-02-13 | 2023-07-14 | 杭州菲数科技有限公司 | SiLU激活函数的硬件实现方法、装置及计算设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040016366A (ko) * | 2002-08-15 | 2004-02-21 | 한국전자통신연구원 | 구간별 차등 다항식을 이용한 사전 왜곡 방법 및 그를이용한 고전력 증폭기의 사전 왜곡 장치 |
JP2005208845A (ja) * | 2004-01-21 | 2005-08-04 | Toshiba Corp | 関数近似値の演算器 |
KR20140077675A (ko) * | 2012-12-14 | 2014-06-24 | 한국전자통신연구원 | 디지털 전치 왜곡 장치 |
KR101718224B1 (ko) * | 2014-08-01 | 2017-03-20 | 인피니언 테크놀로지스 아게 | 세그먼트적 구분적 다항식 근사에 기초하는 디지털 전치 왜곡 및 후치 왜곡 |
KR20190037236A (ko) * | 2016-07-29 | 2019-04-05 | 퀄컴 인코포레이티드 | 구분적 선형 근사화를 위한 시스템 및 방법 |
KR20210094365A (ko) | 2020-01-21 | 2021-07-29 | 주식회사 케이티 | 객체의 움직임 정보에 기초하여 이상 상황을 판단하는 장치, 방법 및 컴퓨터 프로그램 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180081634A1 (en) * | 2016-09-22 | 2018-03-22 | Qualcomm Incorporated | Piecewise polynomial evaluation instruction |
-
2021
- 2021-07-19 KR KR1020210094365A patent/KR102529602B1/ko active IP Right Grant
-
2022
- 2022-07-12 US US18/579,212 patent/US20240320301A1/en active Pending
- 2022-07-12 CN CN202280050505.1A patent/CN117859124A/zh active Pending
- 2022-07-12 EP EP22846116.6A patent/EP4375855A1/en active Pending
- 2022-07-12 WO PCT/KR2022/010127 patent/WO2023003246A1/ko active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040016366A (ko) * | 2002-08-15 | 2004-02-21 | 한국전자통신연구원 | 구간별 차등 다항식을 이용한 사전 왜곡 방법 및 그를이용한 고전력 증폭기의 사전 왜곡 장치 |
JP2005208845A (ja) * | 2004-01-21 | 2005-08-04 | Toshiba Corp | 関数近似値の演算器 |
KR20140077675A (ko) * | 2012-12-14 | 2014-06-24 | 한국전자통신연구원 | 디지털 전치 왜곡 장치 |
KR101718224B1 (ko) * | 2014-08-01 | 2017-03-20 | 인피니언 테크놀로지스 아게 | 세그먼트적 구분적 다항식 근사에 기초하는 디지털 전치 왜곡 및 후치 왜곡 |
KR20190037236A (ko) * | 2016-07-29 | 2019-04-05 | 퀄컴 인코포레이티드 | 구분적 선형 근사화를 위한 시스템 및 방법 |
KR20210094365A (ko) | 2020-01-21 | 2021-07-29 | 주식회사 케이티 | 객체의 움직임 정보에 기초하여 이상 상황을 판단하는 장치, 방법 및 컴퓨터 프로그램 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116432711A (zh) * | 2023-02-13 | 2023-07-14 | 杭州菲数科技有限公司 | SiLU激活函数的硬件实现方法、装置及计算设备 |
CN116432711B (zh) * | 2023-02-13 | 2023-12-05 | 杭州菲数科技有限公司 | SiLU激活函数的硬件实现方法、装置及计算设备 |
Also Published As
Publication number | Publication date |
---|---|
KR20230013515A (ko) | 2023-01-26 |
CN117859124A (zh) | 2024-04-09 |
US20240320301A1 (en) | 2024-09-26 |
EP4375855A1 (en) | 2024-05-29 |
KR102529602B1 (ko) | 2023-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2023003246A1 (ko) | 멀티레벨 룩업테이블을 이용한 함수근사 장치 및 방법 | |
WO2012015224A2 (en) | Variable resister having resistance varying geometrically ratio and control method thereof | |
WO2017104934A1 (ko) | Plc 제어 프로그램의 공용형식 변환장치 및 방법 | |
EP3735662A1 (en) | Method of performing learning of deep neural network and apparatus thereof | |
WO2023153821A1 (en) | Method of compressing neural network model and electronic apparatus for performing the same | |
WO2016159518A1 (ko) | 비선형 데이터의 평균 계산 장치 | |
WO2016056856A1 (ko) | 무결성 검증 데이터 생성 방법 및 시스템 | |
WO2014189236A1 (ko) | 무손실 이미지 압축 및 복원 방법과 이를 수행하는 장치 | |
WO2020062615A1 (zh) | 显示面板的伽马值调节方法、装置及显示设备 | |
WO2023042989A1 (ko) | 데이터 스케일을 고려한 덧셈 연산 방법 및 이를 위한 하드웨어 가속기, 이를 이용한 컴퓨팅 장치 | |
WO2014073747A1 (ko) | 플래시 메모리의 소모 전력 감소 방법 및 그 장치 | |
WO2023229094A1 (ko) | 행동 예측 방법 및 장치 | |
WO2012169675A1 (ko) | 누적 이동 평균에 기반하여 다원 탐색 트리의 노드를 분할하는 방법 및 장치 | |
WO2019124622A1 (ko) | 줌 렌즈의 광축 보정 방법, 장치 및 컴퓨터 프로그램 | |
WO2021246586A1 (ko) | 하드웨어 가속기를 위한 파라미터를 메모리로부터 액세스하는 방법 및 이를 이용한 장치 | |
WO2019132235A1 (ko) | 메모리 장치 및 그 데이터 처리 방법 | |
WO2023043108A1 (ko) | 아키텍처 확장을 통한 신경망의 유효 정밀도 향상 방법 및 장치 | |
WO2020213885A1 (en) | Server and control method thereof | |
WO2017126715A1 (ko) | 나눗셈 연산을 처리하는 방법, 장치 및 기록매체 | |
WO2024014632A1 (ko) | 신경망 설계방법 및 이를 위한 장치 | |
WO2024005590A1 (ko) | 이미지 스케일링 장치 및 이미지 스케일링 방법 | |
WO2024106556A1 (ko) | 부동 소수점 데이터 압축을 위한 방법 및 장치 | |
WO2024014631A1 (ko) | 데이터 스케일을 고려한 콘볼루션 데이터의 양자화 방법, 이를 위한 하드웨어 가속기, 및 이를 이용한 컴퓨팅 장치 | |
WO2018030831A1 (ko) | Plc 제어 프로그램을 구조체 데이터로 변환하는 장치 및 방법 | |
WO2024167057A1 (ko) | 클러스터를 이용한 딥러닝 뉴럴 네트워크 모델 가속화 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22846116 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 18579212 Country of ref document: US |
|
WWE | Wipo information: entry into national phase |
Ref document number: 202280050505.1 Country of ref document: CN |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2022846116 Country of ref document: EP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2022846116 Country of ref document: EP Effective date: 20240219 |