IP Library Granted Patent US 10,726,328
Granted Patent B2
US 10,726,328 · App. 14/879,928 · Granted Jul 28, 2020

Method and apparatus for designing and implementing a convolution neural net accelerator

Inventors: Andrew Chaang Ling (Toronto, CA); Gordon Raymond Chiu (North York, CA); Utku Aydonat (Toronto, CA)
Assignee: Altera Corporation
G06N3/063G06N3/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 10,726,328
App. No.
14/879,928
Granted
Jul 28, 2020
Kind
B2
Abstract

A method for implementing a convolutional neural network (CNN) accelerator on a target includes identifying characteristics and parameters for the CNN accelerator. Resources on the target are identified. A design for the CNN accelerator is generated in response to the characteristics and parameters of the CNN accelerator and the resources on the target.

Claims (40)

1. A method for implementing a convolutional neural network (CNN) accelerator on a target, comprising:

identifying characteristics and parameters for the CNN accelerator;

identifying resources on the target;

generating a design for the CNN accelerator in response to the characteristics and parameters of the CNN accelerator and the resources on the target;

identifying a CNN algorithm to execute on the CNN accelerator;

identifying a variation of the CNN accelerator that supports execution of the CNN algorithm; and

setting configurable status registers on the target at runtime, after the CNN accelerator is programmed on the target, to support the variation of the CNN accelerator, wherein setting the configurable status registers at runtime adds or subtracts a convolution layer used by the CNN accelerator or removes one or more noise filtering layers used by the CNN accelerator.

2. The method of claim 1 , wherein identifying characteristics and parameters for the CNN accelerator comprises receiving the characteristics from a user.

3. The method of claim 2 , wherein the characteristics for the CNN accelerator comprise:

a number and sequence of stages of layers;

sizes and coefficients of filters; and

sizes, strides, and padding of images.

4. The method of claim 1 , wherein the characteristics for the CNN accelerator comprise a range of characteristics that allows the CNN accelerator to execute a plurality of CNN algorithms.

5. The method of claim 4 , wherein generating the design for the CNN accelerator comprises implementing the configurable status registers (CSR), programmable by a user at runtime, to configure the target to support characteristics required for executing one of the plurality of CNN algorithms.

6. The method of claim 1 , wherein generating the design for the CNN accelerator comprises assigning sizes for buffers to support sizes of images to be processed by the CNN accelerator.

7. The method of claim 1 , wherein generating the design for the CNN accelerator comprises generating computation units in response to available resources on the target.

8. The method of claim 7 , wherein generating the computation units comprises generating processing elements utilizing digital signal processor blocks, memory blocks, and adders on the target.

9. The method of claim 1 , wherein generating the design for the CNN accelerator comprises generating a sequencer unit that coordinates transmission of data to processing element arrays on the CNN accelerator in order to time multiplex computations on the processing element arrays.

10. A method for implementing a convolutional neural network (CNN) accelerator on a target, comprising:

identifying a CNN algorithm to execute on the CNN accelerator;

identifying a variation of the CNN accelerator that supports execution of the CNN algorithm; and

setting configurable status registers on the target at runtime, after the CNN accelerator is programmed on the target, to support the variation of the CNN accelerator, wherein setting the configurable status registers at runtime adds or subtracts a number of convolution layers used by the CNN accelerator or removes one or more noise filtering layers used by the CNN accelerator.

11. The method of claim 10 further comprising:

determining whether a different CNN algorithm is to be executed on the CNN accelerator;

identifying a different variation of the CNN accelerator that supports execution of the different CNN algorithm; and

setting the configurable status registers on the target to support the different variation of the CNN accelerator.

12. The method of claim 10 , wherein setting the configurable status registers adds or subtracts the number of the convolution layers used by the CNN accelerator.

13. The method of claim 10 , wherein setting the configurable status registers sets filter coefficients.

14. The method of claim 10 , wherein setting the configurable status registers removes one or more pooling layers.

15. The method of claim 10 , wherein setting the configurable status registers reduces a size of a filter.

16. The method of claim 10 further comprising programming the target to implement the CNN accelerator with a configuration file.

17. A non-transitory computer readable medium including a sequence of instructions stored thereon for causing a computer to execute a method for implementing a convolutional neural network (CNN) accelerator on a target, comprising:

identifying characteristics and parameters for the CNN accelerator;

identifying resources on the target;

generating a design for the CNN accelerator in response to the characteristics and parameters of the CNN accelerator and the resources on target;

identifying a CNN algorithm to execute on the CNN accelerator;

identifying a variation of the CNN accelerator that supports execution of the CNN algorithm; and

setting configurable status registers on the target at runtime, after the CNN accelerator is programmed on the target, to support the variation of the CNN accelerator, wherein setting the configurable status registers at runtime adds or subtracts a number of convolution layers used by the CNN accelerator or removes one or more noise filtering layers used by the CNN accelerator.

18. The non-transitory computer readable medium of claim 17 , wherein the characteristics for the CNN accelerator comprise a range of characteristics that allows the CNN accelerator to execute a plurality of CNN algorithms.

19. The non-transitory computer readable medium of claim 18 , wherein generating the design for the CNN accelerator comprises implementing the configurable status registers (CSR), programmable by a user at runtime, to configure the target to support characteristics required for executing one of the plurality of CNN algorithms.

Assignments (2)
SECURITY INTEREST Recorded Sep 12, 2025
From: ALTERA CORPORATION
To: BARCLAYS BANK PLC, AS COLLATERAL AGENT
Reel/Frame 073431/0309 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 9, 2015
From: LING, ANDREW CHAANG; CHIU, GORDON RAYMOND; AYDONAT, UTKU
To: ALTERA CORPORATION
Reel/Frame 036768/0592 →