IP Library Granted Patent US 11,501,166
Granted Patent B2
US 11,501,166 · App. 16/857,588 · Granted Nov 15, 2022

Method and apparatus with neural network operation

Inventors: Yoojin Kim (Suwon-si, KR); Soonhoi Ha (Seoul, KR); Donghyun Kang (Seoul, KR); Jintaek Kang (Seoul, KR)
Assignees: Samsung Electronics Co., Ltd.; SEOUL NATIONAL UNIVERSITY R&DB FOUNDATION
G06N3/08G06N3/04
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,501,166
App. No.
16/857,588
Granted
Nov 15, 2022
Kind
B2
Abstract

A processor-implemented neural network method includes: generating a bit vector based on whether each of a plurality of input activations within a neural network is 0; merging the bit vector into the input activations such that bit values within the neural network included in the bit vector are most significant bits (MSBs) of multi bit expressions of the input activations; merging the bit vector into weights such that the bit values included in the bit vector are MSBs of multi bit expressions of the weights; sorting the input activations and the weights based on bits corresponding to the MSBs; and implementing the neural network, including performing operations between the sorted input activations and the sorted weights.

Claims (71)

1. A processor-implemented neural network method, the method comprising:

generating a bit vector based on whether each of a plurality of input activations within a neural network is 0;

merging the bit vector into the input activations such that bit values within the neural network included in the bit vector are most significant bits (MSBs) of multi bit expressions of the input activations;

merging the bit vector into weights such that the bit values included in the bit vector are MSBs of multi bit expressions of the weights;

sorting the input activations and the weights based on bits corresponding to the MSBs; and

implementing the neural network, including performing operations between the sorted input activations and the sorted weights.

2. The method of claim 1 , wherein the generating of the bit vector comprises:

generating a first bit value of the bit values in response to an input activation among the input activations not being 0; and

generating a second bit value of the bit values in response to another input activation among the input activations being 0.

3. The method of claim 2 , wherein the first bit value is 1 and the second bit value is 0.

4. The method of claim 2 , wherein the merging of the bit vector into the input activations comprises merging the first bit value into an MSB of the input activation and merging the second bit value into an MSB of the other input activation.

5. The method of claim 2 , wherein the sorting comprises:

sorting the input activations in an order of a first group including input activations in which the first bit value is merged into the MSB and a second group including input activations in which the second bit value is merged into the MSB; and

sorting the weights in an order of a third group including weights in which the first bit value is merged into the MSB and a fourth group including weights in which the second bit value is merged into the MSB.

6. The method of claim 5 , wherein

in response to a total number of input activations belonging to the second group being less than a preset value, the performing of the operations comprises respectively performing operations between an nth input activation among the sorted input activations and an nth input weight among the sorted weights, and

n is a natural number.

7. The method of claim 5 , wherein, in response to a total number of input activations in the second group being less than a preset value, the performing of the operations comprises performing operations between each input activation among the sorted input activations and corresponding input weight among the sorted weights.

8. The method of claim 5 , wherein, in response to a total number of input activations belonging to the second group being greater than or equal to a preset value, the performing of the operations comprises:

performing operations between the input activations belonging to the first group and the weights belonging to the third group; and

skipping one or more operations between the input activations belonging to the second group and the weights belonging to the fourth group.

9. The method of claim 8 , wherein

the preset value is a total number of input activations on which operations are configured to be performed simultaneously by a processor, and

the skipping of the one or more operations comprises skipping operations between a number of input activations corresponding to the preset value from among the input activations belonging to the second group and a number of weights corresponding to the preset value from among the weights belonging to the fourth group.

10. The method of claim 1 , wherein the generating of the bit vector comprises:

generating a first vector by:

generating a first bit value of the first vector in response to an input activation among the input activations not being 0, and

generating a second bit value of the first vector in response to another input activation among the input activations being 0;

generating a second vector by:

generating a first bit value of the second vector in response to a weight among the weights not being 0, and

generating a second bit value of the second vector in response to another weight among the weights being 0; and

generating the bit vector by performing an AND logic operation between the first vector and the second vector.

11. The method of claim 1 , wherein the merging of the bit vector into the weights comprises merging a bit value, which is merged into an MSB of a multi bit expression of an input activation among the input activations, into an MSB of a multi bit expression of a weight among the weights on which an operation is to be performed with the input activation.

12. The method of claim 1 , wherein the sorting is performed according to any one of a bubble sort algorithm, a shell sort algorithm, a bitonic sort algorithm, a comb sort algorithm, a cycle sort algorithm, and an even-odd mergesort algorithm.

13. The method of claim 1 , wherein

the input activations are output activations of a previous layer of the neural network, and

the performing of the operations between the sorted input activations and the sorted weights comprises generating output activations of a current layer of the neural network.

14. A non-transitory computer-readable storage medium storing instructions that, when executed by a processor, configure the processor to perform the method of claim 1 .

15. A neural network apparatus, the apparatus comprising:

a processor configured to:

generate a bit vector based on whether each of a plurality of input activations within a neural network is 0;

merge the bit vector into the input activations such that bit values within the neural network included in the bit vector are most significant bits (MSBs) of multi bit expressions of the input activations;

merge the bit vector into weights such that bit values included in the bit vector are MSBs of multi bit expressions of the weights;

sort the input activations and the weights based on bits corresponding to the MSBs; and

implement the neural network, including performing operations between the sorted input activations and the sorted weights.

16. The apparatus of claim 15 , wherein, for the generating of the bit vector, the processor is configured to:

generate a first bit value of the bit values in response to an input activation among the input activations not being 0; and

generate a second bit value of the bit values in response to another input activation among the input activations being 0.

17. The apparatus of claim 16 , wherein, for the sorting, the processor is configured to:

sort the input activations in an order of a first group including input activations in which the first bit value is merged into the MSB and a second group including input activations in which the second bit value is merged into the MSB; and

sort the weights in an order of a third group including weights in which the first bit value is merged into the MSB and a fourth group including weights in which the second bit value is merged into the MSB.

18. The apparatus of claim 17 , wherein

in response to a total number of input activations belonging to the second group being less than a preset value, the processor is configured to perform operations between an n th input activation among the sorted input activations and an n th input weight among the sorted weights, and

n is a natural number.

19. The apparatus of claim 17 , wherein, for the performing of the operations, in response to a total number of input activations belonging to the second group being greater than or equal to a preset value, the processor is configured to:

perform operations between the input activations belonging to the first group and the weights belonging to the third group; and

skip one or more operations between the input activations belonging to the second group and the weights belonging to the fourth group.

20. The apparatus of claim 19 , wherein

the preset value is a total number of input activations on which operations are configure to be performed simultaneously by the processor, and

for the skipping of the one or more operations, the processor is configured to skip operations between a number of input activations corresponding to the preset value from among the input activations belonging to the second group and a number of weights corresponding to the preset value from among the weights belonging to the fourth group.

21. The apparatus of claim 15 , wherein, for the generating of the bit vector, the processor is configured to:

generate a first vector by:

generating a first bit value of the first vector in response to an input activation among the input activations not being 0, and

generating a second bit value of the first vector in response to another input activation among the input activations being 0,

generate a second vector by:

generating a first bit value of the second vector in response to a weight among the weights not being 0, and

generating a second bit value of the second vector in response to another weight among the weights being 0, and

generate the bit vector by performing an AND logic operation between the first vector and the second vector.

22. The apparatus of claim 15 , wherein, for the merging of the bit vector into the weights, the processor is configured to merge a bit value, which is merged into an MSB of a multi bit expression of an input activation among the input activations, into an MSB of a multi bit expression of a weight among the weights on which an operation is to be performed with the input activation.

23. The apparatus of claim 15 , wherein, for the sorting, the processor is configured to sort the input activations and the weights according to any one of a bubble sort algorithm, a shell sort algorithm, a bitonic sort algorithm, a comb sort algorithm, a cycle sort algorithm, and an even-odd mergesort algorithm.

24. The apparatus of claim 15 , further comprising a memory storing instructions that, when executed by the processor, configure the processor to perform the generating of the bit vector, the merging of the bit vector into the input activations, the merging of the bit vector into the weights, the sorting of the input activations and the weights, and the performing of the operations between the sorted input activations and the sorted weights.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2020
From: KIM, YOOJIN; HA, SOONHOI; KANG, DONGHYUN; KANG, JINTAEK
To: SAMSUNG ELECTRONICS CO., LTD.; SEOUL NATIONAL UNIVERSITY R&DB FOUNDATION
Reel/Frame 052488/0191 →
Priority Claims (1)
KR 10-2019-0128715 · Oct 16, 2019 · national
Continuity (1)
Related Publication 20210117781A1 · Apr 22, 2021