IP Library Granted Patent US 11,610,099
Granted Patent B2
US 11,610,099 · App. 16/182,426 · Granted Mar 21, 2023

Neural network architecture using single plane filters

Inventor: Christopher Martin (Leighton Buzzard, GB)
Assignee: Imagination Technologies Limited
G06N3/063G06F7/5443G06F17/15G06N3/04G06N3/0481G06N3/0454
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,610,099
App. No.
16/182,426
Granted
Mar 21, 2023
Kind
B2
Abstract

Hardware for implementing a Deep Neural Network (DNN) having a convolution layer, the hardware comprising an input buffer configured to provide data windows to a plurality of convolution engines, each data window comprising a single input plane; and each of the plurality of convolution engines being operable to perform a convolution operation by applying a filter to a data window, each filter comprising a set of weights for combination with respective data values of a data window, and each of the plurality of convolution engines comprising: multiplication logic operable to combine a weight of the filter with a respective data value of the data window provided by the input buffer; and accumulation logic configured to accumulate the results of a plurality of combinations performed by the multiplication logic so as to form an output for a respective convolution operation.

Claims (32)

1. Hardware for implementing a Deep Neural Network (DNN) having a convolution layer, the hardware comprising:

an input buffer configured to provide data windows to a plurality of convolution engines, each data window comprising a single input plane; and

each of the plurality of convolution engines being operable to perform a convolution operation by applying a filter to a data window, each filter comprising a set of weights for multiplication with respective data values of a data window, and each of the plurality of convolution engines comprising:

multiplication logic operable to multiply a weight of the filter with a respective data value of the data window provided by the input buffer; and

accumulation logic configured to accumulate the results of a plurality of multiplications performed by the multiplication logic so as to form an output for a respective convolution operation.

2. Hardware as claimed in claim 1 , wherein the number of weights in a filter is the same as the number of data values in a data window.

3. Hardware as claimed in claim 1 , wherein each of the plurality of convolution engines further comprises control logic configured to request a filter and a date window.

4. Hardware as claimed in claim 3 , wherein the control logic is control configured to cause the multiplication logic to multiply a weight with a respective data value if the weight and/or data value is non-zero, and otherwise not cause the multiplication logic to multiply that weight with that data value.

5. Hardware as claimed in claim 4 , wherein the control logic is configured to identify zero weights in weights received at the convolution engine using sparsity data provided with those weights.

6. Hardware as claimed in claim 4 , wherein the control logic is configured to identify zero data values in data values received at the convolution engine using sparsity data provided with those data values.

7. Hardware as claimed in claim 5 , wherein the sparsity data comprises a binary string, each bit of the binary string corresponding to a respective weight of the set of weights and indicating whether that weight is zero.

8. Hardware as claimed in claim 6 , wherein the sparsity data comprises a binary string, each bit of the binary string corresponding to a respective data value of the set of data values and indicating whether that data value is zero.

9. Hardware as claimed in claim 4 , wherein the hardware further comprises input data logic configured to form the sparsity data on receiving data values of a data window for provision to one of more of the plurality of convolution engines.

10. Hardware as claimed in claim 1 , wherein the hardware further comprises an input module that comprises the input buffer, the input module being configured to discard a data window once a single filter has been applied to that data window.

11. Hardware as claimed in claim 1 , wherein each convolution engine is configured to receive configuration information identifying a predefined sequence of convolution operations to perform and the control logic is configured to request weights and data values for multiplication at the multiplication logic in accordance with that predefined sequence.

12. Hardware as claimed in claim 1 , wherein the hardware further comprises one or more weight buffer modules, each configured to provide weights of one or more filters to any of the plurality of convolution engines.

13. Hardware as claimed in claim 12 , wherein the weight buffer modules are accessible to the convolution engines over an interconnect and the control logic of each convolution engine is configured to request weights from the weight buffer modules using an identifier of the filter to which the weights belong.

14. Hardware as claimed in claim 13 , wherein all of the weight buffer modules are accessible to all of the convolution engines over the interconnect.

15. Hardware as claimed in claim 1 , wherein the multiplication logic comprises a single multiplier.

16. Hardware as claimed in claim 1 , wherein the plurality of convolution engines are arranged to concurrently perform respective convolution operations and the hardware further comprises convolution output logic configured to combine the outputs from the plurality of convolution engines and make available those outputs for subsequent processing according to the DNN.

17. Hardware as claimed in claim 1 , wherein, when the output of a convolution engine is a partial accumulation for the convolution operation, the convolution output logic is configured to cause the partial accumulation to be available for use in a subsequent continuation of that convolution operation.

18. Hardware as claimed in claim 1 , wherein the hardware is embodied on an integrated circuit.

19. A method for implementing, in hardware, a Deep Neural Network (DNN) having a convolution layer, the hardware comprising an input buffer configured to provide data windows to a plurality of convolution engines; and each of the plurality of convolution engines being operable to perform a convolution operation by applying a filter to a data window, each filter comprising a set of weights for multiplication with respective data values of a data window, the method comprising, at each of the plurality of convolution engines:

receiving, from the input buffer, a data window comprising a single input plane;

receiving, for a convolution operation, weights of a filter, the weights corresponding to the data values in the received data window;

for each weight and its respective data value, multiplying the weight by the respective data value; and

accumulating the results of the multiplying operations so as to form an output for a respective convolution operation.

20. A non-transitory computer readable storage medium having stored thereon computer readable instructions that, when executed at a computer system, cause the computer system to perform a method for implementing, in hardware, a Deep Neural Network (DNN) having a convolution layer, the hardware comprising an input buffer configured to provide data windows to a plurality of convolution engines; and each of the plurality of convolution engines being operable to perform a convolution operation by applying a filter to a data window, each filter comprising a set of weights for multiplication with respective data values of a data window, the method comprising, at each of the plurality of convolution engines:

receiving, from the input buffer, a data window comprising a single input plane;

receiving, for a convolution operation, weights of a filter, the weights corresponding to the data values in the received data window;

for each weight and its respective data value, multiplying the weight by the respective data value; and

accumulating the results of the multiplying operations so as to form an output for a respective convolution operation.

Assignments (2)
SECURITY INTEREST Recorded Jul 31, 2024
From: IMAGINATION TECHNOLOGIES LIMITED
To: FORTRESS INVESTMENT GROUP (UK) LTD
Reel/Frame 068221/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 5, 2019
From: MARTIN, CHRISTOPHER
To: IMAGINATION TECHNOLOGIES LIMITED
Reel/Frame 048244/0300 →
Priority Claims (2)
GB 1718358 · Nov 6, 2017 · national
GB 1718359 · Nov 6, 2017 · national
Continuity (1)
Related Publication 20190147326A1 · May 16, 2019
Cited By (1)
US 12,260,906