IP Library Granted Patent US 12,050,913
Granted Patent B2
US 12,050,913 · App. 17/080,433 · Granted Jul 30, 2024

Processing core with meta data actuated conditional graph execution

Inventors: Ljubisa Bajic (Toronto, CA); Milos Trajkovic (Toronto, CA); Ivan Hamer (Toronto, CA)
Assignee: Tenstorrent Inc.
G06F9/30072G06F9/3001G06F9/4494G06N3/04G06N3/045G06N3/063G06N3/08
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,050,913
App. No.
17/080,433
Granted
Jul 30, 2024
Kind
B2
Abstract

A processing core for the efficient execution of a directed graph is disclosed. The processing core includes a memory and a first and a second data tile stored in the memory. The first and second data tiles include a first and a second set of data elements stored contiguously in the memory. The processing core also includes metadata relationally stored with the first data tile in the memory. The processing core also includes an execution engine, a control unit, and an instruction. Execution of the instruction uses the execution engine, a first data element in the first set of data elements, and a second data element in the second set of data elements. The control unit conditions execution of the instruction using the metadata. A standard execution of the instruction generates a standard output. A conditional execution of the instruction operation generates a conditionally executed output.

Claims (97)

1. A processing core comprising:

a memory;

a first data tile stored in the memory, wherein the first data tile includes a first set of data elements from a directed graph, and wherein the first data tile is a first tensor storage container;

metadata: (i) relationally stored in a header of the first data tile in the memory; and (ii) generated in a prior execution of the directed graph or a prior simplified execution of the directed graph;

a second data tile stored in the memory, wherein the second data tile includes a second set of data elements, and wherein the second data tile is a second tensor storage container;

an arithmetic logic unit;

an instruction, wherein execution of the instruction uses: (i) the arithmetic logic unit; (ii) a first data element in the first set of data elements; and (iii) a second data element in the second set of data elements;

a control unit that conditions execution of the instruction using the metadata;

wherein a standard execution of the instruction, using the arithmetic logic unit, generates a standard output;

wherein a conditional execution of the instruction, using the arithmetic logic unit, generates a conditionally executed output; and

wherein the conditional execution of the instruction is a replacement of the standard output with a fixed value.

2. The processing core of claim 1 , further comprising:

runtime hardware that updates the metadata based on the execution of the instruction.

3. The processing core of claim 1 , further comprising:

second metadata relationally stored in a second header of the second data tile;

wherein the control unit conditions execution of the instruction using the metadata and the second metadata.

4. The processing core of claim 1 , wherein:

the instruction is part of a standard instruction sequence for the directed graph; and

the metadata is generated during an execution of the standard instruction sequence by the processing core.

5. The processing core of claim 1 , wherein:

the first set of data elements and the second set of data elements are both directed graph data for the execution of a neural network; and

the first and second data tiles are both smaller than a layer of the neural network and larger than a single neuron's weight value.

6. The processing core of claim 1 , wherein:

the instruction is one of a matrix multiplication and a convolution.

7. The processing core of claim 1 , wherein:

the control unit conditions execution of the instruction using the metadata in that the control unit conducts an analysis of the metadata to condition the execution of the instruction.

8. The processing core of claim 1 , wherein:

the control unit conditions execution of the instruction using the metadata in that the control unit injects the metadata into a dataflow of the execution of the instruction.

9. The processing core of claim 1 , further comprising:

a software controller that sets a data size of the first data tile.

10. The processing core of claim 1 , wherein:

the metadata includes one of a power value, a mean and variance, and an approximate spectrum of the first set of data elements.

11. The processing core of claim 1 , wherein:

the metadata is an approximation of the first set of data elements.

12. A processing core comprising:

a memory;

a first data tile stored in the memory, wherein the first data tile includes a first set of data elements from a directed graph, and wherein the first data tile is a first tensor storage container;

first metadata: (i) relationally stored with the first data tile in the memory; and (ii) generated in a prior execution of the directed graph or a prior simplified execution of the directed graph;

a second data tile stored in the memory, wherein the second data tile includes a second set of data elements, and wherein the second data tile is a second tensor storage container;

second metadata relationally stored with the second data tile;

an arithmetic logic unit;

an instruction, wherein execution of the instruction uses: (i) the arithmetic logic unit; (ii) a first data element in the first set of data elements; and (iii) a second data element in the second set of data elements;

a control unit that conditions execution of the instruction using the first metadata and the second metadata;

wherein a standard execution of the instruction, using the arithmetic logic unit, generates a standard output;

wherein a conditional execution of the instruction, using the arithmetic logic unit, generates a conditionally executed output; and

wherein the conditional execution of the instruction is less computationally intensive than the standard execution of the instruction.

13. The processing core of claim 12 , further comprising:

runtime hardware that updates the first metadata based on the execution of the instruction.

14. The processing core of claim 12 , wherein:

the instruction is part of a standard instruction sequence for the directed graph; and

the first metadata is generated during an execution of the standard instruction sequence by the processing core.

15. The processing core of claim 12 , wherein:

the first set of data elements and the second set of data elements are both directed graph data for the execution of a neural network; and

the first and second data tiles are both smaller than a layer of the neural network and larger than a single neuron's weight value.

16. The processing core of claim 12 , wherein:

the control unit conditions execution of the instruction using the first metadata and the second metadata in that the control unit conducts an analysis of the first metadata and the second metadata to condition the execution of the instruction.

17. The processing core of claim 12 , wherein:

the control unit conditions execution of the instruction using the first metadata and the second metadata in that the control unit injects the metadata into a dataflow of the execution of the instruction.

18. The processing core of claim 12 , wherein:

the instruction is one of a matrix multiplication and a convolution.

19. The processing core of claim 12 , further comprising:

a software controller that sets a data size of the first data tile.

20. The processing core of claim 12 , wherein:

the first metadata includes one of a power value, a mean and variance, and an approximate spectrum of the first set of data elements.

21. The processing core of claim 12 , wherein:

the first metadata is an approximation of the first set of data elements.

22. A processing core comprising:

a memory;

a first data tile stored in the memory, wherein the first data tile includes a first set of data elements from a directed graph, and wherein the first data tile is a first tensor storage container;

metadata: (i) relationally stored with the first data tile in the memory; and (ii) generated in a prior execution of the directed graph or a prior simplified execution of the directed graph;

a second data tile stored in the memory, wherein the second data tile includes a second set of data elements, and wherein the second data tile is a second tensor storage container;

an arithmetic logic unit;

an instruction, wherein execution of the instruction uses: (i) the arithmetic logic unit; (ii) a first data element in the first set of data elements; and (iii) a second data element in the second set of data elements;

a control unit that: (i) conditions execution of the instruction using the metadata; and (ii) updates the metadata based on the execution of the instruction;

wherein a standard execution of the instruction, using the arithmetic logic unit, generates a standard output;

wherein a conditional execution of the instruction, using the arithmetic logic unit, generates a conditionally executed output; and

wherein the conditional execution of the instruction is less computationally intensive than the standard execution of the instruction.

23. The processing core of claim 22 , further comprising:

runtime hardware that updates the metadata based on the execution of the instruction.

24. The processing core of claim 22 , wherein:

the instruction is part of a standard instruction sequence for the directed graph; and

the metadata is generated during an execution of the standard instruction sequence by the processing core.

25. The processing core of claim 22 , wherein:

the first set of data elements and the second set of data elements are both directed graph data for the execution of a neural network; and

the first and second data tiles are both smaller than a layer of the neural network and larger than a single neuron's weight value.

26. The processing core of claim 22 , wherein:

the control unit conditions execution of the instruction using the metadata in that the control unit conducts an analysis of the metadata to condition the execution of the instruction.

27. The processing core of claim 22 , wherein:

the control unit conditions execution of the instruction using the metadata in that the control unit injects the metadata into a dataflow of the execution of the instruction.

28. The processing core of claim 22 , wherein:

the instruction is one of a matrix multiplication and a convolution.

29. The processing core of claim 22 , further comprising:

a software controller that sets a data size of the first data tile.

30. The processing core of claim 22 , wherein:

the metadata includes one of a power value, a mean and variance, and an approximate spectrum of the first set of data elements.

31. The processing core of claim 22 , wherein:

the metadata is an approximation of the first set of data elements.

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 Oct 26, 2020
From: BAJIC, LJUBISA; TRAJKOVIC, MILOS; HAMER, IVAN
To: TENSTORRENT INC.
Reel/Frame 054169/0328 →
Continuity (3)
Continuation 15963315 · Apr 26, 2018
Provisional Application 62491767 · Apr 28, 2017
Related Publication 20210042118A1 · Feb 11, 2021