IP Library Granted Patent US 11,940,946
Granted Patent B2
US 11,940,946 · App. 17/354,947 · Granted Mar 26, 2024

Vector reduction processor

Inventors: Gregory Michael Thorson (Waunakee, WI); Andrew Everett Phelps (Middleton, WI); Olivier Temam (Antony, FR)
Assignee: Google LLC
G06F15/8053G06F9/3001G06F9/30036G06F9/3877G06F9/3897G06F17/16G06N3/084
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,940,946
App. No.
17/354,947
Granted
Mar 26, 2024
Kind
B2
Abstract

A vector reduction circuit configured to reduce an input vector of elements comprises a plurality of cells, wherein each of the plurality of cells other than a designated first cell that receives a designated first element of the input vector is configured to receive a particular element of the input vector, receive, from another of the one or more cells, a temporary reduction element, perform a reduction operation using the particular element and the temporary reduction element, and provide, as a new temporary reduction element, a result of performing the reduction operation using the particular element and the temporary reduction element. The vector reduction circuit also comprises an output circuit configured to provide, for output as a reduction of the input vector, a new temporary reduction element corresponding to a result of performing the reduction operation using a last element of the input vector.

Claims (63)

1. A system comprising:

a vector reduction unit configured to perform vector reduction operations for one or more input vectors; the vector reduction unit comprising a plurality of cells, at least one cell of the plurality of cells configured to:

receive an input element from a plurality of input elements included in an input vector;

receive a temporary reduction element that is either an output of a vector reduction operation performed by a cell that precedes the at least one cell or an initialization value from the cell that precedes the at least one cell;

receive a control element from a plurality of control elements included in a control vector that includes a respective control element for each of the plurality of cells; wherein each respective control element indicates to the corresponding cell whether to output a result of the vector reduction operation generated by the corresponding cell to an output circuit or provide the result of the vector reduction operation generated by the corresponding cell to another cell of the plurality of cells;

perform the vector reduction operation using the input element and the temporary reduction element based on the control element to generate an output element; and

in response to the control element indicating not to output the result to the output circuit, provide the output element to another cell of the plurality of cells, the output element being a new temporary reduction element for the other cell.

2. The system of claim 1 , wherein the respective control element is configured to indicate whether that the input element is a last input element in the input vector, wherein the corresponding cell is configured to provide the output element to the other cell in response to the respective control element indicating that the input element is not the last input element in the input vector.

3. The system of claim 2 , wherein the corresponding cell is further configured to provide the respective output element to the output circuit in response to the respective control element indicating that the input element is the last input element in the input vector.

4. The system of claim 1 , further comprising:

an input vector register configured to store the input element of the input vector;

a temporary reduction element register configured to store the temporary reduction element; and

a control vector register configured to store the control element of the control vector.

5. The system of claim 1 , wherein the vector reduction operation comprises a maximum vector reduction operation; wherein performing the maximum vector reduction operation comprises:

determining, as the output element, a maximum of the input element and the temporary reduction element.

6. The system of claim 1 , wherein the vector reduction operation comprises a minimum vector reduction operation; wherein performing the minimum vector reduction operation comprises:

determining, as the output element, a minimum of the input element and the temporary reduction element.

7. The system of claim 1 , wherein the vector reduction operation comprises a summation vector reduction operation; wherein performing the summation vector reduction operation comprises:

determining, as the output element, a sum of the input element and the temporary reduction element.

8. The system of claim 1 , wherein the vector reduction operation comprises a product vector reduction operation; wherein performing the product vector reduction operation comprises:

determining, as the output element, a product of the input element and the temporary reduction element.

9. The system of claim 1 , wherein the vector reduction operation comprises a mean vector reduction operation; wherein performing the mean vector reduction operation comprises:

determining, as the output element, a mean of the input element and the temporary reduction element.

10. The system of claim 1 , wherein the vector reduction operation comprises a maximum index vector reduction operation; wherein performing the maximum index vector reduction operation comprises:

determining a first index corresponding to a position of the input element in the input vector;

receiving data indicating a second index corresponding to the temporary reduction element;

determining a maximum of the input element and the temporary reduction element; and

generating, based on the maximum and as the output element, either the first index or the second index that is associated with the maximum.

11. The system of claim 1 , wherein the vector reduction operation comprises a minimum index vector reduction operation; wherein performing the minimum index vector reduction operation comprises:

determining a first index corresponding to a position of the input element in the input vector;

receiving data indicating a second index corresponding to the temporary reduction element;

determining a minimum of the input element and the temporary reduction element; and

generating, based on the minimum and as the output element, either the first index or the second index that is associated with the minimum.

12. The system of claim 1 , wherein the initialization value includes at least one of: a null value, a positive infinity, or a negative infinity.

13. A method for performing vector reduction operations in at least one cell of a plurality of cells, comprising:

receiving an input element from a plurality of input elements included in an input vector;

receiving a temporary reduction element that is either an output of a vector reduction operation performed by a cell that precedes the at least one cell or an initialization value from the cell that precedes the at least one cell;

receiving a control element from a plurality of control elements included in a control vector that includes a respective control element for each of the plurality of cells; and wherein each respective control element in the control vector indicates to the corresponding cell whether to output a result of the vector reduction operation generated by the corresponding cell to an output circuit or provide the result of the vector reduction operation generated by the corresponding cell to another cell of the plurality of cells;

performing the vector reduction operation using the input element and the temporary reduction element based on the control element to generate an output element; and

in response to the control element indicating not to output the result to the output circuit, providing the output element to another cell of the plurality of cells, the output element being a new temporary reduction element for the other cell.

14. The method of claim 13 , wherein the respective control element is configured to indicate whether that the input element is a last input element in the input vector, wherein the corresponding cell is configured to provide the output element to the other cell in response to the control element indicating that the input element is not the last input element in the input vector.

15. The method of claim 14 , wherein the corresponding cell is further configured to provide the respective output element to the output circuit in response to the respective control element indicating that the input element is the last input element in the input vector.

16. The method of claim 13 , further comprising:

an input vector register configured to store the input element of the input vector;

a temporary reduction element register configured to store the temporary reduction element; and

a control vector register configured to store the control element of the control vector.

17. The method of claim 13 , wherein the vector reduction operation comprises at least one of: a maximum vector reduction operation, a minimum vector reduction operation, a summation vector reduction operation, a product vector reduction operation, or a mean vector reduction operation;

wherein performing the maximum vector reduction operation comprises determining, as the output element, a maximum of the input element and the temporary reduction element;

wherein performing the minimum vector reduction operation comprises determining, as the output element, a minimum of the input element and the temporary reduction element;

wherein performing the summation vector reduction operation comprises determining, as the output element, a sum of the input element and the temporary reduction element;

wherein performing the product vector reduction operation comprises determining, as the output element, a product of the input element and the temporary reduction element; and

wherein performing the mean vector reduction operation comprises determining, as the output element, a mean of the input element and the temporary reduction element.

18. The method of claim 13 , wherein the vector reduction operation comprises a maximum index vector reduction operation; wherein performing the maximum index vector reduction operation comprises:

determining a first index corresponding to a position of the input element in the input vector;

receiving data indicating a second index corresponding to the temporary reduction element;

determining a maximum of the input element and the temporary reduction element; and

generating, based on the maximum and as the output element, either the first index or the second index that is associated with the maximum.

19. The method of claim 13 , wherein the vector reduction operation comprises a minimum index vector reduction operation; wherein performing the minimum index vector reduction operation comprises:

determining a first index corresponding to a position of the input element in the input vector;

receiving data indicating a second index corresponding to the temporary reduction element;

determining a minimum of the input element and the temporary reduction element; and

generating, based on the minimum and as the output element, either the first index or the second index that is associated with the minimum.

20. The method of claim 13 , wherein the initialization value includes at least one of: a null value, a positive infinity, or a negative infinity.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE DOCUMENT DATE PREVIOUSLY RECORDED ON REEL 056750 FRAME 0328. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 16, 2023
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 065610/0895 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 1, 2021
From: THORSON, GREGORY MICHAEL; PHELPS, ANDREW EVERETT; TEMAM, OLIVIER
To: GOOGLE INC.
Reel/Frame 056732/0041 →
CHANGE OF NAME Recorded Jul 1, 2021
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 056750/0328 →
Continuity (4)
Continuation 16918448 · Jul 1, 2020
Continuation 16129663 · Sep 12, 2018
Continuation 15477791 · Apr 3, 2017
Related Publication 20210318983A1 · Oct 14, 2021