IP Library Granted Patent US 11,551,144
Granted Patent B2
US 11,551,144 · App. 16/761,653 · Granted Jan 10, 2023

Dynamic placement of computation sub-graphs

Inventors: Jakob Nicolaus Foerster (San Francisco, CA); Matthew Sharifi (Zurich, CH)
Assignee: DeepMind Technologies Limited
G06N20/00G06F16/9024
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,551,144
App. No.
16/761,653
Granted
Jan 10, 2023
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for assigning operations of a computational graph to a plurality of computing devices are disclosed. Data characterizing a computational graph is obtained. Context information for a computational environment in which to perform the operations of the computational graph is received. A model input is generated, which includes at least the context information and the data characterizing the computational graph. The model input is processed using the machine learning model to generate an output defining placement assignments of the operations of the computational graph to the plurality of computing devices. The operations of the computational graph are assigned to the plurality of computing device according to the defined placement assignments.

Claims (49)

1. A method comprising:

obtaining data characterizing a computational graph comprising a plurality of nodes representing operations and directed edges representing data dependencies;

receiving context information for a computational environment in which to perform the operations of the computational graph, the context information including data representing a network connecting a plurality of computing devices in the computational environment;

generating a model input comprising at least the context information and the data characterizing the computational graph;

processing the model input using a machine learning model to generate an output defining placement assignments of the operations of the computational graph to the plurality of computing devices, each placement assignment of the placement assignments specifying an assignment of a respective computational operation in the computational graph to be performed by one or more respective computing devices in the computational environment; and

assigning operations of the computational graph to the plurality of computing devices according to the defined placement assignments.

2. The computer-implemented method of claim 1 , wherein the machine learning model has been trained to generate placement assignments for the operations of the computational graph that satisfy at least one pre-determined weight for one or more optimization goals.

3. The computer-implemented method of claim 1 , further comprising, prior to processing the model input using the machine learning model:

receiving a constraint that identifies at least one optimization goal for graph processing; and

generating the model input using the constraint in addition to the context information and the data characterizing the computational graph.

4. The computer-implemented method of claim 3 , wherein the constraint is in a form of a vector that assigns a respective weight to one or more optimization goals.

5. The computer-implemented method of claim 2 , wherein the one or more optimization goals includes one or more of: latency, battery, energy impact, bandwidth, and computational time.

6. The computer-implemented method of claim 1 , wherein the context information further comprises information defining at least one computational capability of the plurality of computing devices in the computational environment including available battery life, available processing capability, available storage capacity, available memory, or network speed.

7. The computer-implemented method of claim 1 , wherein the data representing a network connecting the plurality of computing devices includes data representing one or more of: measured or expected latency of the network, network speed, and available computing devices on the network.

8. The computer-implemented method of claim 1 , wherein the computational graph comprises a plurality of repeated operations and wherein the method further comprises:

after determining a placement assignment for one of the repeated operations, assigning subsequent repeated operations to a same placement assignment for a predetermined number of computational time steps.

9. The computer-implemented method of claim 8 , further comprising after the predetermined number of computational time steps, reevaluating the placement assignment of the repeated operations.

10. The computer-implemented method of claim 1 , wherein the computational graph or a sub-graph of the computational graph represents a particular task, and wherein the method further comprises:

after determining placement assignments for the operations of the computational graph or sub-graph of the computational graph, creating a policy that defines placement assignments of the operations of the particular task from the determination of placement assignments for the operations;

receiving data characterizing a second computational graph or sub-graph representing the same particular task as the computational graph comprising a plurality of nodes representing operations and directed edges representing data dependencies or the sub-graph of the computational graph; and

determining placement assignments of the operations of the second computational graph or subgraph from the created policy.

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

reevaluating the created policy after a predetermined number of computational time steps.

12. The computer-implemented method of claim 11 , wherein the predetermined number of computational time steps is determined based on a cost associated with re-computing the policy.

13. A system comprising:

one or more computers; and

one or more storage devices storing instructions that are operable, when executed on one or more computers, to cause the one or more computers to perform operations comprising:

obtaining data characterizing a computational graph comprising a plurality of nodes representing operations and directed edges representing data dependencies;

receiving context information for a computational environment in which to perform the operations of the computational graph, the context information including data representing a network connecting a plurality of computing devices in the computational environment;

generating a model input comprising at least the context information and the data characterizing the computational graph;

processing the model input using a machine learning model to generate an output defining placement assignments of the operations of the computational graph to the plurality of computing devices, each placement assignment of the placement assignments specifying an assignment of a respective computational operation in the computational graph to be performed by one or more respective computing devices in the computational environment; and

assigning operations of the computational graph to the plurality of computing devices according to the defined placement assignments.

14. The system of claim 13 , wherein the machine learning model has been trained to generate placement assignments for the operations of the computational graph that satisfy at least one pre-determined weight for one or more optimization goals.

15. The system of claim 14 , wherein the one or more optimization goals includes one or more of: latency, battery, energy impact, bandwidth, and computational time.

16. The system of claim 13 , wherein the operations further comprise, prior to processing the model input using the machine learning model:

receiving a constraint that identifies at least one optimization goal for graph processing; and

generating the model input using the constraint in addition to the context information and the data characterizing the computational graph.

17. The system of claim 13 , wherein the context information further comprises information defining at least one computational capability of the plurality of computing devices in the computational environment including available battery life, available processing capability, available storage capacity, available memory, or network speed.

18. The system of claim 13 , wherein the data representing a network connecting the plurality of computing devices includes data representing one or more of:

measured or expected latency of the network, network speed, and available computing devices on the network.

19. The system of claim 13 , wherein the computational graph comprises repeated operations and wherein the operations further comprise:

after determining a placement assignment for one of the repeated operations, assigning subsequent repeated operations to a same placement assignment for a predetermined number of computational time steps.

20. The system of claim 18 , wherein the operations further comprise after the predetermined number of computational time steps, reevaluating the placement assignment of the repeated operations.

21. One or more non-transitory computer-readable storage media encoded with instructions that, when executed by one or more computers, cause the one or more computers to perform operations comprising:

obtaining data characterizing a computational graph comprising a plurality of nodes representing operations and directed edges representing data dependencies;

receiving context information for a computational environment in which to perform the operations of the computational graph, the context information including data representing a network connecting a plurality of computing devices in the computational environment;

generating a model input comprising at least the context information and the data characterizing the computational graph;

processing the model input using a machine learning model to generate an output defining placement assignments of the operations of the computational graph to the plurality of computing devices, each placement assignment of the placement assignments specifying an assignment of a respective computational operation in the computational graph to be performed by one or more respective computing devices in the computational environment; and

assigning operations of the computational graph to the plurality of computing devices according to the defined placement assignments.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2025
From: DEEPMIND TECHNOLOGIES LIMITED
To: GDM HOLDING LLC
Reel/Frame 071109/0414 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2020
From: FOERSTER, JAKOB NICOLAUS; SHARIFI, MATTHEW
To: GOOGLE LLC
Reel/Frame 052786/0934 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2020
From: GOOGLE LLC
To: DEEPMIND TECHNOLOGIES LIMITED
Reel/Frame 052787/0065 →