CN118519613B - Multiply-accumulator operation cluster and data processing method - Google Patents
Multiply-accumulator operation cluster and data processing method Download PDFInfo
- Publication number
- CN118519613B CN118519613B CN202410985037.8A CN202410985037A CN118519613B CN 118519613 B CN118519613 B CN 118519613B CN 202410985037 A CN202410985037 A CN 202410985037A CN 118519613 B CN118519613 B CN 118519613B
- Authority
- CN
- China
- Prior art keywords
- multiply
- accumulator
- data
- processed
- dimension
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/544—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 for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Complex Calculations (AREA)
Abstract
The application discloses a multiply accumulator operation cluster and a data processing method. The multiply-accumulator operation cluster comprises a plurality of multiply-accumulator units, wherein each multiply-accumulator unit is used for completing multiply-accumulator operation of at least one group of data to be processed, when the calculation dimension of the data to be processed is smaller than the total dimension of the multiply-accumulator units, at least one multiply-accumulator subunit in the multiply-accumulator units is used for completing multiply-accumulator operation of each group of data to be processed and outputting multiply-accumulator operation results of the data to be processed, and/or when the data to be processed comprises a plurality of data blocks which are sequentially arranged, the multiply-accumulator operation of one data block is respectively completed through a plurality of multiply-accumulator diversity groups in the multiply-accumulator operation cluster, and the multiply-accumulator operation results of the data blocks are output to the next multiply-accumulator sub-cluster which is sequentially arranged until the multiply-accumulator operation of all the data blocks is completed, and the multiply-accumulator operation results of the data to be processed are output. The multiply-accumulator operation cluster improves the utilization rate of the multiply-accumulator operation unit.
Description
Technical Field
The application belongs to the technical field of digital circuits, and particularly relates to a multiply-accumulator operation cluster and a data processing method.
Background
The multiply-accumulate device (Multiply and Accumulate, abbreviated as MAC) is used to perform multiply-accumulate operations such as vector multiplication, matrix multiplication, and vector matrix mutual multiplication, and is an extremely important operation subsystem in a processor such as a coprocessor, a digital signal processor, a central processing unit (Central Processing Unit, abbreviated as CPU), and the like, and particularly is the most basic operation unit in an Artificial Intelligence (AI) accelerator.
The MAC in AI accelerators typically implements a dot product of X sets of M-dimensional vectors, e.g., a multiply-add operation of two sets of M-dimensional vectors (a vector and B vector), with a 1.b 1, a 2.b2..ax.bx operations being completed, and then the products added together, where the processing dimension of each vector (a or B) is denoted M. Each data may be an integer or floating point number of different bit widths, taking the input as an 8-bit integer as an example, the computation power per clock cycle of the MAC is an 8-bit integer operation of M times X times 2 (2 being understood to be two operations of one multiplication and one addition). However, in the practical application process, the utilization rate of the MAC operation unit is low for some reasons. For example, when the processing dimension of the a vector or the B vector is smaller than the dimension M of the multiply-accumulator (the dimension of the multiply-accumulator represents the number of multipliers included), some multipliers are in idle state when processing data, and only after the processing is finished, the idle-state multipliers can be used next time, so that the use rate of the multipliers in the multiply-accumulator is low. For example, the input data of the multiply-accumulator is not ready in time or the output data of the multiply-accumulator is not output in time, which causes line blockage, and the multiply-accumulator cannot enter the next use, which also causes the utilization of the multiply-accumulator arithmetic unit to be low.
At present, no good circuit structure can solve the problem of low utilization rate of a multiply accumulator operation unit.
Disclosure of Invention
In view of the above, the present application provides a multiply-accumulator operation cluster and a data processing method, which are mainly aimed at solving the problem of low utilization rate of the existing multiply-accumulator operation unit.
To solve the above problems, the present application provides a multiply-accumulator operation cluster comprising a plurality of multiply-accumulator units, each of the multiply-accumulator units being configured to perform multiply-accumulate operations on at least one set of data to be processed, each set of data to be processed comprising two multi-dimensional data, each of the multiply-accumulator units comprising a plurality of multiply-accumulator subunits, each of the multiply-accumulator subunits being configured to perform one multiply-accumulate operation and output a multiply-accumulate operation result, wherein,
And when the data to be processed comprises a plurality of data blocks which are sequentially arranged, respectively completing multiply-accumulate operation of one data block through a plurality of multiply-accumulator diversity groups in the multiply-accumulator operation cluster, and outputting the multiply-accumulate operation result of the data block to the next multiply-accumulator diversity group which is sequentially arranged until the multiply-accumulate operation of all the data blocks is completed, thereby outputting the multiply-accumulate operation result of the data to be processed.
In one embodiment of the application, optionally, the dimensions of the multiply-accumulator subunits in the same multiply-accumulator unit are the same, the sum of the dimensions of all multiply-accumulator subunits in each of the multiply-accumulator units is the same as the total dimension of the multiply-accumulator units, and the dimensions of the multiply-accumulator subunits in a plurality of different multiply-accumulator units are the same or different from each other.
In one embodiment of the present application, optionally, when the calculated dimension of a set of data to be processed is less than or equal to the dimension of a multiply-accumulator subunit in at least one multiply-accumulator unit, determining a target multiply-accumulator unit for computing the data to be processed according to the calculated dimension of the data to be processed and the dimension of the multiply-accumulator subunit in the multiply-accumulator unit, and performing multiply-accumulate operation on the data to be processed through the multiply-accumulator subunit in the target multiply-accumulator unit.
In one embodiment of the application, optionally, when the calculated dimension of a set of data to be processed is greater than the dimension of a multiply-accumulator subunit of all the multiply-accumulator units and less than the total dimension of each of the multiply-accumulator units, the multiply-accumulate operation of the data to be processed is completed by a plurality of the multiply-accumulator subunits of the multiply-accumulator units.
In one embodiment of the present application, optionally, when the calculated dimension of the data to be processed is greater than the dimension of the multiply-accumulator subunits in all the multiply-accumulator units and less than the total dimension of each of the multiply-accumulator units, determining, according to the calculated dimension of the data to be processed and the dimension of the multiply-accumulator subunits in each multiply-accumulator unit, a target multiply-accumulator for calculating the data to be processed and a target number of multiply-accumulator subunits in the target multiply-accumulator, and performing a multiply-accumulate operation on the data to be processed by the target number of multiply-accumulator subunits in the target multiply-accumulator.
In one embodiment of the application, optionally at least one multiply-accumulator subunit of the multiply-accumulator operation cluster is a multiply-accumulator sub-cluster.
In one embodiment of the present application, optionally, when the calculation dimension of all the data blocks in the data to be processed is smaller than or equal to the dimension of the multiply-accumulator subunits in any multiply-accumulator unit, each multiply-accumulator subunit in the multiply-accumulator unit is used as a multiply-accumulator sub-group, the multiply-accumulate operation of one data block is respectively completed through a plurality of multiply-accumulator subunits in the multiply-accumulator unit, and the multiply-accumulate operation result of the data block is output to the next multiply-accumulator subunit in sequence until the multiply-accumulate operation of all the data blocks is completed, and the multiply-accumulate operation result of the data to be processed is output.
In one embodiment of the present application, optionally, the multiply-and-accumulator unit includes a plurality of data input modules, a plurality of multiply operation modules, a plurality of multi-stage addition operation modules, and a plurality of data output modules, where one multiply operation module, one multi-stage addition operation module, and a plurality of data output modules form one multiply-and-accumulator subunit, each multiply operation module includes a plurality of multipliers, and each multi-stage addition operation module includes a plurality of adders;
The input end of each data input module is electrically connected with the data providing module respectively, the output end of each data input module is electrically connected with the input end of one multiplication operation module respectively, the output end of each multiplication operation module is electrically connected with the input end of one multi-stage addition operation module, and the output end of each multi-stage addition operation module is electrically connected with a plurality of data output modules respectively.
The application also provides a data processing method which is applied to the multiply-accumulator operation cluster and comprises the following steps:
Acquiring data to be processed, and determining a target multiply-accumulator unit corresponding to the data to be processed according to the calculated dimension of the data to be processed and the dimension of a multiply-accumulator subunit in each multiply-accumulator unit;
And inputting the data to be processed into a multiply-accumulate subunit in an idle state in the target multiply-accumulate device, and performing multiply-accumulate operation on the data to be processed through the target multiply-accumulate device to obtain a multiply-accumulate operation result of the data to be processed.
In one embodiment of the present application, optionally, the obtaining the data to be processed, determining a target multiply-accumulator unit corresponding to the data to be processed according to a calculation dimension of the data to be processed and a sub-dimension of a multiply-accumulator subunit in each multiply-accumulator unit, includes:
and taking the candidate multiply accumulator unit which is in an idle working state and has the largest dimension of the multiply accumulator sub-unit as a target multiply accumulator unit corresponding to the data to be processed.
The application has the beneficial effects that the multiply-accumulator operation cluster and the data processing method provided by the application have the advantages that the multiply-accumulator operation cluster comprises a plurality of multiply-accumulator units, each multiply-accumulator unit comprises a plurality of multiply-accumulator subunits, when the calculated dimension of two multi-dimensional data in the data to be processed is smaller than the total dimension of the multiply-accumulator units, the plurality of data to be processed are respectively input into one multiply-accumulator subunit, the multiply-accumulator subunits in each multiply-accumulator unit can simultaneously carry out multiply-accumulator operation on the data to be processed which are respectively input in the same clock period, the utilization rate of the multiply-accumulator operation unit is improved, the output bandwidth of the multiply-accumulator is also increased, when the data to be processed comprises a plurality of data blocks which are sequentially arranged, one multiply-accumulator diversity group completes one multiply operation of the data blocks, and the multiply-accumulator operation result of the data blocks is output into the next multiply-accumulator sub-cluster which is sequentially arranged, the processing of the data to be processed is realized, and the multiply-accumulator diversity operation units are simultaneously input into the multiply-accumulator groups, the multiply-accumulator operation units in the same clock period, the input into the multiply-accumulator is well, and the problem of the multiply-accumulator operation units is avoided, and the input from the multiply-accumulator operation units is well, and the problem is solved.
The foregoing description is only an overview of the present application, and is intended to be implemented in accordance with the teachings of the present application in order that the same may be more clearly understood and to make the same and other objects, features and advantages of the present application more readily apparent.
Drawings
Various other advantages and benefits will become apparent to those of ordinary skill in the art upon reading the following detailed description of the preferred embodiments. The drawings are only for purposes of illustrating the preferred embodiments and are not to be construed as limiting the application. Also, like reference numerals are used to designate like parts throughout the figures. In the drawings:
FIG. 1 is a schematic diagram of a conventional multiply-accumulate unit;
FIG. 2 is a block diagram of a multiply-accumulator operation cluster in accordance with an exemplary embodiment of the present application;
FIG. 3 is a block diagram of another multiply-accumulator operation cluster in accordance with an exemplary embodiment of the present application;
FIG. 4 is a schematic diagram of a conventional multiply-accumulate unit;
FIG. 5 is a schematic diagram of the operation of a multiply-accumulator unit according to an exemplary embodiment of the present application;
FIG. 6 is a schematic diagram of a pipelined processing of data to be processed using a conventional multiply-accumulator unit;
FIG. 7 is a schematic diagram of a pipeline processing mode of data to be processed using a multiply accumulator unit according to an exemplary embodiment of the present application;
FIG. 8 is a block diagram of yet another multiply-accumulator operation cluster in accordance with an exemplary embodiment of the present application;
FIG. 9 is a schematic diagram of a structural connection of a multiply-accumulator operation cluster according to an exemplary embodiment of the present application;
FIG. 10 is a schematic diagram of the structural connections of a multiply-accumulator subunit according to an exemplary embodiment of the present application;
FIG. 11 is a flowchart of a data processing method according to an exemplary embodiment of the present application;
Wherein,
The reference numbers in the figure are as follows, 1-multiply accumulator unit, 11-multiply accumulator subunit, 2-multiply accumulator sub-cluster, 12-data input module, 111-multiply operation module, 112-multi-stage addition operation module, 113-data output module.
Detailed Description
The application will be described in detail hereinafter with reference to the drawings in conjunction with embodiments. It should be noted that, without conflict, the embodiments of the present application and features of the embodiments may be combined with each other.
In order to further describe the technical means and effects adopted for achieving the preset aim of the application, the following detailed description refers to the specific implementation, structure, characteristics and effects according to the application of the application with reference to the accompanying drawings and preferred embodiments. In the following description, different "an embodiment" or "an embodiment" do not necessarily refer to the same embodiment. Furthermore, the particular features, structures, or characteristics of one or more embodiments may be combined in any suitable manner.
In the prior art, a commonly used multiply-accumulator unit has only one data output, as shown in fig. 1, where D is the data output. If there is an 8bits integer MAC in an AI processor, where m=32, x=16, M is the number of multipliers. In a normal convolution operation, for example, depthwise (depth direction) convolution operations of 3 times 3 are performed, and only 9 multipliers are used in the case of performing the 3 times 3 convolution operations. The MAC under the normal architecture has only one data output end, multipliers used in operation participate in calculation, the unused multipliers are in an idle waiting state, if the convolution of 3 times 3 is calculated, the number of the used multipliers is X' =9, the number of the multipliers in the multiply accumulator unit is 32, a plurality of multipliers are in an idle state, only the convolution calculation is finished, after the calculation result is output, the whole MAC waits for the next operation, the operation utilization rate of the MAC is only 9/32 when the convolution operation of 3 times 3 is performed, and the operation utilization rate is lower.
The application provides a multiply-accumulator operation cluster, as shown in fig. 2, wherein the multiply-accumulator operation cluster comprises a plurality of multiply-accumulator units 1, each multiply-accumulator unit 1 is used for completing multiply-accumulate operation of at least one group of data to be processed, each group of data to be processed comprises two multidimensional data, each multiply-accumulator unit 1 comprises a plurality of multiply-accumulator subunits 11, each multiply-accumulator subunit 11 is used for completing multiply-accumulate operation and outputting multiply-accumulate operation results, wherein when the calculated dimension of two multidimensional data in the data to be processed is smaller than the total dimension of the multiply-accumulator units 1, the multiply-accumulate operation of each group of data to be processed is completed through at least one multiply-accumulator subunit 11 in the multiply-accumulator units 1 and the multiply-accumulate operation result of the data to be processed is output, and/or, as shown in fig. 3, when the data to be processed comprises a plurality of data blocks which are sequentially arranged, the multiply-accumulator subunits 2 in the multiply-accumulator operation cluster are used for completing multiply-accumulate operation of one data block respectively and outputting multiply-accumulate operation results of the data blocks which are sequentially arranged into the multiply-accumulator clusters until all multiply-accumulate operation results of the data are sequentially arranged in the multiply-accumulator cluster are completed.
Specifically, the multiply-accumulator operation cluster comprises a plurality of multiply-accumulator units, each multiply-accumulator unit comprises at least one multiply-accumulator subunit, each multiply-accumulator subunit can independently process data to be processed, when a plurality of groups of data to be processed are respectively sent to the multiply-accumulator subunits in the same multiply-accumulator unit in the same clock period, the multiply-accumulator subunits respectively perform multiply-accumulate operation on the data to be processed which are respectively input, and respectively output operation results, so that the same multiply-accumulator unit performs operation processing on the data to be processed in the same clock period, and the operation utilization rate of the multiply-accumulator unit is improved.
When the calculation dimension of the data to be processed is smaller than that of the multiply accumulator unit, only a few MAC calculation forces can be effectively utilized when the traditional multiply accumulator is used for the data to be processed, as shown in fig. 4, when the 1/4-dimension data to be processed of the multiply accumulator is input, only 1/4 multipliers in the traditional multiply accumulator unit are used, the rest multipliers are idle, and the operation utilization rate is low. When the multiply accumulator unit is divided into a plurality of multiply accumulator subunits, for example, as shown in fig. 5, the input total dimension of the multiply accumulator unit is unchanged, the input dimension of each multiply accumulator subunit is 1/4 of the total dimension, 4 groups of 1/4-dimensional data to be processed are respectively input into one multiply accumulator subunit in one clock period, each multiply accumulator subunit respectively performs data processing, and each multiplier in the multiply accumulator unit is used, so that all operation capacities are utilized, and the operation utilization rate is improved.
For example, a multiply accumulator unit comprises 4 multiply accumulator subunits, each comprising a number of multipliers of 9, that is to say a dimension of the multiply accumulator subunit of 9, the total dimension of this multiply accumulator unit being 36. If two groups of data to be input exist, the calculation dimensions of the two groups of data to be processed are 8 and 9 respectively, in the same clock period, the two groups of data to be processed are respectively subjected to multiply-accumulate operation through the two multiply-accumulator subunits in the multiply-accumulator unit, output results are respectively obtained, the operation utilization rate of the multiply-accumulator unit is 8+9/36 at the moment, if the two groups of data to be processed are subjected to operation processing through the traditional multiply-accumulator unit, two clock periods are needed, one group of data to be processed is processed in each clock period, the operation utilization rate of the multiply-accumulator unit in the two clock periods is 8/36 and 9/36 respectively, and the operation utilization rate of the multiply-accumulator unit is high.
When the input data of the multiply-accumulator operation cluster is not ready in time or the output data of the multiply-accumulator operation cluster is not output in time, line blockage is caused, so that the multiply-accumulator operation cluster cannot enter the next use, and the utilization rate of the multiply-accumulator operation unit is low.
When the data to be processed is processed according to the pipeline processing mode, if a traditional multiply-accumulate device is used, after the data to be processed is subjected to first multiply-accumulate operation through the multiply-accumulate device, the operation result is input into the multiply-accumulate device again to carry out second multiply-accumulate operation, the operation result is input into the multiply-accumulate device again, and the operation utilization rate of the multiply-accumulate device is lower until the operation of the data to be processed is finished.
Thus, for data processed in a pipelined manner, the multiply-accumulator operation clusters are divided into a plurality of multiply-accumulator sub-clusters, the plurality of multiply-accumulator diversity groups are arranged in sequence, the data to be processed comprises a plurality of sequentially arranged data blocks, one data block is input to the first arranged-order multiply-accumulator sub-cluster per clock cycle, the first arranged-order multiply-accumulator sub-cluster processes the input data in the first clock cycle, the processing result is transmitted to the data input end of the second arranged-order multiply-accumulator sub-cluster, the first arranged-order multiply-accumulator diversity group has new data blocks to enter in the second clock cycle, the first arranged-order multiply-accumulator sub-cluster and the second arranged-order multiply-accumulator diversity group process the input data respectively, the processing result of the multiply-accumulator sub-cluster with the second arrangement order is transmitted to the data input end of the multiply-accumulator sub-cluster with the third arrangement order, the processing result of the multiply-accumulator sub-cluster with the first arrangement order is transmitted to the data input end of the multiply-accumulator sub-cluster with the second arrangement order, a new data block is sent to the input end of the multiply-accumulator sub-cluster with the first arrangement order in the third clock cycle, the above process is repeated, the output data of the multiply-accumulator sub-cluster with the previous arrangement order is input to the data input end of the multiply-accumulator sub-cluster with the next arrangement order, so that the multiply-accumulator sub-clusters process the respectively input data simultaneously in the same clock cycle, the data input end of each multiply-accumulator sub-cluster is ready for data in time, and the data output end of each multiply-accumulator sub-cluster takes away the data in time, thereby improving the operation utilization rate of the multiply-accumulator.
For example, the process of a neural network model is often defined as the operation of several layer network layers in sequence. In general, in the calculation process of the layer network layers, the layer1 network layer invokes the whole MAC to perform the operation, the input/output bandwidth of the layer1 network layer is W, the MAC operation result is the input data of the layer2 network layer, after the overall operation of the layer1 network layer is completed, the layer2 network layer continues to invoke the whole MAC to perform the operation until the overall calculation is completed, as shown in fig. 6, the operation process may be considered as time-division multiplexing of the MAC in the AI accelerator system, that is, each layer network layer uses the whole MAC, the operation utilization rate of the MAC is relatively low, and the bandwidth at this time may be considered as the bandwidth of each layer network layer.
The multiply-accumulator operation cluster proposed by the application comprises a plurality of multiply-accumulator sub-clusters, e.g. the multiply-accumulator operation cluster comprises 4 multiply-accumulator sub-clusters p1_mac, p2_mac, p3_mac, p4_mac. And adopting a flow operation processing mode among a plurality of layer network layers, carrying out operation processing on the layer1 network layer by using a multiply-accumulator sub-cluster P1_MAC, carrying out operation processing on the layer2 network layer by using a multiply-accumulator sub-cluster P2_MAC, carrying out operation processing on the layer3 network layer by using a multiply-accumulator sub-cluster P3_MAC, and carrying out operation processing on the layer4 network layer by using a multiply-accumulator sub-cluster P4_MAC. In the first clock period, the data to be processed is input to the input end of the multiply accumulator diversity group P1_MAC, after the operation processing of the multiply accumulator diversity group P1_MAC is finished, the operation processing result of the multiply accumulator diversity group P1_MAC is used as the input data of the multiply accumulator diversity group P2_MAC, in the second clock period, the new data to be processed is input to the input end of the multiply accumulator diversity group P1_MAC, the multiply accumulator diversity group P1_MAC and the multiply accumulator diversity group P2_MAC simultaneously carry out operation processing on the data input by each, after the operation is finished, the operation processing result of the multiply accumulator diversity group P1_MAC is used as the input data of the multiply accumulator sub group P2_MAC, the operation processing result of the multiply accumulator sub group P2_MAC is used as the input data of the multiply accumulator sub group P3_MAC, similarly, the processing result of the multiply accumulator sub group in the former arrangement order is used as the input data of the multiply accumulator sub group in the next arrangement order, as shown in figure 7, the multiply accumulator sub group P1_MAC is sequentially input with the data to be processed, the corresponding multiply accumulator sub group P2_MAC is also sequentially, the bandwidth is increased in the same order, the bandwidth is not increased by the same as the input bandwidth of the multiply accumulator sub-layer, the first order of the input to the filter sub-layer of the filter sub-layer is increased, and the bandwidth is increased by the bandwidth of the respective bandwidth is increased, and the bandwidth is increased by the bandwidth of the bandwidth is increased.
The multiply accumulator operation cluster comprises a plurality of multiply accumulator units, each multiply accumulator unit comprises at least one multiply accumulator subunit, each multiply accumulator subunit can independently process data to be processed, the operation utilization rate of the multiply accumulator units is improved in the same clock period, but the output bandwidth of the multiply accumulator units is increased greatly, the increased output bandwidth can cause the subsequent processing module to be incapable of timely processing, if the data output by the multiply accumulator units can not be timely taken away, the multiply accumulator units can not perform the next operation, line blockage is caused, the operation efficiency of the multiply accumulator units is affected, therefore, the multiply accumulator subunits are combined with the multiply accumulator diversity group, at least one multiply accumulator subunit forms the multiply accumulator sub-cluster, as shown in fig. 8, one multiply accumulator subunit is used as one multiply accumulator sub-cluster, the output data of the previous multiply accumulator subunit is sequentially sent to the data input end of the next multiply accumulator subunit according to arrangement, the output data of the multiply accumulator subunit is not blocked, and the operation utilization rate of the multiply accumulator sub-unit is not increased.
Compared with the prior art, the multiply-accumulator operation cluster comprises a plurality of multiply-accumulator units, each multiply-accumulator unit comprises a plurality of multiply-accumulator subunits, when the calculated dimension of two multi-dimensional data in the data to be processed is smaller than the total dimension of the multiply-accumulator units, the multiply-accumulator subunits in each multiply-accumulator unit can simultaneously carry out multiply-accumulate operation on the data to be processed which are input respectively in the same clock period, the utilization rate of the multiply-accumulator operation units is improved, the output bandwidth of the multiply-accumulator units is also increased, when the data to be processed comprises a plurality of data blocks which are arranged in sequence, one multiply-accumulator diversity group completes one multiply-accumulate operation of one data block, and outputs the multiply-accumulate operation result of the data block to the next multiply-accumulator sub-cluster which is arranged in sequence, so that the processing of the pipeline working mode of the data to be processed is realized, the multiply-accumulator groups can simultaneously process the data which are input respectively in the same clock period, the input data of the multiply-accumulator groups are ready for outputting the data blocks, and the output of the multiply-accumulator operation units are prevented from being blocked, and the problem of the multiply-accumulator operation units is avoided.
In one embodiment, the dimensions of the multiply-accumulator subunits in the same multiply-accumulator unit are the same, the sum of the dimensions of all multiply-accumulator subunits in each multiply-accumulator unit is the same as the total dimension of the multiply-accumulator units, and the dimensions of the multiply-accumulator subunits in a plurality of different multiply-accumulator units are the same or different from each other.
Specifically, the number of multipliers included in a multiply-accumulator unit is the dimension of the multiply-accumulator unit, and the same multiply-accumulator unit includes the same number of multipliers in the multiply-accumulator subunits, and the total number of multipliers in all multiply-accumulator subunits in each multiply-accumulator is equal to the total dimension of each multiply-accumulator unit. The multiply-accumulator operation cluster is provided with a plurality of multiply-accumulator units, a plurality of multiply-accumulator units with different numbers of multipliers are needed to exist in the multiply-accumulator units, and the number of multiply-accumulator units with the same number of multipliers can be a plurality of multiply-accumulator units. For example, a multiply-accumulator operation cluster comprises a plurality of multiply-accumulator units, wherein the multiply-accumulator subunits in both multiply-accumulator units comprise a number of multipliers of 9, the multiply-accumulator subunits in one multiply-accumulator unit comprise a number of multipliers of 12, the multiply-accumulator subunits in one multiply-accumulator unit comprise a number of multipliers of 16, etc.
In one embodiment, when the calculated dimension of a set of data to be processed is less than or equal to the dimension of a multiply-accumulator subunit in at least one multiply-accumulator unit, a target multiply-accumulator unit for computing the data to be processed is determined, and a multiply-accumulate operation is performed on the data to be processed by the multiply-accumulator subunit in the target multiply-accumulator unit, based on the calculated dimension of the data to be processed and the dimension of the multiply-accumulator subunit in the multiply-accumulator unit.
Specifically, when the calculated dimension of a group of data to be processed is smaller than or equal to the dimension of the multiply-accumulator sub-units in at least one multiply-accumulator unit, comparing the calculated dimension of the group of data to be processed with the dimension of the multiply-accumulator sub-units in the multiply-accumulator units, selecting the multiply-accumulator unit with the smallest difference between the calculated dimension and the dimension of the multiply-accumulator sub-unit as a target multiply-accumulator unit, and performing multiply-add operation through the multiply-accumulator sub-unit in an idle state in the target multiply-accumulator unit. For example, the dimensions of the multiply-accumulate sub-units in the multiply-accumulate units are divided into 6, 9, 12 and 16, when the number of multipliers needed to be used by the data to be processed is 8, the multiply-accumulate units with the dimensions larger than 8 of the multiply-accumulate sub-units are taken as candidate multiply-accumulate units, namely, the multiply-accumulate units with the dimensions of the multiply-accumulate sub-units being 9, 12 and 16 are taken as candidate multiply-accumulate units, the difference between the calculated dimensions and the dimensions of the multiply-accumulate sub-units in each candidate multiply-accumulate unit is obtained, the smallest difference is the candidate multiply-accumulate unit with the dimension of the multiply-accumulate sub-unit being 9, and the candidate multiply-accumulate unit is taken as the target multiply-accumulate unit.
In one embodiment, when the calculated dimension of a set of data to be processed is greater than the dimension of the multiply-accumulator subunits in all of the multiply-accumulator units and less than the total dimension of each multiply-accumulator unit, the multiply-accumulate operation of the data to be processed is completed by a plurality of the multiply-accumulator subunits in the multiply-accumulator unit.
Specifically, when the calculated dimension of a group of data to be processed is greater than the dimension of the multiply-accumulator subunits in all the multiply-accumulator units, it is indicated that the operation processing cannot be performed by using one of the multiply-accumulator subunits, and the data to be processed needs to be processed by combining a plurality of the multiply-accumulator subunits in the multiply-accumulator units, that is, the data to be processed is processed by the plurality of the multiply-accumulator subunits in the multiply-accumulator units.
In one embodiment, when the calculated dimension of the data to be processed is greater than the dimension of the multiply-accumulator subunits in all the multiply-accumulator units and less than the total dimension of each multiply-accumulator unit, determining a target multiply-accumulator for operating the data to be processed and a target number of multiply-accumulator subunits in the target multiply-accumulator according to the calculated dimension of the data to be processed and the dimension of the multiply-accumulator subunits in each multiply-accumulator unit, and performing multiply-accumulate operation on the data to be processed through the target number of multiply-accumulator subunits in the target multiply-accumulator.
Specifically, when the calculated dimension of a group of data to be processed is greater than the dimension of the multiply-accumulator subunits in all the multiply-accumulator units, the plurality of multiply-accumulator subunits in the multiply-accumulator units are required to communicate and process the data to be processed. And adding one to the quotient of the calculated dimension of the data to be processed and the dimension of the multiply accumulator sub-units in any multiply accumulator unit as a target quantity, and carrying out operation processing on the data to be processed through the multiply accumulator sub-units with the target quantity in the multiply accumulator unit.
In one embodiment, at least one of the multiply-accumulator subunits in the multiply-accumulator operation cluster acts as a multiply-accumulator sub-cluster.
Specifically, when a plurality of multiply accumulator subunits in the same multiply accumulator unit independently perform operation processing, the operation utilization rate of the multiply accumulator unit is improved, but the output bandwidth of the multiply accumulator unit is doubled, and the increase of the output bandwidth can cause processing line blockage. Therefore, at least one multiply-accumulator subunit is used as a multiply-accumulator sub-unit to be used as a multiply-accumulator sub-group, and the data to be processed is processed in a pipeline mode through the multiply-accumulator sub-group, namely, the data output by the multiply-accumulator sub-group in the former arrangement order is input to the data input end of the multiply-accumulator sub-group in the latter arrangement order, so that although the output bandwidth of the multiply-accumulator unit is increased, the output data of the multiply-accumulator sub-unit is processed in time, the blocking phenomenon is not generated, and the operation utilization rate of the multiply-accumulator is improved.
In one embodiment, when the calculation dimension of all the data blocks in the data to be processed is smaller than or equal to the dimension of the multiply-accumulator subunits in any multiply-accumulator unit, each multiply-accumulator subunit in the multiply-accumulator unit is used as a multiply-accumulator sub-group, the multiply-accumulate operation of one data block is respectively completed through a plurality of multiply-accumulator subunits in the multiply-accumulator unit, and the multiply-accumulate operation result of the data block is output to the next multiply-accumulator subunit in sequence until the multiply-accumulate operation of all the data blocks is completed, and the multiply-accumulate operation result of the data to be processed is output.
Specifically, when the calculation dimension of all the data blocks in the data to be processed is smaller than or equal to the dimension of the multiply-accumulator subunits in any multiply-accumulator unit, and when the first operation result of the data blocks needs to be subjected to multiply-accumulate operation again, namely, processing according to a pipeline processing mode, each multiply-accumulator subunit in the multiply-accumulator units is used as a multiply-accumulator sub-cluster, and the data to be processed is processed in the pipeline mode through the multiply-accumulator diversity group, namely, the data output by the multiply-accumulator subunits in the former arrangement order is input to the multiply-accumulator subunits in the latter arrangement order, so that the output bandwidth of the multiply-accumulator units is increased, but the output bandwidth of the multiply-accumulator subunits is unchanged, no blocking phenomenon is generated, and the operation utilization rate of the multiply-accumulator is improved.
In one embodiment, as shown in fig. 9, the multiply-and-accumulator unit includes a plurality of data input modules 12, a plurality of multiply operation modules 111, a plurality of multi-stage addition operation modules 112 and a plurality of data output modules 113, wherein one multiply operation module 111, one multi-stage addition operation module 112 and a plurality of data output modules 113 form one multiply-and-accumulator subunit 11, each multiply operation module includes a plurality of multipliers, each multi-stage addition operation module includes a plurality of adders, an input end of each data input module 12 is electrically connected with a data providing module, an output end of each data input module 12 is electrically connected with an input end of one multiply operation module 111, an output end of each multiply operation module 111 is electrically connected with an input end of one multi-stage addition operation module 112, and an output end of each multi-stage addition operation module 112 is electrically connected with a plurality of data output modules 113.
Specifically, the multiply accumulator unit includes a plurality of data input modules, a plurality of multiply operation modules, a plurality of multi-stage addition operation modules, and a plurality of data output modules, where one multiply operation module, one multi-stage addition operation module, and a plurality of data output modules form a multiply accumulator subunit. For each multiply-accumulator subunit, the data providing module inputs the data to be processed to the input end of the data input module, the output end of the data input module transmits the data to the input end of the multiply-operation module, the multiply-operation module performs multiply operation on the input data, then the multiply operation result is output to the input end of the multi-stage addition operation module, the multi-stage addition operation module performs accumulation operation on the input data to obtain a plurality of accumulation operation results, and each accumulation operation result is output to one data output module.
As shown in fig. 10, a plurality of multipliers constitute a multiplication module, a plurality of adders constitute a multi-stage addition module, a plurality of data output terminals C1, C2, C3, C4, and D, input data is A1. The multiplication operation module, the multi-stage addition operation module and the plurality of data output ends are used as a multiplication accumulator subunit.
The application also provides a data processing method applied to the multiply-accumulator operation cluster, as shown in fig. 11, comprising the following steps:
112, acquiring data to be processed, and determining a target multiply-accumulator unit corresponding to the data to be processed according to the calculated dimension of the data to be processed and the dimension of the multiply-accumulator subunit in each multiply-accumulator unit;
And 114, inputting the data to be processed into a multiply-accumulate subunit in an idle state in the target multiply-accumulate device, and performing multiply-accumulate operation on the data to be processed through the target multiply-accumulate device to obtain a multiply-accumulate operation result of the data to be processed.
Specifically, according to the calculated dimension of the data to be processed and the dimension of the multiply-accumulator subunit in each multiply-accumulator unit, determining a target multiply-accumulator unit corresponding to the data to be processed, and performing multiply-accumulate operation on the data to be processed through the multiply-accumulator subunit in an idle state in the target multiply-accumulator unit to obtain a multiply-accumulate operation result of the data to be processed.
For example, when the calculated dimension of the data to be processed is 8, the dimensions of the multiply-accumulate sub-units in the multiply-accumulate units are 6,9,12,16 respectively, and the multiply-accumulate unit with the dimension of 9 in each multiply-accumulate sub-unit in the multiply-accumulate units is selected as the target multiply-accumulate unit, and the multiply-accumulate operation is performed on the data to be processed through the multiply-accumulate sub-units in the idle state in the target multiply-accumulate unit.
When a plurality of groups of data to be processed need to be processed, the target multiply accumulator units corresponding to each group of data to be processed are respectively determined, the groups of data to be processed are input to the corresponding target multiply accumulator units, the simultaneous processing of the data input by the multiple objective scale multiplication accumulator units is realized, and the data processing efficiency of the multiply accumulator operation cluster is improved.
In one embodiment, obtaining the data to be processed, determining a target multiply-accumulator unit corresponding to the data to be processed according to a calculated dimension of the data to be processed and a sub-dimension of a multiply-accumulator subunit in each multiply-accumulator unit, includes:
And taking the candidate multiply accumulator unit which is in an idle working state and has the largest dimension of the multiply accumulator subunit as a target multiply accumulator unit corresponding to the data to be processed.
Specifically, the calculated dimension of the data to be processed is compared with the dimension of a multiply accumulator subunit in each multiply accumulator unit, the multiply accumulator units with the dimension of the multiply accumulator subunit being greater than or equal to the calculated dimension of the data to be processed are used as candidate multiply accumulator units, a plurality of candidate multiply accumulator units are provided, the candidate multiply accumulator unit which is in an idle state and has the largest dimension of the multiply accumulator subunits is selected from the plurality of candidate multiply accumulator units as a target multiply accumulator unit, and multiply and add operation is carried out on the data to be processed by using the target multiply accumulator unit.
Compared with the prior art, the data processing method provided by the application has the advantages that the target multiply accumulator unit corresponding to the data to be processed is determined according to the calculation dimension of the data to be processed and the dimension included by the multiply accumulator sub-units in each multiply accumulator unit, the data to be processed is input to the data input end of the multiply accumulator sub-unit in the target multiply accumulator unit, and the multiply accumulator sub-units can independently work and can simultaneously perform data processing, so that the operation utilization rate and the total output bandwidth of the multiply accumulator module are improved.
It should be understood that various modifications may be made to the embodiments of the application herein. Therefore, the above description should not be taken as limiting, but merely as exemplification of the embodiments. Other modifications within the scope and spirit of the application will occur to persons of ordinary skill in the art.
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments of the application and, together with a general description of the application given above, and the detailed description of the embodiments given below, serve to explain the principles of the application.
These and other characteristics of the application will become apparent from the following description of a preferred form of embodiment, given as a non-limiting example, with reference to the accompanying drawings.
It is also to be understood that, although the application has been described with reference to some specific examples, those skilled in the art can certainly realize many other equivalent forms of the application.
The above and other aspects, features and advantages of the present application will become more apparent in light of the following detailed description when taken in conjunction with the accompanying drawings.
Specific embodiments of the application will be described hereinafter with reference to the accompanying drawings, in which, however, it is to be understood that the embodiments so applied are merely examples of the application, which may be practiced in various ways. Well-known and/or repeated functions and constructions are not described in detail to avoid obscuring the application in unnecessary or unnecessary detail. Therefore, specific structural and functional details disclosed herein are not intended to be limiting, but merely as a basis for the claims and as a representative basis for teaching one skilled in the art to variously employ the present application in virtually any appropriately detailed structure.
The specification may use the word "in one embodiment," "in another embodiment," "in yet another embodiment," or "in other embodiments," which may each refer to one or more of the same or different embodiments in accordance with the application.
The above embodiments are only exemplary embodiments of the present application and are not intended to limit the present application, the scope of which is defined by the claims. Various modifications and equivalent arrangements of this application will occur to those skilled in the art, and are intended to be within the spirit and scope of the application.
Claims (5)
1. A multiply-accumulator operation cluster, characterized in that the multiply-accumulator operation cluster comprises a plurality of multiply-accumulator units, each of which is used for performing multiply-accumulator operations of at least one set of data to be processed, each set of data to be processed comprising two multidimensional data, each of which comprises a plurality of multiply-accumulator subunits, the dimensions of the multiply-accumulator subunits in the same multiply-accumulator unit being identical, each of which is used for performing one multiply-accumulator operation and outputting a multiply-accumulator operation result,
When the calculated dimension of two pieces of multi-dimensional data in the data to be processed is smaller than the total dimension of the multiply-accumulate units, completing multiply-accumulate operation of each group of data to be processed through at least one multiply-accumulate subunit in the multiply-accumulate units, and outputting multiply-accumulate operation results of the data to be processed;
At least one multiply-accumulator subunit in the multiply-accumulator operation cluster is used as a multiply-accumulator sub-cluster, when the data to be processed comprises a plurality of data blocks which are sequentially arranged, multiply-accumulate operation of one data block is respectively completed through a plurality of multiply-accumulator sub-clusters in the multiply-accumulator operation cluster, and multiply-accumulate operation results of the data blocks are output to the next multiply-accumulator sub-cluster which is sequentially arranged until multiply-accumulate operation of all the data blocks is completed, and multiply-accumulate operation results of the data to be processed are output;
When the calculation dimension of a group of data to be processed is smaller than or equal to the dimension of a multiply-accumulator subunit in at least one multiply-accumulator unit, determining a target multiply-accumulator unit for calculating the data to be processed according to the calculation dimension of the data to be processed and the dimension of the multiply-accumulator subunit in the multiply-accumulator unit, and performing multiply-accumulate operation on the data to be processed through the multiply-accumulator subunit in the target multiply-accumulator unit;
When the calculated dimension of the data to be processed is larger than the dimension of the multiply accumulator subunits in all the multiply accumulator units and smaller than the total dimension of each multiply accumulator unit, determining a target multiply accumulator for calculating the data to be processed and the target number of multiply accumulator subunits in the target multiply accumulator according to the calculated dimension of the data to be processed and the dimension of the multiply accumulator subunits in each multiply accumulator unit, and performing multiply accumulation operation on the data to be processed through the multiply accumulator subunits of the target number in the target multiply accumulator;
in the same clock period, carrying out multiply-accumulate operation on a plurality of groups of data to be processed through a plurality of multiply-accumulator subunits in the target multiply-accumulator unit;
The multiply-accumulate unit comprises a plurality of data input modules, a plurality of multiply operation modules, a plurality of multi-stage addition operation modules and a plurality of data output modules, wherein one multiply operation module, one multi-stage addition operation module and the plurality of data output modules form a multiply-accumulate subunit, each multiply operation module comprises a plurality of multipliers, and each multi-stage addition operation module comprises a plurality of adders;
The input end of each data input module is electrically connected with the data providing module respectively, the output end of each data input module is electrically connected with the input end of one multiplication operation module respectively, the output end of each multiplication operation module is electrically connected with the input end of one multi-stage addition operation module, and the output end of each multi-stage addition operation module is electrically connected with a plurality of data output modules respectively.
2. The multiply-accumulator operation cluster of claim 1, wherein a sum of dimensions of all multiply-accumulator subunits in each of the multiply-accumulator units is the same as a total dimension of the multiply-accumulator units, and dimensions of multiply-accumulator subunits in a plurality of different multiply-accumulator units are the same or different from each other.
3. The multiply-accumulator operation cluster according to claim 1, wherein when the calculation dimension of all the data blocks in the data to be processed is smaller than or equal to the dimension of the multiply-accumulator subunits in any multiply-accumulator unit, each multiply-accumulator subunit in the multiply-accumulator unit is used as a multiply-accumulator sub-cluster, the multiply-accumulate operation of one data block is respectively completed through a plurality of multiply-accumulator subunits in the multiply-accumulator unit, and the multiply-accumulate operation result of the data block is output to the next multiply-accumulator subunit in sequence until the multiply-accumulate operation of all the data blocks is completed, and the multiply-accumulate operation result of the data to be processed is output.
4. A data processing method applied to the multiply-accumulator operation cluster according to any one of the preceding claims 1-3, characterized in that the data processing method comprises:
Acquiring data to be processed, and determining a target multiply-accumulator unit corresponding to the data to be processed according to the calculated dimension of the data to be processed and the dimension of a multiply-accumulator subunit in each multiply-accumulator unit;
And inputting the data to be processed into a multiply-accumulate subunit in an idle state in the target multiply-accumulate device, and performing multiply-accumulate operation on the data to be processed through the target multiply-accumulate device to obtain a multiply-accumulate operation result of the data to be processed.
5. The method of claim 4, wherein the obtaining the data to be processed, determining the target multiply-accumulator unit corresponding to the data to be processed according to the calculated dimension of the data to be processed and the sub-dimension of the multiply-accumulator sub-unit in each multiply-accumulator unit, comprises:
Taking a multiply accumulator unit, of which the dimension of a multiply accumulator subunit is greater than or equal to the calculated dimension of the data to be processed, as a candidate multiply accumulator unit;
and taking the candidate multiply accumulator unit which is in the idle working state and has the largest dimension of the multiply accumulator subunit as a target multiply accumulator unit corresponding to the data to be processed.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202410985037.8A CN118519613B (en) | 2024-07-23 | 2024-07-23 | Multiply-accumulator operation cluster and data processing method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202410985037.8A CN118519613B (en) | 2024-07-23 | 2024-07-23 | Multiply-accumulator operation cluster and data processing method |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN118519613A CN118519613A (en) | 2024-08-20 |
| CN118519613B true CN118519613B (en) | 2024-12-17 |
Family
ID=92282189
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202410985037.8A Active CN118519613B (en) | 2024-07-23 | 2024-07-23 | Multiply-accumulator operation cluster and data processing method |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN118519613B (en) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN104252331A (en) * | 2013-06-29 | 2014-12-31 | 华为技术有限公司 | Multiplying accumulator |
| CN117371498A (en) * | 2022-06-28 | 2024-01-09 | 中国科学院深圳先进技术研究院 | Data processing methods, multiply-accumulators, computing architecture, equipment and storage media |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111859273B (en) * | 2017-12-29 | 2025-01-21 | 华为技术有限公司 | Matrix Multiplier |
| CN110188869B (en) * | 2019-05-05 | 2021-08-10 | 北京中科汇成科技有限公司 | Method and system for integrated circuit accelerated calculation based on convolutional neural network algorithm |
| CN116450086B (en) * | 2022-01-05 | 2024-07-05 | 腾讯科技(深圳)有限公司 | Chip comprising multiply-accumulator, terminal and control method |
-
2024
- 2024-07-23 CN CN202410985037.8A patent/CN118519613B/en active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN104252331A (en) * | 2013-06-29 | 2014-12-31 | 华为技术有限公司 | Multiplying accumulator |
| CN117371498A (en) * | 2022-06-28 | 2024-01-09 | 中国科学院深圳先进技术研究院 | Data processing methods, multiply-accumulators, computing architecture, equipment and storage media |
Also Published As
| Publication number | Publication date |
|---|---|
| CN118519613A (en) | 2024-08-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Kang | Accelerator-aware pruning for convolutional neural networks | |
| CN109522052B (en) | Computing device and board card | |
| CN110705703B (en) | Sparse neural network processor based on systolic array | |
| CN112698811B (en) | Neural network random number generator shared circuit, shared method, and processor chip | |
| CN113918120B (en) | Computing device, neural network processing equipment, chip and method for processing data | |
| CN111008003B (en) | Data processors, methods, chips and electronic devices | |
| CN109284824B (en) | A device for accelerating convolution and pooling operations based on reconfigurable technology | |
| CN116167424B (en) | CIM-based neural network accelerator, method, storage and processing system and equipment | |
| CN116710912A (en) | A matrix multiplier and a control method for the matrix multiplier | |
| CN111047022A (en) | Computing device and related product | |
| TW202020654A (en) | Digital circuit with compressed carry | |
| CN118760651A (en) | A sparse on-chip training hardware accelerator architecture and implementation method thereof | |
| CN115496190B (en) | Efficient reconfigurable hardware accelerator for convolutional neural network training | |
| CN110531954B (en) | Multiplier, data processing method, chip and electronic device | |
| CN110362293B (en) | Multipliers, data processing methods, chips and electronic devices | |
| CN116702851A (en) | Pulsation array unit and pulsation array structure suitable for weight multiplexing neural network | |
| CN1020170C (en) | high speed digital processor | |
| WO2024144950A1 (en) | Multi-modal systolic array for matrix multiplication | |
| CN110059809B (en) | Computing device and related product | |
| CN113743046B (en) | Integrated storage and computing structure and data splitting Integrated storage and computing structure | |
| CN118519613B (en) | Multiply-accumulator operation cluster and data processing method | |
| CN111401533A (en) | Special calculation array for neural network and calculation method thereof | |
| CN107368459B (en) | Scheduling method of reconfigurable computing structure based on arbitrary dimension matrix multiplication | |
| CN114239819B (en) | A DSP-based hybrid bit-width accelerator and fusion computing method | |
| JP6888073B2 (en) | Chip equipment and related products |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |