IP Library › Granted Patent US 12,067,484
Granted Patent B2
US 12,067,484 · App. 16/449,264 · Granted Aug 20, 2024

Learning neural networks of programmable device blocks directly with backpropagation

Inventors: Yaman Umuroglu (Islandbridge, IE); Nicholas Fraser (Dublin, IE); Michaela Blott (Malahide, IE); Kristof Denolf (Longmont, CO); Kornelis A. Vissers (Sunnyvale, CA)
Assignee: XILINX, INC.
G06N3/08G06N3/063G06N3/082G06N3/084
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 12,067,484
App. No.
16/449,264
Granted
Aug 20, 2024
Kind
B2
Abstract

An example method of training a neural network includes defining hardware building blocks (HBBs), neuron equivalents (NEQs), and conversion procedures from NEQs to HBBs; defining the neural network using the NEQs in a machine learning framework; training the neural network on a training platform; and converting the neural network as trained into a netlist of HBBs using the conversion procedures to convert the NEQs in the neural network to the HBBs of the netlist.

Claims (68)

1. A method, comprising:

constructing a neural network for a target programmable integrated circuit (IC) device, by a computing platform, such that neurons of the neural network correspond to respective programmable components of the target programmable IC device that are configurable as truth tables, wherein the programmable components comprise one or more of look-up tables (LUTs) and blocks of random access memory (BRAM), and wherein the neurons are configured to perform dot product operations and nonlinear operations based on trainable parameters of respective neurons; and

programming the programmable components of the target programmable IC device, by the computing platform, based on the respective neurons, wherein the programming comprises,

enumerating inputs of the neurons determining corresponding outputs of the neurons, and

programming the programmable components of the target programmable IC device based the enumerated inputs and the corresponding outputs of the respective neurons.

2. The method of claim 1 , wherein the programming comprises:

converting the neural network to a netlist for the target programmable IC device,

converting the netlist to a bitfile for the target programmable IC device with a place and route tool, without performing logic synthesis; and

programming the programmable components of the target programmable IC device with the bitfile.

3. The method of claim 1 , wherein the programmable components comprise the LUTs, wherein the programming comprises converting the neural network to a netlist for the target programmable IC device, and wherein the method, further comprises:

post-processing the netlist to reduce a number of the LUTs in the netlist.

4. The method of claim 1 , wherein the programming comprises converting the neural network to a netlist for the target programmable IC device, the method further comprising:

post-processing the netlist to insert pipeline registers between layers of the neural network to increase a clock frequency.

5. The method of claim 1 , wherein the programming comprises converting the neural network to a netlist for the target programmable IC device, the method further comprising:

separating the netlist into sections, such that the computing platform implements the neural network in sections with dynamic partial reconfiguration of the target programmable IC device between the sections.

6. The method of claim 1 , wherein a first one of the neurons is further configured to receive quantized inputs and to provide quantized outputs, wherein a corresponding one of the programmable components comprises a first one of the BRAM, wherein a sum of widths of the quantized inputs is less than or equal to a number of address bits of the first BRAM, and wherein a sum of widths of the quantized outputs is less than or equal to a width of the first BRAM.

7. The method of claim 1 , wherein one or more of the neurons is further configured to perform one or more operations between the dot product operation and the nonlinear operation.

8. A non-transitory computer readable medium having stored thereon instructions that, when executed by a processor, cause the processor to:

construct a neural network for a target programmable integrated circuit (IC) device such that neurons of the neural network correspond to respective programmable components of the target programmable IC device that are configurable as truth tables, wherein the programmable components comprise one or more of look-up tables (LUTs) and blocks of random access memory (BRAM), and wherein the neurons are configured to perform dot product operations and nonlinear operations based on trained parameters of the respective neurons;

program the programmable components of the target programmable IC device based on the respective neurons, including to,

enumerate inputs of the neurons and determine corresponding outputs of the neurons, and

program the programmable components of the target programmable IC devices based on the enumerated inputs and the corresponding outputs of the respective neurons.

9. The non-transitory computer readable medium of claim 8 , further comprising instructions to cause the processor to program the programmable components of the target programmable IC device by:

converting the neural network to a netlist for the target programmable IC device;

converting the netlist to a bitfile for the target programmable IC device based on the netlist, without performing logic synthesis; and

programming the programmable components of the target programmable IC device with the bitfile.

10. The non-transitory computer readable medium of claim 8 , wherein the programmable components comprise the LUTs, further comprising instructions to cause the processor to:

program the programmable components of the target programmable IC device by converting the neural network to a netlist for the target programmable IC device; and

post-process the netlist with a heuristic logic minimizer tool to reduce a number of the LUTs in the netlist.

11. The non-transitory computer readable medium of claim 8 , further comprising instructions to cause the processor to:

program the programmable components of the target programmable IC device by converting the neural network to a netlist for the target programmable IC device; and

post-process the netlist to insert pipeline registers between layers of the neural network to increase a clock frequency.

12. The non-transitory computer readable medium of claim 8 , wherein:

a first one of neurons is further configured to receive quantized inputs and to provide quantized outputs;

a corresponding one of the programmable components comprises a first one of the BRAM;

a sum of widths of the quantized inputs is less than or equal to a number of address bits of the first BRAM; and

a sum of widths of the quantized outputs is less than or equal to a width of the first BRAM.

13. The non-transitory computer readable medium of claim 8 , wherein one or more of the neurons is further configured to perform one or more operations between the dot product operation and the nonlinear operation.

14. An apparatus, comprising:

a processor and memory configured to:

construct a neural network for a target programmable integrated circuit (IC) device, wherein the neural network comprises one or more look-up table (LUT) layers, wherein the LUT layers comprise neurons, wherein the neurons comprise trainable parameters, wherein the neurons correspond to respective programmable components of the target programmable IC device that are configurable as truth tables, and wherein the programmable components comprise one or more of LUTs and blocks of random access memory (BRAM); and

train the neural network based on backpropagation to provide a trained neural network.

15. The apparatus of claim 14 , wherein the processor and memory are further configured to:

program the programmable components of the target programmable IC device based on convert the trained neural network, including to,

enumerate inputs of the neurons and determine corresponding outputs of the neurons, and

program the programmable components of the target programmable IC device based on the enumerated inputs and the corresponding outputs of the respective neurons.

16. The apparatus of claim 14 , wherein the programmable components comprise the LUTs, and wherein the processor and memory are further configured to:

convert the neural network to a netlist for the target programmable IC device; and

post-process the netlist to reduce a number of the LUTS in the netlist.

17. The apparatus of claim 14 , wherein the processor and memory are further configured to:

convert the neural network to a netlist for the target programmable IC device; and

post-process the netlist to insert pipeline registers between layers of the neural network to increase a clock frequency.

18. The apparatus of claim 14 , wherein:

a first one of neurons is further configured to receive quantized inputs and to provide quantized outputs;

a corresponding one of the programmable components comprises a first one of the BRAM;

a sum of widths of the quantized inputs is less than or equal to a number of address bits of the first BRAM; and

a sum of widths of the quantized outputs is less than or equal to a width of the first BRAM.

19. The method of claim 1 , wherein the programming further comprises: mapping the neurons of the neural network to the target programmable IC device without use of an overlay architecture and without use of a scheduling tool.

20. The method of claim 1 , wherein the neural network further comprises non-neuron elements, the method further comprising:

mapping the non-neuron elements of the neural network to the target IC device by defining an overlay architecture and using mapping and scheduling tools.

21. The method of claim 1 , wherein the programmable components of the target programmable IC device comprise multiple types of programmable components, and wherein the neurons comprise multiple corresponding types of neurons.

22. The method of claim 1 , wherein the target programmable IC device comprises a field programmable gate array (FPGA).

23. The non-transitory computer readable medium of claim 8 , further comprising instructions to cause the processor to:

program the programmable components of the target programmable IC device by converting the neural network to a netlist for the target programmable IC device; and

separate the netlist into sections to implement the neural network in sections with dynamic partial reconfiguration of the target programmable IC device between the sections.

24. The apparatus of claim 14 , wherein the processor and memory are further configured to:

convert the neural network to a netlist for the target programmable IC device; and

separate the netlist into sections to implement the neural network in sections with dynamic partial reconfiguration of the target IC device between the sections.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: UMUROGLU, YAMAN; FRASER, NICHOLAS; BLOTT, MICHAELA; DENOLF, KRISTOF; VISSERS, KORNELIS A.
To: XILINX, INC.
Reel/Frame 049556/0675 →
Continuity (1)
Related Publication 20200401882A1 · Dec 24, 2020
Cited By (1)
US 12,737,692