IP Library Granted Patent US 10,685,295
Granted Patent B1
US 10,685,295 · App. 15/859,077 · Granted Jun 16, 2020

Allocating resources for a machine learning model

Inventors: Jonathan Ross (Menlo Park, CA); John Michael Stivoric (Pittsburgh, PA)
Assignee: X Development LLC
G06N20/00G06F9/4887G06F9/505G06F9/5016G06F8/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 10,685,295
App. No.
15/859,077
Granted
Jun 16, 2020
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 (73)

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

receiving a machine learning model to execute on a special purpose machine learning model processor;

generating, from the machine learning model, a computational dataflow graph representing the machine learning model comprising 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 as part of the model output from the model input, 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;

scheduling operations of the computational dataflow graph;

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

determining an amount of resources required to execute the computational dataflow graph representing the machine learning model; and

allocating resources based on the determined amounts of resources required to execute the machine learning model represented by the computational dataflow graph.

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

determining a number of operations required for executing the computational dataflow graph;

determining an amount of storage required for executing the computational dataflow graph; and

determining an amount of input/output communications required for executing the computational dataflow graph.

3. The computer-implemented method of claim 1 , wherein scheduling the operations of the computational dataflow graph comprises:

determining a starting clock cycle;

determining a duration for execution of each operation; and

scheduling the operations of the computational dataflow graph using the starting clock cycle and the duration.

4. The method of claim 1 , further comprising:

automatically load-balancing the machine learning model based on operations and input/output required of the model at compile time.

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

6. The method of claim 5 , further comprising:

adjusting data center resources based on the resource use of the machine learning model.

7. The method of claim 1 , wherein allocating resources based on the determined amounts of resources required to execute the machine learning model represented by the computational dataflow graph 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 computational dataflow 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 method of claim 1 , further comprising:

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

9. A computer-implemented method for allocating resources for machine learning models to run together on a special purpose machine learning model processor, the method comprising:

generating, from machine learning models, computational dataflow graphs, each graph representing one of the machine learning models;

scheduling and compiling, using a deterministic instruction set architecture that specifies functionality of a special purpose machine learning model processor, the computational dataflow graphs representing the machine learning models into executable binaries;

determining an amount of resources required to execute each executable binary;

determining an amount of resources available on the special purpose machine learning model processor;

determining a first executable binary of a computational dataflow graph representing a machine learning model to execute on the special purpose machine learning model processor;

determining a second executable binary of a computational dataflow graph representing a second machine learning model to execute on the special purpose machine learning model processor; and

allocating resources for the first and second machine executable binaries to execute together on the special purpose machine learning model processor.

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

determining a number of operations required for executing the computational dataflow graph;

determining an amount of storage required for executing the computational dataflow graph; and

determining an amount of input/output communications required for executing the computational dataflow graph.

11. The computer-implemented method of claim 10 , comprising:

determining a starting clock cycle;

determining a duration for execution of each operation; and

scheduling the operations of the computational dataflow graph using the starting clock cycle and the duration.

12. The computer-implemented method of claim 9 , comprising scheduling operations of the computational dataflow graph at least by:

determining a starting clock cycle;

determining a duration for execution of each operation; and

scheduling the operations of the computational dataflow graph using the starting clock cycle and the duration.

13. The computer-implemented method of claim 9 , wherein determining a second executable binary of a computational dataflow graph representing a second machine learning model to execute on the special purpose machine learning model processor comprises:

determining that the second executable binary requires a number of operations that, when added to the number of operations required by the first executable binary, does not exceed a number of operations available on the special purpose machine learning model processor;

determining that the second executable binary requires an amount of storage that, when added to the amount of storage required by the first executable binary, does not exceed an amount of storage available on the special purpose machine learning model processor; and

determining that the second executable binary requires an amount of input/output communications that, when added to the amount of input/output communications required by the first executable binary, does not exceed an amount of input/output communications available on the special purpose machine learning model processor.

14. 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 the operations of:

receiving a machine learning model to execute on a special purpose machine learning model processor;

generating, from the machine learning model, a computational dataflow graph representing the machine learning model comprising 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 as part of the model output from the model input, 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;

scheduling operations of the computational dataflow graph;

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

determining an amount of resources required to execute the computational dataflow graph representing the machine learning model; and

allocating resources based on the determined amounts of resources required to execute the machine learning model represented by the computational dataflow graph.

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

determining a number of operations required for executing the computational dataflow graph;

determining an amount of storage required for executing the computational dataflow graph; and

determining an amount of input/output communications required for executing the computational dataflow graph.

16. The system of claim 14 , wherein scheduling the operations of the computational dataflow graph comprises:

determining a starting clock cycle;

determining a duration for execution of each operation; and

scheduling the operations of the computational dataflow graph using the starting clock cycle and the duration.

17. A computer-implemented method for allocating resources for machine learning models to run together on a special purpose machine learning model processor, the method comprising:

generating, from machine learning models, computational dataflow graphs, each graph representing one of the machine learning models;

scheduling and compiling, using a deterministic instruction set architecture that specifies functionality of a special purpose machine learning model processor, the computational dataflow graphs representing the machine learning models into executable binaries;

determining an amount of resources required to execute each executable binary;

determining an amount of resources available on the special purpose machine learning model processor;

determining a first executable binary of a computational dataflow graph representing a machine learning model to execute on the special purpose machine learning model processor;

determine a second executable binary of a computational dataflow graph representing a second machine learning model to execute on the special purpose machine learning model processor, comprising:

determining that the second executable binary requires a number of operations that, when added to the number of operations required by the first executable binary, does not exceed a number of operations available on the special purpose machine learning model processor; and

allocating resources for the first and second machine executable binaries to execute together on the special purpose machine learning model processor.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 1, 2021
From: X DEVELOPMENT LLC
To: GOOGLE LLC
Reel/Frame 057351/0979 →
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 Apr 16, 2020
From: STIVORIC, JOHN MICHAEL
To: X DEVELOPMENT LLC
Reel/Frame 052411/0627 →
Continuity (1)
Provisional Application 62440357 · Dec 29, 2016
Cited By (95)
US 12,206,696 US 12,219,032 US 12,244,621 US 12,267,345 US 12,306,733 US 12,309,185 US 12,323,449 US 12,335,286 US 12,335,348 US 12,341,797 US 12,348,545 US 12,355,626 US 12,355,787 US 12,355,793 US 12,363,148 US 12,368,745 US 12,368,746 US 12,368,747 US 12,375,573 US 12,395,573 US 12,399,742 US 12,401,669 US 12,405,849 US 12,407,701 US 12,407,702 US 12,418,552 US 12,418,555 US 12,425,428 US 12,425,430 US 12,436,886 US 12,443,527 US 12,445,474 US 12,452,279 US 12,457,231 US 12,463,995 US 12,463,996 US 12,463,997 US 12,464,003 US 12,470,577 US 12,470,578 US 12,483,576 US 12,489,770 US 12,495,052 US 12,500,910 US 12,500,911 US 12,500,912 US 12,505,126 US 12,506,762 US 12,511,556 US 12,513,221 US 12,537,836 US 12,537,837 US 12,537,839 US 12,537,840 US 12,537,884 US 12,549,575 US 12,549,577 US 12,556,548 US 12,556,559 US 12,561,565 US 12,563,060 US 12,563,064 US 12,563,071 US 12,563,072 US 12,579,066 US 12,580,934 US 12,580,935 US 12,580,936 US 12,580,937 US 12,587,553 US 12,592,950 US 12,598,205 US 12,613,930 US 12,614,076 US 12,615,271 US 12,621,324 US 12,621,329 US 12,627,686 US 12,627,687 US 12,627,690 US 12,634,312 US 12,634,376 US 12,652,302 US 12,659,325 US 12,659,326 US 12,659,327 US 12,659,333 US 12,676,874 US 12,689,638 US 12,689,640 US 12,695,768 US 12,706,932 US 12,706,933 US 12,712,897 US 12,719,896