IP Library Granted Patent US 11,544,546
Granted Patent B2
US 11,544,546 · App. 16/903,304 · Granted Jan 3, 2023

Integrated circuit chip device

Inventors: Shaoli Liu (Beijing, CN); Xinkai Song (Beijing, CN); Bingrui Wang (Beijing, CN); Yao Zhang (Beijing, CN); Shuai Hu (Beijing, CN)
Assignee: CAMBRICON TECHNOLOGIES CORPORATION LIMITED
G06N3/063G06N3/04
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,544,546
App. No.
16/903,304
Granted
Jan 3, 2023
Kind
B2
Abstract

Provided are an integrated circuit chip device and related products. The integrated circuit chip device is used for performing a multiplication operation, a convolution operation or a training operation of a neural network. The device has the advantages of small calculation amount and low power consumption.

Claims (134)

1. An integrated circuit chip device, comprising:

a main processing circuit; and

a plurality of basic processing circuits,

wherein:

the main processing circuit comprises a data type conversion circuit configured to convert data between a floating point data type and a fixed point data type;

the plurality of basic processing circuits are arranged as an array having m rows and n columns, each basic processing circuit is connected to an adjacent basic processing circuit, the main processing circuit is connected to n basic processing circuits in a first row, n basic processing circuits in an m th row, and m basic processing circuits in a first column;

the main processing circuit is configured to:

obtain an input data block, a weight data block, and a multiplication instruction,

convert the input data block and the weight data block to an input data block of the fixed point type and a weight data block of the fixed point type, respectively, using the data type conversion circuit,

classify the input data block of the fixed point type into a distribution data block of the fixed point type according to the multiplication instruction,

classify the weight data block of the fixed point type into a broadcasting data block of the fixed point type according to the multiplication instruction,

partition the distribution data block of the fixed point type to obtain a plurality of basic data blocks of the fixed point type,

distribute the plurality of basic data blocks of the fixed point type to at least one of the plurality of basic processing circuits connected to the main processing circuit, and

broadcast the broadcasting data block of the fixed point type to the basic processing circuits connected to the main processing circuit;

the at least one of the plurality of basic processing circuits is configured to:

perform computations of a neural network in parallel according to the broadcasting data block of the fixed point type and the basic data blocks of the fixed point type to obtain computation results, and

transfer the computation results to the main processing circuit through the basic processing circuits connected to the main processing circuit; and

the main processing circuit is configured to process the computation results to obtain an instruction result of the multiplication instruction.

2. The integrated circuit chip device of claim 1 , wherein:

the at least one of the plurality of basic processing circuits is configured to:

perform multiplication on the broadcasting data block of the fixed point type and the received basic data blocks of the fixed point type to obtain products of the fixed point type, and

transfer the products of the fixed point type as the computation results to the main processing circuit through the basic processing circuits that are connected to the main processing circuit; and

the main processing circuit is configured to:

convert the products of the fixed point type to products of the floating point type using the data type conversion circuit,

accumulate the products of the floating point type to obtain accumulation results, and

sort the accumulation results to obtain the instruction result.

3. The integrated circuit chip device of claim 1 , wherein:

the at least one of the plurality of basic processing circuits are configured to:

perform inner product computations on the broadcasting data block of the fixed point type and the received basic data blocks of the fixed point type to obtain inner products of the fixed point type, and

transfer the inner products of the fixed point type as the computation results to the main processing circuit through the basic processing circuits that are connected to the main processing circuit; and

the main processing circuit is configured to:

convert the inner products of the fixed point type to inner products of the floating point type using the data type conversion circuit, and

sort the inner products of the floating point type to obtain the instruction result.

4. The integrated circuit chip device of claim 1 , wherein the main processing circuit is configured to:

broadcast the broadcasting data block of the fixed point type as a whole to the basic processing circuits that are connected to the main processing circuit.

5. The integrated circuit chip device of claim 1 , wherein the main processing circuit is configured to:

partition the broadcasting data block of the fixed point type into a plurality of partial broadcasting data blocks, and

sequentially broadcast the plurality of partial broadcasting data blocks to the basic processing circuits that are connected to the main processing circuit.

6. The integrated circuit chip device of claim 5 , wherein the at least one of the plurality of basic processing circuits is configured to:

perform inner product processing on the partial broadcasting data blocks and the basic data blocks of the fixed point type to obtain results of inner product processing, and

transfer the results of inner product processing to the main processing circuit.

7. The integrated circuit chip device of claim 5 , wherein the at least one of the plurality of basic processing circuits is configured to:

reuse the partial broadcasting data blocks for p times,

perform p times of inner product computations on the partial broadcasting data blocks and p basic data blocks of the fixed point type to obtain p partial processing results, and

transfer the p partial computation results to the main processing circuit, wherein p is an integer greater than or equal to 2.

8. The integrated circuit chip device of claim 1 , wherein:

the main processing circuit includes a main register or a main on-chip caching circuit, and

each basic processing circuit includes a basic register or a basic on-chip caching circuit.

9. The integrated circuit chip device of claim 8 , wherein the main processing circuit includes at least one of:

a vector computing unit circuit, an arithmetic and logic unit circuit, an accumulator circuit, a matrix transposition circuit, a direct memory access circuit, or a data rearrangement circuit.

10. The integrated circuit chip device of claim 1 , wherein:

the input data block includes a vector or a matrix, and

the weight data block includes a vector or a matrix.

11. An integrated circuit chip device, comprising:

a main processing circuit; and

a plurality of basic processing circuits,

wherein:

the main processing circuit comprises a data type conversion circuit configured to convert data between a floating point data type and a fixed point data type;

the main processing circuit is configured to:

obtain an input data block, a weight data block, and a multiplication instruction,

convert the input data block and the weight data block to an input data block of the fixed point type and a weight data block of the fixed point type, respectively, using the data type conversion circuit,

classify the input data block of the fixed point type into a distribution data block of the fixed point type according to the multiplication instruction,

classify the weight data block of the fixed point type into a broadcasting data block of the fixed point type according to the multiplication instruction,

partition the distribution data block of the fixed point type to obtain a plurality of basic data blocks of the fixed point type,

distribute the plurality of basic data blocks of the fixed point type to at least one basic processing circuit of the plurality of basic processing circuits, and

broadcast the broadcasting data block of the fixed point type to the plurality of basic processing circuits;

the at least one basic processing circuit is configured to:

perform computations on the broadcasting data block of the fixed point type and the received basic data blocks of the fixed point type to obtain computation results, and

transfer the computation results to the main processing circuit; and

the main processing circuit is configured to process the computation results to obtain an instruction result of the multiplication instruction.

12. The integrated circuit chip device of claim 11 , wherein:

the at least one basic processing circuit is configured to:

perform multiplication on the broadcasting data block of the fixed point type and the received basic data blocks of the fixed point type to obtain products of the fixed point type, and

transfer the products of the fixed point type as the computation results to the main processing circuit, and the main processing circuit is configured to:

convert the products of the fixed point type to products of the floating point type using the data type conversion circuit,

accumulate the products of the floating point type to obtain accumulation results, and

sort the accumulation results to obtain the instruction result.

13. The integrated circuit chip device of claim 11 , wherein:

the at least one basic processing circuit is configured to:

perform inner product computations on the broadcasting data block of the fixed point type and the received basic data blocks of the fixed point type to obtain inner products of the fixed point type, and

transfer the inner products of the fixed point type as the computation results to the main processing circuit, and

the main processing circuit is configured to:

convert the inner products of the fixed point type to inner products of the floating point type using the data type conversion circuit, and

sort the inner products of the floating point type to obtain the instruction result.

14. The integrated circuit chip device of claim 11 , further comprising:

a branch processing circuit located between the main processing circuit and at least one basic processing circuit, wherein the branch processing circuit is configured to forward data between the main processing circuit and the at least one basic processing circuit.

15. The integrated circuit chip device of claim 11 , wherein the main processing circuit is configured to:

broadcast the broadcasting data block of the fixed point type as a whole to the plurality of basic processing circuits.

16. The integrated circuit chip device of claim 11 , wherein the main processing circuit is configured to:

partition the broadcasting data block of the fixed point type into a plurality of partial broadcasting data blocks, and

sequentially broadcast the plurality of partial broadcasting data blocks to the plurality of basic processing circuits.

17. The integrated circuit chip device of claim 16 , wherein the at least one basic processing circuits is configured to:

perform inner product processing on the partial broadcasting data blocks and the basic data blocks of the fixed point type to obtain results of inner product processing, and

transfer the results of inner product processing to the main processing circuit.

18. The integrated circuit chip device of claim 16 , wherein the at least one basic processing circuit is configured to:

reuse the partial broadcasting data blocks for n times,

perform n times of inner product computations on the partial broadcasting data blocks and n basic data blocks of the fixed point type to obtain n partial processing results, and

transfer the n partial processing results to the main processing circuit, wherein n is an integer greater than or equal to 2.

19. A method for performing computations using an integrated circuit, the method comprising:

obtaining, by a main processing circuit of the integrated circuit, an input data block, a weight data block, and a multiplication instruction;

converting, using a data type conversion circuit of the main processing circuit, the input data block and the weight data block to an input data block of the fixed point type and a weight data block of the fixed point type, respectively;

classifying, by the main processing circuit, the input data block of the fixed point type into a distribution data block of the fixed point type according to the multiplication instruction;

classifying, by the main processing circuit, the weight data block of the fixed point type into a broadcasting data block of the fixed point type according to the multiplication instruction;

partitioning, by the main processing circuit, the distribution data block of the fixed point type to obtain a plurality of basic data blocks of the fixed point type;

distributing, by the main processing circuit, the plurality of basic data blocks of the fixed point type to at least one of a plurality of basic processing circuits connected to the main processing circuit;

broadcasting, by the main processing circuit, the broadcasting data block of the fixed point type to the plurality of basic processing circuits connected to the main processing circuit;

performing, by the at least one of the plurality of basic processing circuits, computations of a neural network in parallel according to the broadcasting data block of the fixed point type and the basic data blocks of the fixed point type to obtain computation results;

transferring, by the at least one of the plurality of basic processing circuits, the computation results to the main processing circuit through the basic processing circuits connected to the main processing circuit; and

processing, by the main processing circuit, the computation results to obtain an instruction result of the multiplication instruction.

20. The method of claim 19 , comprising:

performing, by the at least one of the plurality of basic processing circuits, multiplication on the broadcasting data block of the fixed point type and the received basic data blocks of the fixed point type to obtain products of the fixed point type;

transferring, by the at least one of the plurality of basic processing circuits, the products of the fixed point type as the computation results to the main processing circuit through the basic processing circuits that are connected to the main processing circuit;

converting, by the main processing circuit, the products of the fixed point type to products of the floating point type using the data type conversion circuit;

accumulating, by the main processing circuit, the products of the floating point type to obtain accumulation results; and

sorting, by the main processing circuit, the accumulation results to obtain the instruction result.

21. The method of claim 19 , comprising:

performing, by the at least one of the plurality of basic processing circuits, inner product computations on the broadcasting data block of the fixed point type and the received basic data blocks of the fixed point type to obtain inner products of the fixed point type;

transferring, by the at least one of the plurality of basic processing circuits, the inner products of the fixed point type as the computation results to the main processing circuit;

converting, by the main processing circuit, the inner products of the fixed point type to inner products of the floating point type using the data type conversion circuit; and

sorting, by the main processing circuit, the inner products of the floating point type to obtain the instruction result.

22. The method of claim 19 , comprising:

forwarding, by a branch processing circuit located between the main processing circuit and at least one basic processing circuit, data between the main processing circuit and the at least one basic processing circuit.

23. The method of claim 19 , comprising:

broadcasting, by the main processing circuit, the broadcasting data block of the fixed point type as a whole to the plurality of basic processing circuits.

24. The method of claim 19 , comprising:

partitioning, by the main processing circuit, the broadcasting data block of the fixed point type into a plurality of partial broadcasting data blocks; and

sequentially broadcasting, by the main processing circuit, the plurality of partial broadcasting data blocks to the plurality of basic processing circuits.

25. The method of claim 24 , comprising:

performing, by the at least one of the plurality of basic processing circuits, inner product processing on the partial broadcasting data blocks and the basic data blocks of the fixed point type to obtain results of inner product processing; and

transferring, by the at least one of the plurality of basic processing circuits, the results of inner product processing to the main processing circuit.

26. The method of claim 24 , comprising:

reusing, by the at least one of the plurality of basic processing circuits, the partial broadcasting data blocks for n times;

performing, by the at least one of the plurality of basic processing circuits, n times of inner product computations on the partial broadcasting data blocks and n basic data blocks of the fixed point type to obtain n partial processing results; and

transferring, by the at least one of the plurality of basic processing circuits, the n partial processing results to the main processing circuit, wherein n is an integer greater than or equal to 2.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2020
From: LIU, SHAOLI; SONG, XINKAI; WANG, BINGRUI; ZHANG, YAO; HU, SHUAI
To: CAMBRICON TECHNOLOGIES CORPORATION LIMITED
Reel/Frame 052956/0816 →
Priority Claims (7)
CN 201711455388.4 · Dec 27, 2017 · national
CN 201711455397.3 · Dec 27, 2017 · national
CN 201711466943.3 · Dec 28, 2017 · national
CN 201711468629.9 · Dec 28, 2017 · national
CN 201711469408.3 · Dec 28, 2017 · national
CN 201711469614.4 · Dec 28, 2017 · national
CN 201711469615.9 · Dec 28, 2017 · national
Continuity (2)
Continuation PCTCN2018123929 · Dec 26, 2018
Related Publication 20200311531A1 · Oct 1, 2020