IP Library Granted Patent US 11,640,443
Granted Patent B2
US 11,640,443 · App. 16/886,189 · Granted May 2, 2023

Distributing matrix multiplication processing among processing nodes

Inventor: Aaron M. Collier (Bloomington, MN)
Assignee: Hewlett Packard Enterprise Development LP
G06F17/16G06F9/5066G06F9/544
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,640,443
App. No.
16/886,189
Granted
May 2, 2023
Kind
B2
Abstract

Based on a predetermined number of available processor sockets, a plurality of candidate matrix decompositions are identified, which correspond to a multiplication of matrices. Based on a first comparative relationship of a variation of first sizes of the plurality of candidate matrix decompositions along a first dimension and a second comparative relationship of a variation of second sizes of the plurality of candidate matrix decomposition sizes along a second dimension, a given candidate matrix decomposition is selected. Processing of the multiplication among the processor sockets is distributed based on the given candidate matrix decomposition.

Claims (33)

1. A non-transitory storage medium that stores machine-readable instructions that, when executed by a machine, cause the machine to:

based on a predetermined number of available processor sockets, identify a plurality of candidate matrix decompositions corresponding to a multiplication of matrices;

based on a first comparative relationship of a variation of first block sizes of the plurality of candidate matrix decompositions along a first dimension and a second comparative relationship of a variation of second block sizes of the plurality of candidate matrix decompositions along a second dimension, select a given candidate matrix decomposition of the plurality of candidate matrix decompositions; and

distribute processing of the multiplication among the processor sockets based on the given candidate matrix decomposition.

2. The storage medium of claim 1 , wherein the instructions, when executed by the machine, further cause the machine to:

based on a predetermined number of processing nodes per processor socket, identify a plurality of candidate matrix sub-decompositions of the given candidate matrix decomposition;

based on a third comparative relationship of a variation of third sizes of the plurality of candidate matrix sub-decompositions along the first dimension and a fourth comparative relationship of a variation of fourth sizes of the plurality of candidate matrix sub-decompositions along the second dimension, select a given candidate matrix sub-decomposition of the plurality of candidate matrix sub-decompositions; and

distribute processing of the multiplication among the processing nodes of each processor socket of the plurality of processor sockets based on the given candidate matrix sub-decomposition.

3. The storage medium of claim 2 , wherein the processing nodes comprise non-uniform memory access (NUMA) nodes.

4. The storage medium of claim 2 , wherein the instructions, when executed by the machine, further cause the machine to determine node masks for memory buffers shared by the processing nodes.

5. The storage medium of claim 1 , wherein the instructions, when executed by the machine, further cause the machine to:

based on a processing core per processing node number, identify a plurality of candidate processing thread-to-processing core assignments;

based on at least one of a cache block size and a processor core per last level cache number, select a given candidate processing thread-to-processing core assignment of the plurality of candidate processing thread-to-processing core assignments; and

distribute processing of the multiplication among a plurality of processing threads of each processing node of the plurality of processing nodes based on the given candidate processing thread-to-processing core assignment.

6. The storage medium of claim 1 , wherein:

the first comparative relationship comprises a first difference between a maximum of the first block sizes and a minimum of the first block sizes; and

the instructions, when executed by the machine, further cause the machine to:

determining a cost based on the first difference; and

select the given candidate matrix decomposition based on the cost.

7. The storage medium of claim 6 , wherein:

the second comparative relationship comprises a second difference between a maximum of the second block sizes and a minimum of the second block sizes; and

the instructions, when executed by the machine, further cause the machine to determine the cost based on the first difference and the second difference.

8. The storage medium of claim 1 , wherein:

the first comparative relationship comprises a first ratio between a maximum of the first block sizes and a minimum of the first block sizes; and

the instructions, when executed by the machine, further cause the machine to:

determine a cost based on the first ratio; and

select the given candidate matrix decomposition based on the cost.

9. The storage medium of claim 8 , wherein:

the second comparative relationship comprises a second ratio between a maximum of the second block sizes and a minimum of the second block sizes; and

the instructions, when executed by the machine, further cause the machine to determine the cost based on the first ratio and the second ratio.

10. The storage medium of claim 1 , wherein the instructions, when executed by the machine, further cause the machine to:

determine a cost based on the first comparative relationship, the second comparative relationship and a condition to bias the cost to select a first candidate matrix decomposition of the plurality of candidate matrix decompositions which is relatively more column centric than a second matrix decomposition of the plurality of candidate matrix decompositions; and

select the given candidate matrix decomposition based on the cost.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 28, 2020
From: COLLIER, AARON M.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 052778/0556 →
Continuity (1)
Related Publication 20210374208A1 · Dec 2, 2021
Cited By (1)
US 12,346,403