IP Library Patent Application 15945454
Patent Application
App. No. 15/945,454

CONDITIONAL GRAPH EXECUTION BASED ON PRIOR SIMPLIFIED GRAPH EXECUTION

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.
15/945,454
Abstract

Computer-implemented methods and associated hardware for executing directed graphs are disclosed herein. An example method includes deriving a simplified version of a directed graph, applying a pilot input tensor to the simplified version of the directed graph, and obtaining a collection of execution data during the application of the pilot input tensor to the simplified version of the directed graph. The method also includes applying a live input tensor to the directed graph and conditioning the execution of the directed graph using the collection of execution data. An output tensor is obtained from the conditional execution of the directed graph.

Claims (115)

1 . A computer-implemented method for executing a directed graph, in which each step is conducted by a processor, comprising:

deriving a simplified version of the directed graph;

applying a pilot input tensor to the simplified version of the directed graph;

obtaining a collection of execution data during the application of the pilot input tensor to the simplified version of the directed graph;

applying a live input tensor to the directed graph;

conditioning the execution of the directed graph, during the application of the live input tensor to the directed graph, using the collection of execution data; and

obtaining an output tensor from the conditional execution of the directed graph.

2 . The computer-implemented method from claim 1 , wherein:

the pilot input tensor and the live input tensor are not identical; and

the pilot input tensor and the live input tensor are stochastically dependent.

3 . The computer-implemented method from claim 1 , further comprising:

storing the execution data in memory as stored execution data; and

priming the directed graph for the conditional execution, prior to the conditional execution of the directed graph, using the stored execution data.

4 . The computer-implemented method from claim 1 , wherein:

the directed graph includes a set of vertices and a set of edges interconnecting the set of vertices;

the directed graph is a neural network;

the set of edges of the directed graph are calculations involving a set of weights for the neural network, wherein the set of weights include at least one weight tensor;

at least a subset of the set of vertices are weights for the neural network;

the conditional execution of the directed graph produces an inference tensor; and

the inference tensor is a response of the neural network to the live input tensor.

5 . The computer-implemented method from claim 4 , wherein:

an edge in the set of edges is a calculation using a four dimensional tensor.

6 . The computer-implemented method from claim 4 , wherein:

the deriving of the simplified version of the directed graph includes down-sampling the directed graph by a sampling factor;

the simplified version of the directed graph is thereby a down-sampled version of the directed graph;

a first complete set of tensors used for executing the simplified version of the directed graph has a rank; and

a second complete set of tensors used for executing the directed graph has the rank.

7 . The computer-implemented method from claim 6 , wherein:

the down-sampling of the directed graph utilizes polynomial interpolation.

8 . The computer-implemented method from claim 4 , wherein:

the deriving of the simplified version of the directed graph includes replacing a set of original values of the set of weights with a set of replacement values; and

the simplified version of the directed graph has a same number of layers as the directed graph.

9 . The computer-implemented method from claim 8 , wherein the replacing comprises one of:

reducing a number of bits used to represent the set of original values to obtain the set of replacement values; and

calculating the set of replacement values using a set of exponents of the set of original values.

10 . The computer-implemented method from claim 4 , wherein:

the collection of execution data includes a set of execution data values;

the set of execution data values and the set of vertices have uniquely corresponding elements;

each uniquely corresponding vertex in the set of vertices produces a contribution to the inference tensor in response to the pilot input tensor; and

each execution data value in the set of execution data values is proportional in magnitude to the contribution to the inference tensor of each uniquely corresponding vertex in the set of vertices.

11 . The computer-implemented method from claim 4 , further comprising:

storing the execution data in a distributed set of memory locations;

obtaining, from a memory location in the distributed set of memory locations using a single address, both: (i) a subset of execution data from the execution data; and (ii) a weight tensor from the set of weights; and

wherein the conditioning of the execution of the directed graph is conducted in real time using the execution data and the set of weights.

12 . The computer-implemented method from claim 4 , further comprising:

generating a markup of the directed graph using the collection of execution data;

storing the markup in a distributed set of memory locations; and

conditioning an update of the set of weights using the markup.

13 . The computer-implemented method from claim 4 , further comprising:

generating a markup of the directed graph using the collection of execution data;

wherein the markup identifies a priority value for a weight tensor; and

wherein conditioning of the execution of the directed graph uses the markup.

14 . The computer-implemented method from claim 13 , further comprising:

storing the markup in a distributed set of memory locations; and

obtaining the priority value and the weight tensor from a memory location in the distributed set of memory locations using a single address.

15 . The computer-implemented method from claim 13 , further comprising:

storing the markup at a single memory location;

wherein the conditioning of the execution of the directed graph further comprises:

obtaining the markup from the single memory location;

obtaining a first subset of the set of weights from memory; and

wherein the first subset is selected using the markup.

16 . The computer-implemented method from claim 13 , wherein the conditioning of the execution of the directed graph further comprises:

reducing an accuracy of a computation using the weight tensor based on the priority value.

17 . The computer-implemented method from claim 13 , wherein the conditioning of the execution of the directed graph further comprises:

obtaining a first subset of weights from the set of weights from memory;

replacing a set of original values of a second subset of the set of weights with a set of replacement values; and

wherein the first subset of weights is selected using the markup.

18 . The computer-implemented method from claim 17 , wherein:

the deriving of the simplified version of the directed graph includes replacing the set of original values of the set of weights with the set of replacement values.

19 . A system for executing a directed graph comprising:

a means for deriving a simplified version of the directed graph;

a means for applying a pilot input tensor to the simplified version of the directed graph;

a means for obtaining a collection of execution data during the application of the pilot input tensor to the simplified version of the directed graph;

a means for applying a live input tensor to the directed graph;

a means for conditioning the execution of the directed graph, during the application of the live input tensor to the directed graph, using the collection of execution data; and

a means for obtaining an output tensor from the conditional execution of the directed graph.

20 . The system from claim 19 , further comprising:

a means for storing the execution data in memory as stored execution data; and

a means for priming the directed graph for the conditional execution, prior to the conditional execution of the directed graph, using the stored execution data.

21 . The system from claim 19 , further comprising:

a means for generating a markup of the directed graph using the collection of execution data;

wherein the markup identifies a priority value for a weight tensor; and

wherein conditioning of the execution of the directed graph uses the markup.

22 . The system from claim 21 , further comprising:

a means for storing the markup in a distributed set of memory locations; and

a means for obtaining the priority value and the weight tensor from a memory location in the distributed set of memory locations using a single address.

23 . The system from claim 19 , further comprising:

a means for generating a markup of the directed graph using the collection of execution data;

a means for storing the markup in a distributed set of memory locations; and

a means for conditioning an update of the direct graph using the markup.

24 . A computer-implemented method for generating an inference from a neural network, in which each step is conducted by a processor, comprising:

deriving a simplified version of the neural network;

applying a first input to the simplified version of the neural network;

obtaining a collection of execution data during the application of the first input to the neural network;

applying a second input to the neural network;

conditioning the computation of the neural network, during the application of the second input to the neural network; and

obtaining an inference from the conditional computation of the neural network;

wherein the conditional computation of the neural network is conditioned using the execution data; and

the conditional computation of the neural network is less computationally intensive than a non-conditional computation of the neural network using the second input.

25 . The computer-implemented method from claim 24 , wherein:

the first input and the second input are not identical; and

the first input and the second input are stochastically dependent.

26 . The computer-implemented method from claim 24 , further comprising:

storing the execution data in memory as stored execution data; and

priming the neural network for the conditional computation, prior to the conditional computation of the neural network, using the stored execution data.

27 . The computer-implemented method from claim 24 , wherein:

the deriving of the simplified version of the neural network includes down-sampling a set of weights of the neural network by a sampling factor.

28 . The computer-implemented method from claim 24 , wherein:

the deriving of the simplified version of the neural network includes replacing a set of weight values of the neural network with a set of replacement values.

29 . The computer-implemented method from claim 24 , further comprising:

generating a markup of the neural network using the collection of execution data;

wherein the markup identifies a priority value for a weight in the neural network; and

wherein the conditional computation uses the markup.

30 . The computer-implemented method from claim 29 , wherein:

the conditional computation of the neural network includes reducing an accuracy of a computation using the weight based on the priority value.

Assignments (3)
CHANGE OF NAME Recorded Feb 23, 2025
From: TENSTORRENT INC.
To: TENSTORRENT AI INC.
Reel/Frame 070298/0922 →
CHANGE OF NAME Recorded Feb 23, 2025
From: TENSTORRENT AI INC.
To: TENSTORRENT AI ULC
Reel/Frame 070298/0944 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 23, 2018
From: BAJIC, LJUBISA; TRAJKOVIC, MILOS; HAMER, IVAN
To: TENSTORRENT INC.
Reel/Frame 045608/0946 →