IP Library Granted Patent US 11,221,885
Granted Patent B1
US 11,221,885 · App. 16/869,195 · Granted Jan 11, 2022

Allocating resources for a machine learning model

Inventors: Jonathan Ross (Mountain View, CA); John Michael Stivoric (Pittsburgh, PA)
Assignee: Google LLC
G06F9/5038G06F9/4887G06F9/505G06F9/5016G06N20/00G06F8/41
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,221,885
App. No.
16/869,195
Granted
Jan 11, 2022
Kind
B1
Abstract

A method for allocating resources for a machine learning model is disclosed. A machine learning model to be executed on a special purpose machine learning model processor is received. A computational data graph is generated from the machine learning model. The computational dataflow graph represents the machine learning model which includes nodes, connector directed edges, and parameter directed edges. The operations of the computational dataflow graph is scheduled and then compiled using a deterministic instruction set architecture that specifies functionality of a special purpose machine learning model processor. An amount of resources required to execute the computational dataflow graph is determined. Resources are allocated based on the determined amounts of resources required to execute the machine learning model represented by the computational dataflow graph.

Claims (58)

1. A computer-implemented method for allocating resources for a machine learning model, the method comprising:

obtaining a data flow graph representative of a machine learning model to execute on a special purpose machine learning model processor;

scheduling operations of the data flow graph representative of the machine learning model, at least by determining: i) a starting clock cycle and ii) a duration for execution of each operation of the data flow graph, based on a deterministic attribute specific to computational operations of the data flow graph;

compiling the data flow graph using a deterministic instruction set architecture that specifies functionality of the special purpose machine learning model processor;

determining an amount of resources required to execute the data flow graph representative of the machine learning model; and

allocating resources based on the determined amounts of resources required to execute the machine learning model.

2. The computer-implemented method of claim 1 , wherein the data flow graph comprises a plurality of nodes, a plurality of connector directed edges, and a plurality of parameter directed edges, wherein each node represents a respective operation performed by the machine learning model, wherein each connector directed edge connects a respective first node to a respective second node that represents an operation that receives, as input, an output of an operation represented by the respective first node, and wherein each parameter directed edge connects into a respective node and represents a flow of one or more parameters of the machine learning model as input to the operation represented by the respective node.

3. The computer-implemented method of claim 1 , wherein determining an amount of resources required to execute the data flow graph comprises:

determining a number of operations required for executing the data flow graph;

determining an amount of storage required for executing the data flow graph; and

determining an amount of input/output communications required for executing the data flow graph.

4. The computer-implemented method of claim 1 , further comprising automatically load-balancing the machine learning model based on operations, input, and output required of the machine learning model at compile time.

5. The computer-implemented method of claim 1 , wherein the machine learning model executes on the special purpose machine learning model processor in a data center.

6. The computer-implemented method of claim 5 , further comprising adjusting data center resources based on resource use of the machine learning model.

7. The computer-implemented method of claim 1 , wherein allocating resources based on the determined amounts of resources required to execute the machine learning model comprises:

identifying resources for a second machine learning model that executes on the special purpose machine learning model processor, the resources being unused during an allocated time period; and

providing the resources to the machine learning model represented by the data flow graph during the allocated time period until a request for the second machine learning model is received by the special purpose machine learning model processor.

8. The computer-implemented method of claim 1 , further comprising:

rebalancing the machine learning model based on factors including usage, timing, number of operations the machine learning model requires, or a precision necessary to perform a machine learning task.

9. A system comprising one or more computers and one or more storage devices storing instructions that are executable by the one or more computers to cause the one or more computers to perform operations of:

obtaining a data flow graph representative of a machine learning model to execute on a special purpose machine learning model processor;

scheduling operations of the data flow graph representative of the machine learning model, at least by determining: i) a starting clock cycle and ii) a duration for execution of each operation of the data flow graph, based on a deterministic attribute specific to computational operations of the data flow graph;

compiling the data flow graph using a deterministic instruction set architecture that specifies functionality of the special purpose machine learning model processor;

determining an amount of resources required to execute the data flow graph representative of the machine learning model; and

allocating resources based on the determined amounts of resources required to execute the machine learning model.

10. The system of claim 9 , wherein the data flow graph comprises a plurality of nodes, a plurality of connector directed edges, and a plurality of parameter directed edges, wherein each node represents a respective operation performed by the machine learning model, wherein each connector directed edge connects a respective first node to a respective second node that represents an operation that receives, as input, an output of an operation represented by the respective first node, and wherein each parameter directed edge connects into a respective node and represents a flow of one or more parameters of the model as input to the operation represented by the respective node.

11. The system of claim 9 , wherein determining an amount of resources required to execute the data flow graph comprises:

determining a number of operations required for executing the data flow graph;

determining an amount of storage required for executing the data flow graph; and

determining an amount of input/output communications required for executing the data flow graph.

12. The system of claim 9 , wherein the operations comprise automatically load-balancing the machine learning model based on operations and input/output required of the machine learning model at compile time.

13. The system of claim 9 , wherein the special purpose machine learning model processor is in a data center.

14. The system of claim 13 , wherein the operations comprise adjusting data center resources based on resource use of the machine learning model.

15. The system of claim 9 , wherein allocating resources based on the determined amounts of resources required to execute the machine learning model comprises:

identifying resources for a second machine learning model that executes on the special purpose machine learning model processor, the resources being unused during an allocated time period; and

providing the resources to the machine learning model during the allocated time period until a request for the second machine learning model is received by the special purpose machine learning model processor.

16. The system of claim 9 , wherein the operations comprise rebalancing the machine learning model based on factors including usage, timing, number of operations the model requires, or a precision necessary to perform a machine learning task.

17. A computer-implemented method for allocating resources for a machine learning model, the method comprising:

obtaining a data flow graph representative of a machine learning model to execute on a special purpose machine learning model processor,

wherein the data flow graph comprises a plurality of nodes, a plurality of connector directed edges, and a plurality of parameter directed edges, wherein each node represents a respective operation performed by the machine learning model, wherein each connector directed edge connects a respective first node to a respective second node that represents an operation that receives, as input, an output of an operation represented by the respective first node, and wherein each parameter directed edge connects into a respective node and represents a flow of one or more parameters of the machine learning model as input to the operation represented by the respective node;

scheduling operations of the data flow graph representative of the machine learning model,

wherein scheduling operations of the data flow graph comprises:

determining a starting clock cycle,

determining a duration for execution of each operation, and

scheduling the operations of the data flow graph using the starting clock cycle and the duration;

compiling the data flow graph using a deterministic instruction set architecture that specifies functionality of the special purpose machine learning model processor;

determining an amount of resources required to execute the data flow graph representative of the machine learning model; and

allocating resources based on the determined amounts of resources required to execute the machine learning model.

18. A system comprising one or more computers and one or more storage devices storing instructions that are executable by the one or more computers to cause the one or more computers to perform operations of:

obtaining a data flow graph representative of a machine learning model to execute on a special purpose machine learning model processor,

wherein the data flow graph comprises a plurality of nodes, a plurality of connector directed edges, and a plurality of parameter directed edges, wherein each node represents a respective operation performed by the machine learning model, wherein each connector directed edge connects a respective first node to a respective second node that represents an operation that receives, as input, an output of an operation represented by the respective first node, and wherein each parameter directed edge connects into a respective node and represents a flow of one or more parameters of the machine learning model as input to the operation represented by the respective node;

scheduling operations of the data flow graph, wherein scheduling operations of the data flow graph comprises:

determining a starting clock cycle,

determining a duration for execution of each operation, and

scheduling the operations of the data flow graph using the starting clock cycle and the duration;

compiling the data flow graph using a deterministic instruction set architecture that specifies functionality of the special purpose machine learning model processor;

determining an amount of resources required to execute the data flow graph representative of the machine learning model; and

allocating resources based on the determined amounts of resources required to execute the machine learning model.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 1, 2021
From: X DEVELOPMENT LLC
To: GOOGLE LLC
Reel/Frame 057352/0157 →
EMPLOYMENT AGREEMENT Recorded May 4, 2021
From: ROSS, JONATHAN
To: X DEVELOPMENT LLC
Reel/Frame 056135/0670 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 12, 2020
From: ROSS, JONATHAN
To: GOOGLE INC.
Reel/Frame 052922/0112 →
ENTITY CONVERSION Recorded Jun 12, 2020
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 053581/0427 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 11, 2020
From: STIVORIC, JOHN MICHAEL
To: X DEVELOPMENT LLC
Reel/Frame 052620/0654 →
Continuity (3)
Continuation 16827376 · Mar 23, 2020
Continuation 15859077 · Dec 29, 2017
Provisional Application 62440357 · Dec 29, 2016
Cited By (4)
US 12,499,183 US 12,505,176 US 12,526,230 US 12,530,436