IP Library Granted Patent US 11,579,924
Granted Patent B2
US 11,579,924 · App. 16/789,006 · Granted Feb 14, 2023

Scheduling artificial intelligence model partitions based on reversed computation graph

Inventors: Jin Li (Shanghai, CN); Jinpeng Liu (Shanghai, CN); Christopher S. MacLellan (Uxbridge, MA)
Assignee: EMC IP Holding Company LLC
G06F9/4881G06F9/5027G06F9/5038G06F9/5066G06N5/027G06N20/00G06F2209/503
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,579,924
App. No.
16/789,006
Granted
Feb 14, 2023
Kind
B2
Abstract

Techniques are disclosed for scheduling artificial intelligence model partitions for execution in an information processing system. For example, a method comprises the following steps. An intermediate representation of an artificial intelligence model is obtained. A reversed computation graph corresponding to a computation graph generated based on the intermediate representation is obtained. Nodes in the reversed computation graph represent functions related to the artificial intelligence model, and one or more directed edges in the reversed computation graph represent one or more dependencies between the functions. The reversed computation graph is partitioned into sequential partitions, such that the partitions are executed sequentially and functions corresponding to nodes in each partition are executed in parallel.

Claims (56)

1. A method, comprising steps of:

obtaining an intermediate representation of an artificial intelligence model written in a source language, the intermediate representation comprising a structured text and being independent of the source language and a target language;

obtaining a reversed computation graph corresponding to a computation graph generated based on the intermediate representation, wherein nodes in the reversed computation graph represent functions related to the artificial intelligence model, and one or more directed edges in the reversed computation graph represent one or more dependencies between the functions, wherein a direction of each directed edge connecting two dependent nodes is reversed in the reversed computation graph; and

partitioning the reversed computation graph into sequential partition sets, such that the partition sets are executed sequentially and functions corresponding to nodes in each partition set are executed in parallel;

wherein partitioning the reversed computation graph into sequential partition sets further comprises:

calculating respective in-degrees for each node within the partition sets, wherein the in-degree of a given node represents a number of directed edges directed to the given node in the reversed computational graph;

identifying a first partition set comprising one or more nodes in the reversed computation graph having an in-degree of zero;

identifying a second partition set comprising one or more nodes in the reversed computation graph to which directed edges of the one or more nodes of the first partition set directly connect;

identifying at least a third partition set comprising one or more nodes in the reversed computation graph to which directed edges of the one or more nodes of the second partition set directly connect;

reordering the first, second and at least the third partition sets into a reversed order such that when a first function depends on a second function in accordance with the computation graph generated based on the intermediate representation, the second function is executed in the third partition set preceding the first function executed in the second partition set; and

sequentially executing respective functions of the at least the third partition set, the second partition set and the first partition set; and

wherein the steps are performed by one or more processing devices.

2. The method of claim 1 , further comprising determining one or more resources needed to execute functions within a given partition set prior to executing the functions in the given partition set.

3. The method of claim 2 , further comprising scheduling one or more functions in the given partition set to another partition set when at least a portion of the one or more resources needed to execute the functions within the given partition set are unavailable.

4. The method of claim 1 , wherein the first function and the second function are executed by a given resource of one or more resources needed to execute functions.

5. The method of claim 1 , wherein identifying the at least a third partition set comprises:

identifying at least a fourth partition set comprising one or more nodes to which directed edges of the one or more nodes of the third partition set directly connect.

6. The method of claim 1 , wherein at least one of the first partition set, the second partition set and the at least a third partition set comprises multiple nodes.

7. An apparatus, comprising:

a processor; and

a memory storing computer program instructions, the processor executing the computer program instructions in the memory to control the apparatus to:

obtain an intermediate representation of an artificial intelligence model written in a source language, the intermediate representation comprising a structured text and being independent of the source language and a target language;

obtain a reversed computation graph corresponding to a computation graph generated based on the intermediate representation, wherein nodes in the reversed computation graph represent functions related to the artificial intelligence model, and one or more directed edges in the reversed computation graph represent one or more dependencies between the functions, wherein a direction of each directed edge connecting two dependent nodes is reversed in the reversed computation graph; and

partition the reversed computation graph into sequential partition sets, such that the partition sets are executed sequentially and functions corresponding to nodes in each partition set are executed in parallel;

wherein partitioning the reversed computation graph into sequential partition sets further comprises:

calculating respective in-degrees for each node within the partition sets, wherein the in-degree of a given node represents a number of directed edges directed to the given node in the reversed computational graph;

identifying a first partition set comprising one or more nodes in the reversed computation graph having an in-degree of zero;

identifying a second partition set comprising one or more nodes in the reversed computation graph to which directed edges of the one or more nodes of the first partition set directly connect;

identifying at least a third partition set comprising one or more nodes in the reversed computation graph to which directed edges of the one or more nodes of the second partition set directly connect; and

reordering the first, second and at least the third partition sets into a reversed order such that when a first function depends on a second function in accordance with the computation graph generated based on the intermediate representation, the second function is executed in the third partition set preceding the first function executed in the second partition set; and

sequentially executing respective functions of the at least the third partition set, the second partition set and the first partition set.

8. The apparatus of claim 7 , wherein the processor executes the computer program instructions in the memory to further control the apparatus to determine one or more resources needed to execute functions within a given partition set prior to executing the functions in the given partition set.

9. The apparatus of claim 8 , wherein the processor executes the computer program instructions in the memory to further control the apparatus to schedule one or more functions in the given partition set to another partition set when at least a portion of the one or more resources needed to execute the functions within the given partition are unavailable.

10. The apparatus of claim 7 , wherein the first function and the second function are executed by a given resource of one or more resources needed to execute functions.

11. The apparatus of claim 7 , wherein identifying the at least a third partition set comprises:

identifying at least a fourth partition set comprising one or more nodes to which directed edges of the one or more nodes of the third partition set directly connect.

12. The apparatus of claim 7 , wherein at least one of the first partition set, the second partition set and the at least a third partition set comprises multiple nodes.

13. The apparatus of claim 7 , wherein the source language is written in different source languages.

14. A computer program product stored on a non-transitory computer-readable storage medium and comprising machine executable instructions, the machine executable instructions, when executed, causing a processing device to:

obtain an intermediate representation of an artificial intelligence model written in a source language, the intermediate representation comprising a structured text and being independent of the source language and a target language;

obtain a reversed computation graph corresponding to a computation graph generated based on the intermediate representation, wherein nodes in the reversed computation graph represent functions related to the artificial intelligence model, and one or more directed edges in the reversed computation graph represent one or more dependencies between the functions, wherein a direction of each directed edge connecting two dependent nodes is reversed in the reversed computation graph; and

partition the reversed computation graph into sequential partition sets, such that the partition sets are executed sequentially and functions corresponding to nodes in each partition set are executed in parallel;

wherein partitioning the reversed computation graph into sequential partition sets further comprises:

calculating respective in-degrees for each node within the partition sets, wherein the in-degree of a given node represents a number of directed edges directed to the given node in the reversed computational graph;

identifying a first partition set comprising one or more nodes in the reversed computation graph having an in-degree of zero;

identifying a second partition set comprising one or more nodes in the reversed computation graph to which directed edges of the one or more nodes of the first partition set directly connect;

identifying at least a third partition set comprising one or more nodes in the reversed computation graph to which directed edges of the one or more nodes of the second partition set directly connect;

reordering the first, second and at least the third partition sets into a reversed order such that when a first function depends on a second function in accordance with the computation graph generated based on the intermediate representation, the second function is executed in the third partition set preceding the first function executed in the second partition set; and

sequentially executing respective functions of the at least the third partition set, the second partition set and the first partition set.

15. The computer program product of claim 14 , further comprising determining one or more resources needed to execute functions within a given partition set prior to executing the functions in the given partition set.

16. The computer program product of claim 15 , further comprising scheduling one or more functions in the given partition set to another partition set when at least a portion of the one or more resources needed to execute the functions within the given partition set are unavailable.

17. The computer program product of claim 14 , wherein the first function and the second function are executed by a given resource of one or more resources needed to execute functions.

18. The computer program product of claim 14 , wherein identifying the at least a third partition set comprises:

identifying at least a fourth partition set comprising one or more nodes to which directed edges of the one or more nodes of the third partition set directly connect.

19. The computer program product of claim 14 , wherein at least one of the first partition set, the second partition set and the at least a third partition set comprises multiple nodes.

20. The computer program product of claim 14 , wherein the source language is written in different source languages.

Assignments (13)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0081) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0441 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0917) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0509 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052852/0022) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0582 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST AT REEL 052771 FRAME 0906 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0298 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052852/0022 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0081 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0917 →
SECURITY AGREEMENT Recorded May 28, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052771/0906 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 30, 2020
From: LI, JIN; LIU, JINPENG; MACLELLAN, CHRISTOPHER S.
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052261/0646 →
Continuity (1)
Related Publication 20210248002A1 · Aug 12, 2021
Cited By (1)
US 12,493,785