IP Library › Granted Patent US 12,353,911
Granted Patent B2
US 12,353,911 · App. 17/715,173 · Granted Jul 8, 2025

Method, electronic device, and computer program product for scheduling computing resources

Inventors: Jinpeng Liu (Shanghai, CN); Jiacheng Ni (Shanghai, CN); Zijia Wang (WeiFang, CN); Zhen Jia (Shanghai, CN)
Assignee: Dell Products L.P.
G06F9/4881G06N3/084
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 12,353,911
App. No.
17/715,173
Granted
Jul 8, 2025
Kind
B2
Abstract

Embodiments of the present disclosure relate to a method, an electronic device, and a computer program product for scheduling computing resources. In a method for scheduling computing resources provided by embodiments of the present disclosure, a computing graph for a neural network is acquired, wherein the computing graph includes at least a plurality of nodes, and each node includes at least an operator for forward propagation of the neural network and a gradient operator of the operator for back propagation of the neural network; and computing resources for the neural network are scheduled based on the computing graph. In this way, a correlation of operators between forward propagation and back propagation may be preserved. In addition, there is no need to schedule computing resources again during back propagation. Resource scheduling for forward propagation and back propagation may be completed simultaneously with only one scheduling operation.

Claims (65)

1. A method, comprising:

acquiring a computing graph for a neural network, the computing graph comprising at least a plurality of nodes, each of the nodes comprising at least an operator for forward propagation of the neural network and a gradient operator of the operator for back propagation of the neural network; and

scheduling computing resources for the neural network based on the computing graph;

wherein the plurality of nodes comprise at least a plurality of upper nodes and a plurality of lower nodes, outputs from operators in a plurality of first upper nodes of the plurality of upper nodes are respective inputs to an operator in a first lower node of the plurality of lower nodes, and

scheduling the computing resources based on the computing graph comprises:

computing, in the forward propagation of the neural network, the operators in the plurality of first upper nodes in parallel using different computing resources, respectively; and

computing the operator in the first lower node upon completion of the computation of the operators in the plurality of first upper nodes.

2. The method according to claim 1 , wherein scheduling the computing resources based on the computing graph comprises:

computing, in the back propagation of the neural network, the gradient operator of the operator using the same computing resources used for computing the operator.

3. The method according to claim 1 , wherein scheduling the computing resources based on the computing graph further comprises:

computing, in the back propagation of the neural network, a gradient operator in the first lower node; and

computing gradient operators in the plurality of first upper nodes in parallel using different computing resources, respectively, upon completion of the computation of the gradient operator in the first lower node.

4. The method according to claim 1 , wherein the plurality of nodes further comprise a plurality of intermediate nodes, an output from an operator in a second upper node of the plurality of upper nodes is an input to an operator in a first intermediate node of the plurality of intermediate nodes, and an output from an operator in a third upper node of the plurality of upper nodes and an output from the operator in the first intermediate node are respective inputs to an operator in a second lower node of the plurality of lower nodes, and

scheduling the computing resources based on the computing graph comprises:

computing, in the forward propagation of the neural network, the operator in the second upper node;

computing the operator in the third upper node and the operator in the first intermediate node in parallel using different computing resources, respectively, upon completion of the computation of the operator in the second upper node; and

computing the operator in the second lower node upon completion of the computation of the operator in the third upper node and the operator in the first intermediate node.

5. The method according to claim 4 , wherein scheduling the computing resources based on the computing graph further comprises:

computing, in the back propagation of the neural network, a gradient operator in the second lower node;

computing a gradient operator in the third upper node and a gradient operator in the first intermediate node in parallel using different computing resources, respectively, upon completion of the computation of the gradient operator in the second lower node; and

computing a gradient operator in the second upper node upon completion of the computation of the gradient operator in the third upper node and the gradient operator in the first intermediate node.

6. An electronic device, comprising:

at least one processor; and

memory coupled to the at least one processor, the memory having instructions stored therein, wherein the instructions, when executed by the at least one processor, cause the electronic device to perform actions comprising:

acquiring a computing graph for a neural network, the computing graph comprising at least a plurality of nodes, each of the nodes comprising at least an operator for forward propagation of the neural network and a gradient operator of the operator for back propagation of the neural network; and

scheduling computing resources for the neural network based on the computing graph;

wherein the plurality of nodes comprise at least a plurality of upper nodes and a plurality of lower nodes, outputs from operators in a plurality of first upper nodes of the plurality of upper nodes are respective inputs to an operator in a first lower node of the plurality of lower nodes, and

scheduling the computing resources based on the computing graph comprises:

computing, in the forward propagation of the neural network, the operators in the plurality of first upper nodes in parallel using different computing resources, respectively; and

computing the operator in the first lower node upon completion of the computation of the operators in the plurality of first upper nodes.

7. The electronic device according to claim 6 , wherein scheduling the computing resources based on the computing graph comprises:

computing, in the back propagation of the neural network, the gradient operator of the operator using the same computing resources used for computing the operator.

8. The electronic device according to claim 6 , wherein scheduling the computing resources based on the computing graph further comprises:

computing, in the back propagation of the neural network, a gradient operator in the first lower node; and

computing gradient operators in the plurality of first upper nodes in parallel using different computing resources, respectively, upon completion of the computation of the gradient operator in the first lower node.

9. The electronic device according to claim 6 , wherein the plurality of nodes further comprise a plurality of intermediate nodes, an output from an operator in a second upper node of the plurality of upper nodes is an input to an operator in a first intermediate node of the plurality of intermediate nodes, and an output from an operator in a third upper node of the plurality of upper nodes and an output from the operator in the first intermediate node are respective inputs to an operator in a second lower node of the plurality of lower nodes, and

scheduling the computing resources based on the computing graph comprises:

computing, in the forward propagation of the neural network, the operator in the second upper node;

computing the operator in the third upper node and the operator in the first intermediate node in parallel using different computing resources, respectively, upon completion of the computation of the operator in the second upper node; and

computing the operator in the second lower node upon completion of the computation of the operator in the third upper node and the operator in the first intermediate node.

10. The electronic device according to claim 9 , wherein scheduling the computing resources based on the computing graph further comprises:

computing, in the back propagation of the neural network, a gradient operator in the second lower node;

computing a gradient operator in the third upper node and a gradient operator in the first intermediate node in parallel using different computing resources, respectively, upon completion of the computation of the gradient operator in the second lower node; and

computing a gradient operator in the second upper node upon completion of the computation of the gradient operator in the third upper node and the gradient operator in the first intermediate node.

11. A computer program product that is tangibly stored on a non-transitory computer-readable medium and comprises machine-executable instructions, wherein the machine-executable instructions, when executed by a machine, cause the machine to perform actions comprising:

acquiring a computing graph for a neural network, the computing graph comprising at least a plurality of nodes, each of the nodes comprising at least an operator for forward propagation of the neural network and a gradient operator of the operator for back propagation of the neural network; and

scheduling computing resources for the neural network based on the computing graph;

wherein the plurality of nodes comprise at least a plurality of upper nodes and a plurality of lower nodes, outputs from operators in a plurality of first upper nodes of the plurality of upper nodes are respective inputs to an operator in a first lower node of the plurality of lower nodes, and

scheduling the computing resources based on the computing graph comprises:

computing, in the forward propagation of the neural network, the operators in the plurality of first upper nodes in parallel using different computing resources, respectively; and

computing the operator in the first lower node upon completion of the computation of the operators in the plurality of first upper nodes.

12. The computer program product according to claim 11 , wherein scheduling the computing resources based on the computing graph comprises:

computing, in the back propagation of the neural network, the gradient operator of the operator using the same computing resources used for computing the operator.

13. The computer program product according to claim 11 , wherein scheduling the computing resources based on the computing graph further comprises:

computing, in the back propagation of the neural network, a gradient operator in the first lower node; and

computing gradient operators in the plurality of first upper nodes in parallel using different computing resources, respectively, upon completion of the computation of the gradient operator in the first lower node.

14. The computer program product according to claim 11 , wherein the plurality of nodes further comprise a plurality of intermediate nodes, an output from an operator in a second upper node of the plurality of upper nodes is an input to an operator in a first intermediate node of the plurality of intermediate nodes, and an output from an operator in a third upper node of the plurality of upper nodes and an output from the operator in the first intermediate node are respective inputs to an operator in a second lower node of the plurality of lower nodes, and

scheduling the computing resources based on the computing graph comprises:

computing, in the forward propagation of the neural network, the operator in the second upper node;

computing the operator in the third upper node and the operator in the first intermediate node in parallel using different computing resources, respectively, upon completion of the computation of the operator in the second upper node; and

computing the operator in the second lower node upon completion of the computation of the operator in the third upper node and the operator in the first intermediate node.

15. The computer program product according to claim 14 , wherein scheduling the computing resources based on the computing graph further comprises:

computing, in the back propagation of the neural network, a gradient operator in the second lower node;

computing a gradient operator in the third upper node and a gradient operator in the first intermediate node in parallel using different computing resources, respectively, upon completion of the computation of the gradient operator in the second lower node; and

computing a gradient operator in the second upper node upon completion of the computation of the gradient operator in the third upper node and the gradient operator in the first intermediate node.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 7, 2022
From: LIU, JINPENG; NI, JIACHENG; WANG, ZIJIA; JIA, ZHEN
To: DELL PRODUCTS L.P.
Reel/Frame 059528/0821 →
Priority Claims (1)
CN 202210255841.1 · Mar 15, 2022 · national
Continuity (1)
Related Publication 20230297420A1 · Sep 21, 2023
References Cited (27)
US 11061731B2 · Zhao et al. · 2021 [cited by applicant]
US 20120209989A1 · Stewart et al. · 2012 [cited by applicant]
US 20140118355A1 · Vassilvitskii et al. · 2014 [cited by applicant]
US 20140380322A1 · Ailamaki et al. · 2014 [cited by applicant]
US 20180075098A1 · Yin et al. · 2018 [cited by applicant]
US 20180136912A1 · Venkataramani et al. · 2018 [cited by applicant]
US 20180203673A1 · Ravishankar et al. · 2018 [cited by applicant]
US 20180322387A1 · Sridharan · 2018 [cited by examiner]
US 20190324810A1 · Zhao et al. · 2019 [cited by applicant]
US 20200334083A1 · Liu et al. · 2020 [cited by applicant]
US 20200334544A1 · Liu et al. · 2020 [cited by applicant]
US 20210034582A1 · Liu et al. · 2021 [cited by applicant]
US 20210248002A1 · Li et al. · 2021 [cited by applicant]
US 20220114475A1 · Zhu · 2022 [cited by examiner]
US 20220300618A1 · Ding · 2022 [cited by examiner]
US 20240311193A1 · Li · 2024 [cited by examiner]
US 20240320512A1 · Zhai · 2024 [cited by examiner]
Wikipedia, “Intermediate Representation,” https://en.wikipedia.org/w/index.php?title=Intermediate_representation&direction=next&oldid=905361000, Mar. 16, 2022, 4 pages. [cited by applicant]
Z. Jia et al., “Beyond Data and Model Parallelism for Deep Neural Networks,” Proceedings of the 2nd SysML Conference, Palo Alto, CA, Jul. 2018, 13 pages. [cited by applicant]
Wikipedia, “Deep Learning,” https://en.wikipedia.org/wiki/Deep_learning, Apr. 3, 2022, 38 pages. [cited by applicant]
Wikipedia, “Everything as a Service,” https://simple.wikipedia.org/wiki/Everything_as_a_service, Mar. 25, 2022, 2 pages. [cited by applicant]
L. Song et al., “HyPar: Towards Hybrid Parallelism for Deep Learning Accelerator Array,” arXiv:1901.02067v1, Jan. 7, 2019, 13 pages. [cited by applicant]
M. Memon, “Project Radium: Finally, Modern AI Infrastructure with Multi-Architecture Support,” https://octo.vmware.com/introducing-project-radium/, Oct. 5, 2021, 7 pages. [cited by applicant]
Intel, “PlaidML,” https://www.intel.com/content/www/us/en/artificial-intelligence/plaidml.html, Accessed Dec. 30, 2021, 4 pages. [cited by applicant]
Tensorflow Core, “Introduction to Graphs and tf.function,” https://www.tensorflow.org/guide/intro_to_graphs#polymorphism_one_function_many_graphs, Dec. 8, 2021, 18 pages. [cited by applicant]
Easy Tensorflow, “Graph and Session,” https://www.easy-tensorflow.com/tf-tutorials/basics/graph-and-session, Accessed Dec. 30, 2021, 10 pages. [cited by applicant]
C. Szegedy et al., “Going Deeper with Convolutions,” arXiv:1409.4842v1, Sep. 17, 2014, 12 pages. [cited by applicant]