IP Library Granted Patent US 11,688,032
Granted Patent B2
US 11,688,032 · App. 16/543,239 · Granted Jun 27, 2023

Three-dimensional convolution pipeline with memory organizer unit

Inventors: Dheevatsa Mudigere (Fremont, CA); Krishnakumar Nair (Newark, CA); Abdulkadir Utku Diril (Menlo Park, CA)
Assignee: Meta Platforms, Inc.
G06T1/60G06F17/153G06F17/16G06F18/2451G06N3/082
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,688,032
App. No.
16/543,239
Granted
Jun 27, 2023
Kind
B2
Abstract

A processor system comprises a memory organizer unit and a matrix computing unit. The memory organizer unit is configured to receive a request for a three-dimensional data of a convolutional neural network layer. The requested three-dimensional data is obtained from a memory. The obtained three-dimensional data is rearranged in an optimized linear order and the rearranged data in the optimized linear order is provided to the matrix computing unit. The matrix computing unit is configured to perform at least a portion of a three-dimensional convolution using at least a portion of the provided rearranged data in the optimized linear order.

Claims (35)

1. A processor system, comprising:

a memory organizer unit configured to:

receive a request for a three-dimensional data of a data matrix for a convolutional neural network layer;

obtain the requested three-dimensional data from a memory;

rearrange the obtained three-dimensional data in an optimized linear order, including by being configured to align a slice of the obtained three-dimensional data of the data matrix different from a weight matrix with a linearized version of the weight matrix including by being configured to insert one or more zero-value elements between elements of one or more rows or columns of the slice of the obtained three-dimensional data to optimize data organization layout at a hardware component interfacing between the memory and a matrix computing unit; and

provide to the matrix computing unit the rearranged data in the optimized linear order; and

the matrix computing unit configured to perform at least a portion of a three-dimensional convolution using at least a portion of the provided rearranged data in the optimized linear order.

2. The system of claim 1 , wherein the three-dimensional data of the convolutional neural network layer is video data.

3. The system of claim 1 , wherein the convolutional neural network layer is a layer of a neural network for determining recommendations.

4. The system of claim 1 , wherein the convolutional neural network layer is a layer of a neural network for identifying content.

5. The system of claim 1 , wherein the matrix computing unit is configured to receive a set of weights for performing the three-dimensional convolution.

6. The system of claim 5 , wherein the set of weights is a three-dimensional matrix.

7. The system of claim 6 , wherein the set of weights is a 3×3×3 kernel.

8. The system of claim 5 , wherein the set of weights is formatted in a linear order.

9. The system of claim 1 , wherein the matrix computing unit is configured to perform a dot product result.

10. The system of claim 1 , wherein the matrix computing unit is a dot product engine.

11. The system of claim 1 , wherein the rearranged data includes a plurality of linear two-dimensional slices of the three-dimensional data.

12. The system of claim 1 , wherein the matrix computing unit is configured to receive a three-dimensional convolution operation instruction.

13. The system of claim 12 , wherein the three-dimensional convolution operation instruction includes a first reference to a data argument and a second reference to a weight argument.

14. A method comprising:

receiving a request for a three-dimensional data of a data matrix for a convolutional neural network layer;

obtaining the requested three-dimensional data from a memory;

rearranging the obtained three-dimensional data in an optimized linear order, including aligning a slice of the obtained three-dimensional data of the data matrix different from a weight matrix with a linearized version of the weight matrix including by inserting one or more zero-value elements between elements of one or more rows or columns of the slice of the obtained three-dimensional data to optimize data organization layout at a hardware component interfacing between the memory and a matrix computing unit; and

providing to the matrix computing unit the rearranged data in the optimized linear order.

15. The method of claim 14 , wherein the optimized linear order is optimized for performing a three-dimensional convolution operation.

16. A method comprising:

receiving a three-dimensional convolution operation instruction, wherein the three-dimensional convolution operation instruction specifies a three-dimensional data of a data matrix fora convolutional neural network layer;

requesting the three-dimensional data of the convolutional neural network layer from a memory organizer unit;

receiving a linearized version of a weight matrix of a convolutional filter;

receiving in an optimized linear order the requested three-dimensional data from the memory organizer unit, wherein the optimized linear order aligns a slice of the three-dimensional data of the data matrix different from a weight matrix with a linearized version of the weight matrix by including one or more zero-value elements inserted between elements of one or more rows or columns of the slice of the three-dimensional data to optimize data organization layout at a hardware component interfacing between a memory and a matrix computing unit; and

performing at least a portion of a three-dimensional convolution using at least a portion of the received requested three-dimensional data in the optimized linear order and at least a portion of the linearized version of the weight matrix.

17. The method of claim 16 , wherein the three-dimensional convolution operation instruction specifies a weight argument corresponding to the weight matrix.

18. The method of claim 16 , wherein the three-dimensional convolution operation instruction includes an address location of a memory of the specified three-dimensional data of the convolutional neural network layer.

19. The method of claim 16 , wherein the three-dimensional data of the convolutional neural network layer is video data.

20. The method of claim 16 , wherein performing at least the portion of the three-dimensional convolution includes performing a dot product operation.

Assignments (3)
CHANGE OF NAME Recorded Nov 19, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058214/0351 →
CORRECTIVE ASSIGNMENT TO CORRECT THE CORRECT THE SECOND INVENTORS NAME SECOND INVENTOR PREVIOUSLY RECORDED AT REEL: 050830 FRAME: 0370. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT . Recorded Mar 11, 2020
From: MUDIGERE, DHEEVATSA; NAIR, KRISHNAKUMAR; DIRIL, ABDULKADIR UTKU
To: FACEBOOK, INC.
Reel/Frame 052148/0965 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 25, 2019
From: MUDIGERE, DHEEVATSA; NAIR, KRISHNAKUMAR NARAYANAN; DIRIL, ABDULKADIR UTKU
To: FACEBOOK, INC.
Reel/Frame 050830/0370 →
Continuity (1)
Related Publication 20210049426A1 · Feb 18, 2021