IP Library Granted Patent US 11,699,081
Granted Patent B2
US 11,699,081 · App. 16/722,636 · Granted Jul 11, 2023

Systems and methods for reducing data movement during convolution operations in artificial neural networks

Inventors: Ehsan Khish Ardestani Zadeh (Sane Jose, CA); Martin Schatz (Seattle, WA); Krishnakumar Narayanan Nair (Newark, CA); Yuchen Hao (Fremont, CA); Abdulkadir Utku Diril (Menlo Park, CA); Rakesh Komuravelli (Menlo Park, CA)
Assignee: Meta Platforms, Inc.
G06N3/10G06F17/15G06N3/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,699,081
App. No.
16/722,636
Granted
Jul 11, 2023
Kind
B2
Abstract

The disclosed computer-implemented method may include (1) receiving, at a hardware accelerator that supports an ANN, an activation data set that is to undergo a convolution operation via a filter kernel of the ANN, (2) receiving, at the hardware accelerator, an argument indicating that the filter kernel exceeds at least one boundary of the activation data set when slid across a certain position during the convolution operation, (3) determining, based at least in part on the argument, that the hardware accelerator is to generate padding data at the boundary of the activation data set in connection with the certain position of the filter kernel, and then (4) performing, at the hardware accelerator, the convolution operation by processing a portion of the activation data set and the padding data when the filter kernel slides across the certain position. Various other systems and methods are also disclosed.

Claims (58)

1. A computer-implemented method comprising:

receiving, at a hardware accelerator that supports an artificial neural network (ANN), an activation data set that is to undergo a convolution operation via a filter kernel of the ANN;

receiving, at the hardware accelerator, an argument indicating that the filter kernel exceeds at least one boundary of the activation data set when slid across a certain position during the convolution operation;

determining, based at least in part on the argument, that the hardware accelerator is to generate padding data at the boundary of the activation data set in connection with the certain position of the filter kernel; and

performing, at the hardware accelerator, the convolution operation by:

moving the filter kernel to a starting address of the certain position within a local memory device of the hardware accelerator to facilitate processing a portion of the activation data set and the padding data; and

processing the portion of the activation data set and the padding data when the filter kernel slides across the certain position.

2. The computer-implemented method of claim 1 , further comprising receiving, at the hardware accelerator, an additional argument indicating a starting address of the certain position; and

wherein performing the convolution operation comprises applying the filter kernel to the portion of the activation data set and the padding data at the certain position based at least in part on the additional argument.

3. The computer-implemented method of claim 2 , wherein the activation data set received at the hardware accelerator is devoid of padding data.

4. The computer-implemented method of claim 3 , further comprising generating, by the hardware accelerator, the padding data at the boundary of the activation data set in connection with the certain position of the filter kernel.

5. The computer-implemented method of claim 3 , further comprising storing the activation data set in the local memory device of the hardware accelerator for processing in connection with the convolution operation.

6. The computer-implemented method of claim 5 , wherein generating the padding data by the hardware accelerator comprises obviating a need to transfer the padding data from an external data store to the local memory device of the hardware accelerator.

7. The computer-implemented method of claim 1 , further comprising:

receiving, at the hardware accelerator, an additional argument indicating that the filter kernel does not exceed any boundaries of the activation data set when slid across an additional position during the convolution operation; and

determining, based at least in part on the additional argument, that the hardware accelerator is to refrain from generating additional padding data in connection with the additional position of the filter kernel; and

wherein performing the convolution operation comprises processing an additional portion of the activation data set without any padding data when the filter kernel slides across the additional position.

8. The computer-implemented method of claim 7 , further comprising receiving, at the hardware accelerator, a further argument indicating a starting address of the additional position; and

wherein performing the convolution operation comprises applying the filter kernel to the additional portion of the activation data set at the additional position based at least in part on the further argument.

9. The computer-implemented method of claim 1 , wherein the argument comprises at least one of:

a count indicating the number of boundaries of the activation data set that the filter kernel exceeds when slid across the certain position during the convolution operation;

one or more side indicators identifying which boundaries of the activation data set that the filter kernel exceeds when slid across the certain position during the convolution operation; or

a depth indicator identifying a depth of the padding data to be generated by the hardware accelerator at the boundary of the activation data set in connection with the certain position of the filter kernel.

10. The computer-implemented method of claim 1 , wherein performing the convolution operation comprises generating an output data set by sliding the filter kernel across the activation data set.

11. The computer-implemented method of claim 10 , wherein the convolution operation comprises a same convolution operation in which:

the activation data set contains a certain number of dimensions; and

the output data set also contains the certain number of dimensions.

12. The computer-implemented method of claim 1 , further comprising providing a software component that runs on a physical processor external to the hardware accelerator; and

wherein performing the convolution operation comprises:

directing, by the hardware accelerator, the filter kernel to slide across a first dimension of the activation data set during the convolution operation; and

directing, by the software component, the filter kernel to slide across a second dimension of the activation data set during the convolution operation.

13. The computer-implemented method of claim 1 , further comprising:

providing a software component that runs on a physical processor external to the hardware accelerator;

selecting, by the software component, a padding value to use in generating the padding data at the boundary of the activation data set; and

directing, by the software component, the hardware accelerator to generate the padding data using the padding value selected by the software component.

14. A system comprising:

a physical processor that executes a software component; and

a hardware accelerator that supports an artificial neural network (ANN) and is communicatively coupled to the software component executed by the physical processor, wherein the hardware accelerator:

receives an activation data set that is to undergo a convolution operation via a filter kernel of the ANN;

receives, from the software component, an argument indicating that the filter kernel exceeds at least one boundary of the activation data set when slid across a certain position during the convolution operation;

determines, based at least in part on the argument, that the hardware accelerator is to generate padding data at the boundary of the activation data set in connection with the certain position of the filter kernel; and

performs the convolution operation by:

moving the filter kernel to a starting address of the certain position within a local memory device of the hardware accelerator to facilitate processing a portion of the activation data set and the padding data; and

processing the portion of the activation data set and the padding data when the filter kernel slides across the certain position.

15. The system of claim 14 , wherein the hardware accelerator:

receives an additional argument indicating a starting address of the certain position; and

applies the filter kernel to the portion of the activation data set and the padding data at the certain position based at least in part on the additional argument.

16. The system of claim 15 , wherein the activation data set received at the hardware accelerator is devoid of padding data.

17. The system of claim 16 , wherein the hardware accelerator generates the padding data at the boundary of the activation data set in connection with the certain position of the filter kernel.

18. The system of claim 16 , wherein the hardware accelerator stores the activation data set in a local memory device for processing in connection with the convolution operation.

19. The system of claim 18 , wherein, by generating the padding data, the hardware accelerator obviates a need to transfer the padding data from an external data store to the local memory device.

20. A non-transitory, computer-readable medium comprising computer-readable instructions that, when executed by at least one processor of a computing device, cause the computing device to:

receive, at a hardware accelerator that supports an artificial neural network (ANN), an activation data set that is to undergo a convolution operation via a filter kernel of the ANN;

receive, at the hardware accelerator, an argument indicating that the filter kernel exceeds at least one boundary of the activation data set when slid across a certain position during the convolution operation;

determine, based at least in part on the argument, that the hardware accelerator is to generate padding data at the boundary of the activation data set in connection with the certain position of the filter kernel; and

perform, at the hardware accelerator, the convolution operation by:

moving the filter kernel to a starting address of the certain position within a local memory device of the hardware accelerator to facilitate processing a portion of the activation data set and the padding data; and

processing the portion of the activation data set and the padding data when the filter kernel slides across the certain position.

Assignments (3)
CHANGE OF NAME Recorded Jan 11, 2022
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058685/0901 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 22, 2021
From: KHISH ARDESTANI ZADEH, EHSAN; SCHATZ, MARTIN; NAIR, KRISHNAKUMAR NARAYANAN; HAO, YUCHEN; DIRIL, ABDULKADIR UTKU; KOMURAVELLI, RAKESH
To: FACEBOOK, INC.
Reel/Frame 055357/0619 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 6, 2020
From: ZADEH, ESHAN KHISH ARDESTANI; SCHATZ, MARTIN; NAIR, KRISHNAKUMAR NARAYANAN; HAO, YUCHEN; DIRIL, ABDULKADIR UTKU; KOMURAVELLI, RAKESH
To: FACEBOOK, INC.
Reel/Frame 052036/0274 →