IP Library Granted Patent US 12,014,505
Granted Patent B2
US 12,014,505 · App. 16/564,215 · Granted Jun 18, 2024

Method and apparatus with convolution neural network processing using shared operand

Inventor: Sehwan Lee (Suwon-si, KR)
Assignee: Samsung Electronics Co., Ltd.
G06T7/33G06N3/04G06N3/063G06N3/08G06T1/20G06T2207/20081G06T2207/20084G06T2210/52
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,014,505
App. No.
16/564,215
Granted
Jun 18, 2024
Kind
B2
Abstract

A neural network apparatus is disclosed, where the neural network apparatus includes one or more processors comprising a controller and one or more processing units. The controller is configured to determine a shared operand to be shared in parallelized operations as being either one of a pixel value among pixel values of an input feature map and a weight value among weight values of a kernel, based on either one or both of a feature of the input feature map and a feature of the kernel. The one or more processing units are configured to perform the parallelized operations based on the determined shared operand.

Claims (48)

1. A neural network apparatus, comprising:

one or more processors comprising:

a controller configured to determine an operand pair including a shared operand to be shared in parallelized operations as being either one of a pixel value among pixel values of an input feature map and a weight value among weight values of a kernel, based on one of a shape of the input feature map and the weight value of the kernel being less than a predetermined value; and

processing units configured to perform the parallelized operations based on the operand pair including the determined shared operand and a respective operand from the input feature man or the kernel,

wherein multiple of the processing units are configured to perform the parallelized operations between the pixel value of the input feature map and respective weight values of the kernel as the respective operand, in parallel, in response to the controller determining the shared operand to be the pixel value of the input feature map, and

wherein plural of the processing units are configured to perform the parallelized operations between the weight value of the kernel and respective pixel values of the input feature map as the respective operand, in parallel, in response to the controller determining the shared operand to be the weight value of the kernel.

2. The apparatus of claim 1 , wherein the controller is further configured to determine an other shared operand to be another pixel value of the input feature map when the controller determines the shared operand to be the pixel value, and

wherein the multiple of the processing units comprise:

first processing units configured to perform the parallelized operations between the pixel value of the input feature map and weight values of the kernel, in parallel; and

second processing units configured to perform the parallelized operations between the other pixel value of the input feature map and the weight values of the kernel, in parallel.

3. The apparatus of claim 1 , wherein the controller is further configured to determine an other shared operand to be another weight value of the kernel when the controller determines the shared operand to be the weight value, and

wherein the one or more processors comprise:

first processing units configured to perform the parallelized operations between the weight value of the kernel and pixel values of the input feature map, in parallel; and

second processing units configured to perform the parallelized operations between the other weight value of the kernel and the pixel values of the input feature map, in parallel.

4. The apparatus of claim 1 , wherein

the shared operand, the pixel value of the input feature map, and the weight value of the kernel are of a first layer of a neural network, and

the controller is further configured to determine, for a second layer of the neural network, a shared operand of the second layer to be either one of a pixel value of an input feature map of the second layer and a weight value of a kernel of the second layer, based on either one or both of a feature of the input feature map of the second layer and a feature of the kernel of the second layer.

5. The apparatus of claim 1 , wherein

the feature of the input feature map comprises either one or both of a percentage of pixels having a zero value within the input feature map and a shape of the input feature map, and

the feature of the kernel comprises a percentage of weights having a zero value within the kernel.

6. The apparatus of claim 1 , wherein the controller is configured to determine the shared operand to be the weight value of the kernel in response to a percentage of the weights of the kernel having a zero value is greater than a set value.

7. The apparatus of claim 1 , wherein a number of the processing units that commonly share the shared operand is equal to either one of a number of pixels of an input channel of the input feature map and a number of output channels of the kernel.

8. The apparatus of claim 1 , wherein the one or more processors are configured to perform a three-dimensional (3D) convolution operation between the input feature map having a 3D size and the kernel having a four-dimensional (4D) size.

9. The apparatus of claim 1 , wherein the processing units are configured to skip parallelized operations among the parallelized operations in response the shared operand being zero.

10. The apparatus of claim 1 , wherein the controller is further configured to determine another shared operand to be another pixel value of the input feature map when the controller determines the shared operand to be the pixel value, and

wherein the multiple processing units are configured to:

skip parallelized operations, among the parallelized operations, between the pixel value and first weight values among the weight values of the kernel, in response to the first pixel value being zero, and

perform parallelized operations, among the parallelized operations, between the other pixel value and second weight values among the weight values of the kernel.

11. The apparatus of claim 1 , wherein the controller is further configured to determine another shared operand to be another weight value of the kernel when the controller determines the shared operand to be the weight value, and

wherein the plural processing units are configured to:

skip parallelized operations, among the parallelized operations, between the weight value and first pixel values among the pixel values of the input feature map, in response to the first weight value being zero, and

perform parallelized operations, among the parallelized operations, between the other weight value and second pixel values among the pixel values of the input feature map.

12. The apparatus of claim 1 , further comprising a memory storing instructions that, when executed by the one or more processors, configure the one or more processors to perform the determination of the shared operand, perform the parallelized operations and generate at least a portion of an output feature map based on the performed parallelized operations.

13. The apparatus of claim 1 , wherein determining of the shared operand based on the one of the shape of the input feature map and the weight value of the kernel being less than the predetermined value comprises:

responsive to determining that a ratio of an area value of the input feature map to a depth value thereof is larger than an assigned value, assigning the weight value of the kernel as the shared operand; and

responsive to determining that the ratio of the area value of the input feature map to the depth value thereof is smaller than the assigned value, assigning the pixel value as the shared operand.

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

based on one of a shape of an input feature map and a weight value of a kernel being less than a predetermined value, selecting, between one of a pixel value among plural pixel values of the input feature map and the weight value among plural weight values of the kernel, an operand pair including a shared operand to be shared in parallelized operations as being one of the pixel value and the weight value; and

performing the parallelized operation based on the operand pair and a respective operand from the input feature map or the kernel, including:

in response to the pixel value being the selected shared operand, performing the parallelized operations between the pixel value of the input feature map and respective weight values of the kernel as the respective operand, in parallel; and

in response to the weight value being the selected shared operand, performing the parallelized operations between the weight value of the kernel and the respective pixel values of the input feature map as the respective operand, in parallel.

15. The method of claim 14 , wherein, in response to the pixel value being the selected shared operand, the performing of the parallelized operations comprises

skipping parallelized operations, among the parallelized operations, between the pixel value and first weight values among the weight values of the kernel, in response to the pixel value being zero, and

performing parallelized operations, among the parallelized operations, between another pixel value among the pixel values of the input feature map and second weight values among the weight values of the kernel.

16. The method of claim 14 , wherein, in response to the weight value being the selected shared operand, the performing of the parallelized operations comprises

skipping parallelized operations, among the parallelized operations, between the weight value and first pixel values among the pixel values of the input feature map, when the weight value is zero, and

performing parallelized operations, among the parallelized operations, between another weight value among the weight values of the kernel and second pixel values among the pixel values of the input feature map.

17. A non-transitory computer-readable storage medium storing instructions that, when executed by one or more processors, cause the one or more processors to perform the method of claim 14 .

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2019
From: LEE, SEHWAN
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 050312/0185 →
Priority Claims (1)
KR 10-2019-0038606 · Apr 2, 2019 · national
Continuity (2)
Provisional Application 62799190 · Jan 31, 2019
Related Publication 20200250842A1 · Aug 6, 2020
Cited By (1)
US 12,361,571