IP Library Granted Patent US 10,108,581
Granted Patent B1
US 10,108,581 · App. 15/477,791 · Granted Oct 23, 2018

Vector reduction processor

Inventors: Gregory Michael Thorson (Waunakee, WI); Andrew Everett Phelps (Middleton, WI); Olivier Temam (Antony, FR)
Assignee: Google LLC
G06F15/8053G06F9/30036
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 10,108,581
App. No.
15/477,791
Granted
Oct 23, 2018
Kind
B1
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 (50)

1. A vector reduction circuit configured to reduce an input vector of elements, the vector reduction circuit comprising:

a plurality of cells, wherein each of the plurality of cells comprises:

an input vector element register configured to receive a particular element of the input vector;

a temporary reduction element register configured to receive, from another cell, a temporary reduction element;

computation circuitry having one or more computation units, wherein each of the one or more computation units is configured to perform a respective reduction operation using the particular element and the temporary reduction element; and

a result register configured to:

receive a result of the respective reduction operation,

receive a control vector element that corresponds to a respective one of the plurality of cells,

provide, when the control vector element indicates the respective one of the plurality of cells is not a last cell for a segment of the input vector, and as a new temporary reduction element to another of the plurality of cells, the result of performing the reduction operation using the particular element and the temporary reduction element, and

provide, when the control vector element indicates the respective one of the plurality of cells is a last cell for a segment of the input vector, the result of performing the reduction operation using the particular element and the temporary reduction element to an output circuit, wherein the output circuit is configured to provide, for output as a reduction of a segment of the input vector, the result of performing the reduction operation using the particular element and the temporary reduction element.

2. The vector reduction circuit of claim 1 , wherein the reduction operation is a maximum value reduction operation, and wherein performing the reduction operation using the particular element and the temporary reduction element comprises:

comparing the particular element and the temporary reduction element; and

determining, based at least on the comparison and as the result of performing the reduction operation using the particular element and the temporary reduction element, a maximum of the particular element and the temporary reduction element.

3. The vector reduction circuit of claim 1 , wherein the reduction operation is a minimum value reduction operation, and wherein performing the reduction operation using the particular element and the temporary reduction element comprises:

comparing the particular element and the temporary reduction element; and

determining, based at least on the comparison and as the result of performing the reduction operation using the particular element and the temporary reduction element, a minimum of the particular element and the temporary reduction element.

4. The vector reduction circuit of claim 1 , wherein the reduction operation is a summation reduction operation, and wherein performing the reduction operation using the particular element and the temporary reduction element comprises:

determining, as the result of performing the reduction operation using the particular element and the temporary reduction element, a sum of the particular element and the temporary reduction element.

5. The vector reduction circuit of claim 1 , wherein the reduction operation is a product reduction operation, and wherein performing the reduction operation using the particular element and the temporary reduction element comprises:

determining, as the result of performing the reduction operation using the particular element and the temporary reduction element, a product of the particular element and the temporary reduction element.

6. The vector reduction circuit of claim 1 , wherein the reduction operation is a maximum index operation, and wherein performing the reduction operation using the particular element and the temporary reduction element comprises:

determining a first index corresponding to the particular element;

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

comparing the particular element and the temporary reduction element;

determining, based at least on the comparison, a maximum of the particular element and the temporary reduction element; and

identifying, based at least on the determination and as the result of performing the reduction operation using the particular element and the temporary reduction element, one of the first index corresponding to the particular element or the second index corresponding to the temporary reduction element.

7. The vector reduction circuit of claim 1 , wherein the reduction operation is a minimum index operation, and wherein performing the reduction operation using the particular element and the temporary reduction element comprises:

determining a first index corresponding to the particular element;

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

comparing the particular element and the temporary reduction element;

determining, based at least on the comparison, a minimum of the particular element and the temporary reduction element; and

identifying, based at least on the determination and as the result of performing the reduction operation using the particular element and the temporary reduction element, one of the first index corresponding to the particular element or the second index corresponding to the temporary reduction element.

8. The vector reduction circuit of claim 1 , wherein the particular element of the input vector is received in a staggered input of elements.

9. The vector reduction circuit of claim 1 , wherein the input vector is identified as including a plurality of segments of elements.

10. The vector reduction circuit of claim 1 , wherein the particular element is a designated last element of the input vector, and wherein a designated last cell of the plurality of cells is configured to:

provide, to the output circuit and as a reduction of a last segment of the input vector, a result of performing the reduction operation using the designated last element of the input vector and the temporary reduction element.

11. The vector reduction circuit of claim 1 , wherein each of the plurality of cells other than the designated first cell that receives the designated first element of the input vector is configured to:

provide, when the control vector element indicates the respective one of the plurality of cells is the last cell for a segment of the input vector, and as a new temporary reduction element to another of the plurality of cells, a placeholder signal.

12. The vector reduction circuit of claim 1 , wherein the output circuit is configured to provide, for output as a reduction of the input vector, a plurality of elements, wherein each of the plurality of elements corresponds to a reduction of a segment of the input vector.

13. The vector reduction circuit of claim 12 , wherein the output circuit is configured to provide, for output as the reduction of the input vector, an output vector comprising the plurality of elements.

14. The vector reduction circuit of claim 1 , comprising:

a control register configured to receive a control vector of elements, wherein the control vector elements specify one or more segments of the input vector.

15. The vector reduction circuit of claim 1 , wherein the output circuit provides the reduction of the segment of the input vector to a permute circuit configured to compute vector or matrix permutations.

16. The vector reduction circuit of claim 1 , wherein each of the plurality of cells is configured to:

receive a control signal specifying a type of the reduction operation to perform using the particular element and the temporary reduction element.

17. The vector reduction circuit of claim 1 , wherein the temporary reduction element corresponds to a result of performing the reduction operation using elements of the input vector that precede the particular element of the input vector.

18. The vector reduction circuit of claim 1 , comprising:

a control register configured to receive a control vector of elements, wherein each control vector element corresponds to a particular cell of the plurality of cells.

19. The vector reduction circuit of claim 1 , further comprising:

a designated first cell having a temporary reduction element register configured to receive a null value.

Assignments (4)
CORRECTIVE ASSIGNMENT TO CORRECT THE FILING DATE ON THE ASSIGNMENT AND CONFIRMATION PREVIOUSLY RECORDED ON REEL 045535 FRAME 0623. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Oct 12, 2018
From: THORSON, GREGORY MICHAEL; PHELPS, ANDREW EVERETT; TEMAM, OLIVIER
To: GOOGLE INC.
Reel/Frame 047233/0146 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2018
From: PHELPS, ANDREW EVERETT; TEMAM, OLIVIER
To: GOOGLE INC.
Reel/Frame 045535/0623 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2018
From: THORSON, GREGORY MICHAEL
To: GOOGLE LLC
Reel/Frame 045535/0657 →
CHANGE OF NAME Recorded Oct 20, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044567/0001 →