IP Library Granted Patent US 11,687,759
Granted Patent B2
US 11,687,759 · App. 16/385,192 · Granted Jun 27, 2023

Neural network accelerator

Inventors: Ivo Leonardus Coenen (Coffrane, CH); Dennis Wayne Mitchler (Marin-Epagnier, CH)
Assignee: SEMICONDUCTOR COMPONENTS INDUSTRIES, LLC
G06N3/04G06N3/08
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,687,759
App. No.
16/385,192
Granted
Jun 27, 2023
Kind
B2
Abstract

A neural network implementation is disclosed. The implementation allows the computations for the neural network to be performed on either an accelerator or a processor. The accelerator and the processor share a memory and communicate over a bus to perform the computations and to share data. The implementation uses weight compression and pruning, as well as parallel processing, to reduce computing, storage, and power requirements.

Claims (25)

1. A method for implementing a neural network, the method comprising:

receiving input data;

fetching, from a memory, weights of the neural network;

performing a first portion of processing for the neural network, the first portion implemented in hardware by an accelerator including a plurality of parallel multiply and accumulate (MAC) units configured to perform a plurality of MAC operations to generate a first neuron value at a first accumulator and a second neuron value at a second accumulator, wherein the first portion includes:

receiving a first subset of the input data from a circular buffer at inputs of the plurality of parallel MAC units;

performing the plurality of parallel MAC operations using a first set of weights, while holding the inputs of the plurality of parallel MAC units stable at the first subset of the input data, to generate a first portion of the first neuron value at the first accumulator;

performing the plurality of parallel MAC operations using a second set of weights, while holding the inputs of the plurality of parallel MAC units stable at the first subset of the input data, to generate a second portion of the second neuron value at the second accumulator;

repeating receiving subsets of input data from the circular buffer and performing the plurality of parallel MAC operations while holding the inputs of the plurality of parallel MAC units stable to accumulate the first neuron value at the first accumulator and the second neuron value at the second accumulator for all input data;

selecting the first neuron value before a bias and an activation function is applied, using a multiplexer coupled to the plurality of parallel MAC units; and

writing the first neuron value to the memory; and

performing a second portion of processing for the neural network, the second portion implemented in software by a processor, the accelerator and the processor using a bus to communicate and to share access to the memory, wherein the second portion includes:

reading the first neuron value from the memory; and

applying the bias and the activation function to the first neuron value.

2. The method according to claim 1 , wherein the first set of weights and the second set of weights are compressed weights.

3. The method according to claim 2 , wherein the first portion of processing includes decompressing the compressed weights using a lookup table to generate decompressed weights.

4. The method according to claim 3 ,

wherein:

the compressed weights are stored in the memory and are each 4 bits; and

the decompressed weights are used in the first portion of the processing of the neural network and are each 8 bits.

5. The method according to claim 4 , wherein the compressed weights stored in the memory are pruned so that zero value weights are encoded as a single zero bit and non-zero value weights are encoded with a header bit of one.

6. The method according to claim 3 , wherein the lookup table is implemented in software running on the processor and loaded into the accelerator.

7. The method according to claim 6 , wherein the lookup table is implemented in hardware on the accelerator.

8. The method according to claim 2 , wherein the first set of weights and the second set of weights include pruned weights and unpruned weights, the pruned weights including single bit representations of synapses and the unpruned weights including an additional bit.

9. The method according to claim 1 , wherein the plurality of parallel multiply and accumulate operations are performed by a plurality of MAC units operating in parallel and repetitively to produce a sum of products corresponding to each neuron in the neural network.

10. The method according to claim 1 , wherein the memory and the accelerator are part of a hearing aid.

Assignments (3)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL 050156, FRAME 0421 Recorded Aug 16, 2023
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: SEMICONDUCTOR COMPONENTS INDUSTRIES, LLC
Reel/Frame 064615/0639 →
SECURITY INTEREST Recorded Aug 23, 2019
From: SEMICONDUCTOR COMPONENTS INDUSTRIES, LLC
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 050156/0421 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 16, 2019
From: COENEN, IVO LEONARDUS; MITCHLER, DENNIS WAYNE
To: SEMICONDUCTOR COMPONENTS INDUSTRIES, LLC
Reel/Frame 048893/0513 →
Continuity (2)
Provisional Application 62665318 · May 1, 2018
Related Publication 20190340493A1 · Nov 7, 2019