Calculating device and method for a sparsely connected artificial neural network

US12481886B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12481886-B2
Application numberUS-201815975075-A
CountryUS
Kind codeB2
Filing dateMay 9, 2018
Priority dateJan 20, 2016
Publication dateNov 25, 2025
Grant dateNov 25, 2025

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Aspects for modifying data in a multi-layer neural network (MNN) acceleration processor for neural networks are described herein. As an example, the aspects may include receiving a predetermined weight value array and connection data. Further, the aspects may include modifying the weight values included in the predetermined weight value array based on the connection data. Further still, the aspects may include calculating one or more groups of output data based on the modified weight values.

First claim

Opening claim text (preview).

The invention claimed is: 1 . An apparatus for modifying weight values for neural networks, comprising: a data modifier circuit configured to: receive a predetermined weight value array that includes one or more weight values for calculating one or more groups of output data based on one or more groups of input data, wherein the one or more groups of the input data are stored as input elements in an input array and each input element of the input elements is identified by an input array index, and wherein the one or more groups of the output data are to be stored as output elements in an output array and each output element of the output elements is identified by an output array index; receive connection data that include one or more connection values, wherein the one or more connection values are stored as a data set independent from the input data and the weight values, wherein the one or more connection values represent connections between input nodes of the neural networks and the output nodes of the neural networks, wherein each connection value of the one or more connection values corresponds to a pair of indexes, wherein the pair of indexes include the input array index and the output array index, and wherein each connection value of the one or more connection values is set to one when one of the one or more weight values in the predetermined weight value array satisfies a condition, wherein each connection value of the one or more connection values is set to zero, when one of the one or more weight values in the predetermined weight value array does not satisfy the condition, wherein the condition includes that an absolute value of one of the one or more weight values in the predetermined weight value array is less than a first threshold value and greater than a second threshold value, and wherein each weight value of the one or more weight values is designated for calculating a group of the output data to be stored as the output elements, wherein the output elements are identified by the corresponding output array index based on a group of the input data, the input data are stored as the input elements identified by the corresponding input array index; and delete the one or more weight values that does not satisfy the condition from the predetermined weight value array to generate a modified predetermined weight value array; delete one or more groups of the input data from the input array, wherein the one or more groups of the input data corresponds to those connection values that are set to zero to generate modified input array; and a computing circuit configured to: receive the modified predetermined weight value array from the data modifier circuit and the modified input array; and calculate the one or more groups of the output data based on the modified predetermined weight value array and the modified input array. 2 . The apparatus of claim 1 , wherein the data modifier circuit is further configured to add one or more zero values to the predetermined weight value array based on the connection values. 3 . The apparatus of claim 1 , wherein the computing circuit further comprises: one or more multipliers configured to multiply the input data by the modified predetermined weight value array to generate one or more weighted input data. 4 . The apparatus of claim 3 , wherein the computing circuit further comprises: one or more adders configured to add the one or more weighted input data to generate a total weighted value. 5 . The apparatus of claim 4 , wherein the one or more adders are further configured to add a bias value to the total weighted value to generate a biased value. 6 . The apparatus of claim 5 , wherein the computing circuit further comprises: an activation processor configured to perform an activation function on the biased value to generate a group of the output data. 7 . The apparatus of claim 1 further comprising a storage device configured to store the one or more groups of the input data, the input data, the connection data, the modified predetermined weight value array, instructions, and the calculated one or more groups of the output data. 8 . The apparatus of claim 1 further comprising: an instruction cache configured to store instructions received from a central processing unit; a controller unit configured to read the instructions from the instruction cache and decode the instructions; an input data cache configured to store the input data; a weight cache configured to store the modified predetermined weight value array; an output data cache configured to store the calculated one or more groups of the output data; and a direct memory access module configured to transmit and receive data from and to a storage device, the instruction cache, the controller unit, the input data cache, the weight cache, and the output data cache. 9 . A method for modifying weight values for neural networks, comprising: receiving, by a data modifier circuit, a predetermined weight value array that includes one or more weight values for calculating one or more groups of output data based on one or more groups of input data, wherein the one or more groups of the input data are stored as input elements in an input array and each input element of the input elements is identified by an input array index, and wherein the one or more groups of the output data are to be stored as output elements in an output array and each output element of the output elements is identified by an output array index; receiving, by the data modifier circuit, connection data that include one or more connection values, wherein the one or more connection values are stored as a data set independent from the input data and the weight values, wherein the one or more connection values represent connections between input nodes of the neural networks and the output nodes of the neural networks, wherein each connection value of the one or more connection values corresponds to a pair of indexes, wherein the pair of indexes include the input array index and the output array index, and wherein each connection value of the one or more connection values is set to one when one of the one or more weight values in the predetermined weight value array satisfies a condition, wherein each of the connection values is set to zero, when one of the one or more weight values in the predetermined weight value array does not satisfy the condition, wherein the condition includes that an absolute value of one of the weight values in the predetermined weight value array is less than a first threshold value and greater than a second threshold value, and wherein each weight value of the one or more weight values is designated for calculating, by a data modifier circuit, a group of the output data to be stored as the output elements, wherein the output elements are identified by the corresponding output array index based on a group of the input data, the input data are stored as the input element identified by the corresponding input array index; and deleting, by the data modifier circuit, the one or more weight values that does not satisfy the condition from the predetermined weight value array to generate a modified predetermined weight value array; deleting, by the data modifier circuit, the one or more groups of the input data from the input array, wherein the one or more groups of the input data corresponds to those connection values that are set to zero to generate a modified input array; and receiving, by the data modifier circuit, the modified predetermined weight value array and the modified input array; and calculating, by a computing circuit, the one or more groups of the output data bas

Assignees

Inventors

Classifications

  • Correlation function computation {including computation of convolution operations (arithmetic circuits for sum of products per se, e.g. multiply-accumulators G06F7/5443; digital filters, e.g. FIR, IIR, adaptive filters H03H17/00)} · CPC title

  • Matrix or vector computation {, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization (matrix transposition G06F7/78)} · CPC title

  • Activation functions · CPC title

  • Quantised networks; Sparse networks; Compressed networks · CPC title

  • Convolutional networks [CNN, ConvNet] · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US12481886B2 cover?
Aspects for modifying data in a multi-layer neural network (MNN) acceleration processor for neural networks are described herein. As an example, the aspects may include receiving a predetermined weight value array and connection data. Further, the aspects may include modifying the weight values included in the predetermined weight value array based on the connection data. Further still, the asp…
Who is the assignee on this patent?
Cambricon Tech Corp Ltd
What technology area does this patent fall under?
Primary CPC classification G06N3/082. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 25 2025 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 7 related publications on this page (citations in our corpus or others sharing the same primary CPC).