IP Library › Granted Patent US 11,361,050
Granted Patent B2
US 11,361,050 · App. 16/196,423 · Granted Jun 14, 2022

Assigning dependent matrix-vector multiplication operations to consecutive crossbars of a dot product engine

Inventors: Soumitra Chatterjee (Bangalore, IN); Sunil Vishwanathpur Lakshminarasimha (Bangalore, IN); Mohan Parthasarathy (Bangalore, IN)
Assignee: Hewlett Packard Enterprise Development LP
G06F17/16G06F8/41G06N3/10
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,361,050
App. No.
16/196,423
Granted
Jun 14, 2022
Kind
B2
Abstract

Example implementations relate to assigning dependent matrix-vector multiplication (MVM) operations to consecutive crossbars of a dot product engine (DPE). A method can comprise grouping a first MVM operation of a computation graph with a second MVM operation of the computation graph where the first MVM operation is dependent on a result of the second MVM operation, assigning a first crossbar of a DPE to an operand of the first MVM operation, and assigning a second crossbar of the DPE to an operand of the second MVM operation, wherein the first and second crossbars are consecutive.

Claims (48)

1. A method, comprising:

grouping a first matrix-vector multiplication (MVM) operation of a computation graph with a second MVM operation of the computation graph, wherein the first MVM operation is dependent on a result of the second MVM operation;

assigning a first crossbar of a dot product engine (DPE) to an operand of the first MVM operation; and

assigning a second crossbar of the DPE to an operand of the second MVM operation, wherein the first and second crossbars are consecutive.

2. The method of claim 1 , wherein the first and second crossbars are on a same tile of the DPE.

3. The method of claim 2 , wherein the first and second crossbars are on a same core of the same tile.

4. The method of claim 1 , further comprising:

loading a first weight matrix associated with the first MVM operation onto the first crossbar; and

loading a second weight matrix associated with the second MVM operation onto the second crossbar.

5. The method of claim 4 , further comprising:

performing the first MVM operation on the first weight matrix using the first crossbar; and

performing the second MVM operation on the second weight matrix using the second crossbar.

6. The method of claim 1 , further comprising propagating an affinity according to the grouping of the first and second MVM operations.

7. The method of claim 1 , further comprising excluding a third MVM operation from the grouping of the first and second MVM operations in response to the third MVM operation being independent of a result of the first MVM operation and the result of the second MVM operation.

8. A non-transitory processor readable medium, comprising machine executable instructions that, when executed by a processor, cause the processor to:

determine whether a first matrix-vector multiplication (MVM) operation of a computation graph is dependent on a result of a second MVM operation of the computation graph; and

responsive to determining that the first MVM operation is dependent on a result of the second MVM operation:

load a first weight matrix for the first MVM operation onto a first crossbar of a dot product engine (DPE); and

load a second weight matrix for the second MVM operation onto a second crossbar of the DPE, wherein the first and second crossbars are consecutive.

9. The non-transitory processor readable medium of claim 8 , further comprising machine executable instructions that, when executed by the processor, cause the processor to, responsive to determining that the first MVM operation is dependent on the result of the second MVM operation:

obtain an affinity of a first operand of the first MVM operation;

propagate the affinity up to an operand of the second MVM operation; and

propagate the affinity down to a second operand of the first MVM operation.

10. The non-transitory processor readable medium of claim 8 , further comprising machine executable instructions that, when executed by the processor, cause the processor to partition the computation graph into a plurality of subgraphs, wherein each node of a respective one of the subgraphs has a same affinity.

11. A system, comprising:

a dot product engine (DPE) compiler to:

group operands of a first matrix-vector multiplication (MVM) operation with operands of a second MVM operation in a first group in response to the first MVM operation being dependent on a result of the second MVM operation; and

group operands of a third MVM in a second group, separate and distinct from the first group, in response to the third MVM operation being independent of a result of the first MVM operation and the result of the second MVM operation; and

a DPE including a plurality of crossbars and to load a plurality of weight matrices onto the plurality of crossbars according to the grouping of the operands.

12. The system of claim 11 , wherein:

the DPE compiler is to generate a list of groups, including the first and second groups; and

the list of groups indicates to which one of a plurality of groups, including the first and second groups, each respective one of a plurality of MVM operations, including the first and second MVM operations belong.

13. The system of claim 12 , wherein the DPE compiler is to:

perform a depth-first traversal (DFT) of a computation graph of the plurality of MVM operations; and

assign consecutive crossbars of the DPE to operands of the plurality of MVM operations of each respective one of the plurality of groups.

14. The system of claim 13 , wherein:

the DPE compiler is to partition a computation graph of the plurality of MVM operations into a plurality of subgraphs,

each subgraph is associated with each respective one of the plurality of groups.

15. The system of claim 12 , wherein the DPE compiler is to, for each respective one of the plurality of groups:

initialize an affinity of one operand of one MVM operation to a tuple of a corresponding one of the plurality of crossbars; and

propagate the affinity throughout the group.

16. The system of claim 15 , wherein the DPE is to perform the plurality of MVM operations, according to the propagated affinity of each respective one of the plurality of groups, on the plurality of weight matrices using the plurality of crossbars.

17. The system of claim 15 , wherein:

the tuple includes a tile identification number and a core identification number of the corresponding one of the plurality of crossbars; and

the DPE compiler is to select one of two different affinities received by a binary operation node of a computation graph of the plurality of MVM operations based on the tile identification number or the core identification number.

18. The system of claim 17 , wherein the DPE compiler is to select the one of the two different affinities having a higher tile identification number.

19. The system of claim 18 , wherein the DPE compiler is to, responsive to the two different affinities having a same tile identification number, select the one of the two different affinities having a higher core identification number.

20. The system of claim 11 , wherein the DPE compiler is to compile a program describing a neural network in a domain specific programming language (DSL).

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 26, 2018
From: CHATTERJEE, SOUMITRA; LAKSHMINARASIMHA, SUNIL VISHWANATHPUR; PARTHASARATHY, MOHAN
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 047621/0353 →
Continuity (1)
Related Publication 20200159811A1 · May 21, 2020