IP Library Granted Patent US 11,061,854
Granted Patent B2
US 11,061,854 · App. 16/918,448 · Granted Jul 13, 2021

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,061,854
App. No.
16/918,448
Granted
Jul 13, 2021
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 (61)

1. A system comprising:

an input vector register configured to store a plurality of input vector elements;

a control vector register configured to store a plurality of control vector elements; and

a plurality of cells, at least one cell of the plurality of cells configured to:

receive:

a respective input vector element of the plurality of input vector elements,

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 a placeholder signal, and

a respective control vector element within a control vector that has a corresponding control vector element for each of the plurality of cells;

compute a result using the respective input vector element and the temporary reduction element; and

provide the result to another cell of the plurality of cells, the result being a new temporary reduction element for the other cell.

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

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

4. The system of claim 1 , further comprising a temporary reduction element register configured to store the temporary reduction element.

5. The system of claim 1 , wherein computing the result comprises:

comparing the respective input vector element and the temporary reduction element; and

determining, based on the comparison and as the result, a maximum of the respective input vector element and the temporary reduction element.

6. The system of claim 1 , wherein computing the result comprises:

comparing the respective input vector element and the temporary reduction element; and

determining, based on the comparison and as the result, a minimum of the respective input vector element and the temporary reduction element.

7. The system of claim 1 , wherein computing the result comprises:

determining, as the result, a sum of the respective input vector element and the temporary reduction element.

8. The system of claim 1 , wherein computing the result comprises:

determining, as the result, a product of the respective input vector element and the temporary reduction element.

9. The system of claim 1 , wherein computing the result comprises:

determining, as the result, a product of the respective input vector element and the temporary reduction element.

10. The system of claim 1 , wherein computing the result comprises:

determining a first index corresponding to the respective input vector element;

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

comparing the respective input vector element and the temporary reduction element;

determining, based on the comparison, a maximum of the respective input vector element and the temporary reduction element; and

identifying, based on the determination and as the result, one of the first index corresponding to the respective input vector element or the second index corresponding to the temporary reduction element.

11. A non-transitory computer program product storing instructions that, when executed by at least one programmable processor, cause the at least one programmable processor to perform operations comprising:

receiving, for at least one cell of a plurality of cells, (i) a respective input vector element of an input vector, (ii) a temporary reduction element that is either an output of a vector reduction operation performed by a cell preceding the at least one cell or a placeholder signal, and (iii) a respective control vector element within a control vector that has a corresponding control vector element for the at least one cell;

computing a result using the respective input vector element and the temporary reduction element;

providing the result to another cell of the plurality of cells, the result being a new temporary reduction element for the other cell.

12. The non-transitory computer program product of claim 11 , further comprising:

providing the result to an output circuit in response to the respective control vector element indicating that the respective input vector element is a last input vector element in the input vector.

13. The non-transitory computer program product of claim 11 , wherein computing the result comprises:

comparing the respective input vector element and the temporary reduction element; and

determining, based on the comparison and as the result, a maximum of the respective input vector element and the temporary reduction element.

14. The non-transitory computer program product of claim 11 , wherein computing the result comprises:

comparing the respective input vector element and the temporary reduction element; and

determining, based on the comparison and as the result, a minimum of the respective input vector element and the temporary reduction element.

15. The non-transitory computer program product of claim 11 , wherein computing the result comprises:

determining, as the result, a sum of the respective input vector element and the temporary reduction element.

16. The non-transitory computer program product of claim 11 , wherein computing the result comprises:

determining, as the result, a product of the respective input vector element and the temporary reduction element.

17. The non-transitory computer program product of claim 11 , wherein computing the result comprises:

determining, as the result, a product of the respective input vector element and the temporary reduction element.

18. The non-transitory computer program product of claim 11 , wherein computing the result comprises:

determining a first index corresponding to the respective input vector element;

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

comparing the respective input vector element and the temporary reduction element;

determining, based on the comparison, a maximum of the respective input vector element and the temporary reduction element; and

identifying, based on the determination and as the result, one of the first index corresponding to the respective input vector element or the second index corresponding to the temporary reduction element.

19. A method comprising:

receiving, for at least one cell of a plurality of cells, (i) a respective input vector element of an input vector, (ii) a temporary reduction element that is either an output of a vector reduction operation performed by a cell preceding the at least one cell or a placeholder signal, and (iii) a respective control vector element within a control vector that has a corresponding control vector element for the at least one cell;

computing a result using the respective input vector element and the temporary reduction element;

providing the result to another cell of the plurality of cells, the result being a new temporary reduction element for the other cell.

20. The method of claim 19 , further comprising:

providing the result to an output circuit in response to the respective control vector element indicating that the respective input vector element is a last input vector element in the input vector.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 3, 2020
From: THORSON, GREGORY MICHAEL; PHELPS, ANDREW EVERETT; TEMAM, OLIVIER
To: GOOGLE INC.
Reel/Frame 053386/0156 →
CHANGE OF NAME Recorded Aug 3, 2020
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 053387/0584 →
Continuity (3)
Continuation 16129663 · Sep 12, 2018
Continuation 15477791 · Apr 3, 2017
Related Publication 20200334198A1 · Oct 22, 2020