IP Library Patent Application 17082867
Patent Application
App. No. 17/082,867

METHOD, ELECTRONIC DEVICE, AND COMPUTER PROGRAM PRODUCT FOR PROCESSING MACHINE LEARNING MODEL

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 None
App. No.
17/082,867
Abstract

Embodiments of the present disclosure relate to a method, an electronic device, and a computer program product for processing a machine learning model. The method includes: acquiring a computational graph, wherein nodes represent functions related to the machine learning model, and directed edges represent dependencies between the functions; determining multiple sequential portions of the computational graph, wherein the multiple portions will be executed sequentially and functions corresponding to nodes in each portion can be executed in parallel; and assigning, to the multiple portions, execution instances for executing functions corresponding to nodes in the corresponding portions, wherein the number of execution instances assigned to each portion is associated with time required to execute functions corresponding to nodes in the portion. With the technical solution of the present disclosure, it is possible to facilitate the parallel computation of the machine learning model and improve the efficiency of processing the machine learning model.

Claims (67)

1 . A method for processing a computational graph, including:

acquiring a computational graph, wherein nodes in the computational graph represent functions related to the machine learning model, and directed edges in the computational graph represent dependencies between the functions;

determining multiple sequential portions of the computational graph wherein the multiple portions will be executed sequentially and functions corresponding to nodes in each portion can be executed in parallel; and

assigning, to the multiple portions, execution instances for executing functions corresponding to nodes in the corresponding portions, wherein the number of execution instances assigned to each portion is associated with time required to execute functions corresponding to nodes in the portion.

2 . The method according to claim 1 , wherein assigning, to the multiple portions, execution instances includes:

determining, based on functions corresponding to nodes in a first portion of the multiple portions, the type of processing units for providing execution instances assigned to the first portion; and

assigning, to the first portion, the execution instances provided by the processing units of the type.

3 . The method according to claim 1 , wherein assigning, to the multiple portions, execution instances includes:

determining execution instances to be assigned to a first portion of the multiple portions;

dividing the first portion into multiple sub-portions if the execution instances to be assigned to the first portion come from multiple processing units; and

assigning execution instances to each sub-portion, wherein the execution instances assigned to each sub-portion come from different processing units, and the number of execution instances assigned to each sub-portion is associated with time required to execute functions corresponding to nodes in the sub-portion.

4 . The method according to claim 1 , wherein assigning, to the multiple portions, execution instances includes:

assigning a preset number of execution instances to a first portion of the multiple portions; and

wherein the method further includes:

adjusting the execution instances assigned to the first portion during the execution of functions corresponding to nodes in the first portion.

5 . The method according to claim 4 , wherein adjusting the execution instances assigned to the first portion includes:

recycling execution instances among the preset number of execution instances that are not used during the execution of the functions corresponding to the nodes in the first portion.

6 . The method according to claim 4 , wherein adjusting the execution instances assigned to the first portion includes:

determining the number of execution instances that need to be added to the first portion, if it is determined that the preset number is less than the number of execution instances required to execute the functions corresponding to the nodes in the first portion; and

assigning the determined number of execution instances to the first portion.

7 . The method according to claim 1 , wherein determining the multiple portions of the computational graph includes:

determining in-degrees of multiple nodes of the computational graph, wherein an in-degree of a node represents the number of directed edges pointing to the node; and

determining the multiple portions of the computational graph based on the in-degrees.

8 . The method according to claim 7 , wherein determining the multiple portions of the computational graph based on the in-degrees includes iteratively performing the following actions:

selecting a first portion of the computational graph so that each node in the first portion has a preset threshold in-degree; and

removing the first portion and directed edges related to nodes in the first portion from the computational graph, so as to update the computational graph.

9 . The method according to claim 1 , wherein the execution instances are provided by at least one of the following:

a central processing unit; and

a dedicated processing unit.

10 . An electronic device, including:

at least one processing unit; and

at least one memory which is coupled to the at least one processing unit and stores instructions for execution by the at least one processing unit, wherein the instructions, when being executed by the at least one processing unit, cause the device to perform actions including:

acquiring a computational graph, wherein nodes in the computational graph represent functions related to the machine learning model, and directed edges in the computational graph represent dependencies between the functions;

determining multiple sequential portions of the computational graph wherein the multiple portions will be executed sequentially and functions corresponding to nodes in each portion can be executed in parallel; and

assigning, to the multiple portions, execution instances for executing functions corresponding to nodes in the corresponding portions, wherein the number of execution instances assigned to each portion is associated with time required to execute functions corresponding to nodes in the portion.

11 . The device according to claim 10 , wherein assigning, to the multiple portions, execution instances includes:

determining, based on functions corresponding to nodes in a first portion of the multiple portions, the type of processing units for providing execution instances assigned to the first portion; and

assigning, to the first portion, the execution instances provided by the processing units of the type.

12 . The device according to claim 10 , wherein assigning, to the multiple portions, execution instances includes:

determining execution instances to be assigned to a first portion of the multiple portions;

dividing the first portion into multiple sub-portions if the execution instances to be assigned to the first portion come from multiple processing units; and

assigning execution instances to each sub-portion, wherein the execution instances assigned to each sub-portion come from different processing units, and the number of execution instances assigned to each sub-portion is associated with time required to execute functions corresponding to nodes in the sub-portion.

13 . The device according to claim 10 , wherein assigning, to the multiple portions, execution instances includes:

assigning a preset number of execution instances to a first portion of the multiple portions; and

wherein the operations further include:

adjusting the execution instances assigned to the first portion during the execution of functions corresponding to nodes in the first portion.

14 . The device according to claim 13 , wherein adjusting the execution instances assigned to the first portion includes:

recycling execution instances among the preset number of execution instances that are not used during the execution of the functions corresponding to the nodes in the first portion.

15 . The device according to claim 13 , wherein adjusting the execution instances assigned to the first portion includes:

determining the number of execution instances that need to be added to the first portion, if it is determined that the preset number is less than the number of execution instances required to execute the functions corresponding to the nodes in the first portion; and

assigning the determined number of execution instances to the first portion.

16 . The device according to claim 10 , wherein determining the multiple portions of the computational graph includes:

determining in-degrees of multiple nodes of the computational graph, wherein an in-degree of a node represents the number of directed edges pointing to the node; and

determining the multiple portions of the computational graph based on the in-degrees.

17 . The device according to claim 16 , wherein determining the multiple portions of the computational graph based on the in-degrees includes iteratively performing the following actions:

selecting a first portion of the computational graph so that each node in the first portion has a preset threshold in-degree; and

removing the first portion and directed edges related to nodes in the first portion from the computational graph, so as to update the computational graph.

18 . The device according to claim 10 , wherein the execution instances are provided by at least one of the following:

a central processing unit; and

a dedicated processing unit.

19 . A computer program product tangibly stored in a non-transitory computer-readable medium and including machine-executable instructions, wherein the machine-executable instructions, when being executed, cause a machine to perform steps of a method for processing a computational graph, including:

acquiring a computational graph, wherein nodes in the computational graph represent functions related to the machine learning model, and directed edges in the computational graph represent dependencies between the functions;

determining multiple sequential portions of the computational graph wherein the multiple portions will be executed sequentially and functions corresponding to nodes in each portion can be executed in parallel; and

assigning, to the multiple portions, execution instances for executing functions corresponding to nodes in the corresponding portions, wherein the number of execution instances assigned to each portion is associated with time required to execute functions corresponding to nodes in the portion.

20 . The computer program product according to claim 19 , wherein assigning, to the multiple portions, execution instances includes:

determining, based on functions corresponding to nodes in a first portion of the multiple portions, the type of processing units for providing execution instances assigned to the first portion; and

assigning, to the first portion, the execution instances provided by the processing units of the type.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0523) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0664 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0434) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0740 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0609) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0570 →
RELEASE OF SECURITY INTEREST AT REEL 054591 FRAME 0471 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0463 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 054475/0609 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0434 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0523 →
SECURITY AGREEMENT Recorded Nov 13, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 054591/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 28, 2020
From: LIU, JINPENG; LI, JIN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 054200/0018 →