IP Library Granted Patent US 12,639,397
Granted Patent B2
US 12,639,397 · App. 17/589,446 · Granted May 26, 2026

Runtime predictors for computation reduction in dependent computations

Inventors: Ljubisa Bajic (Toronto, CA); Davor Capalija (Toronto, CA); Yu Ting Chen (Toronto, CA); Andrew Grebenisan (Oshawa, CA); Hassan Farooq (Courtice, CA); Akhmed Rakhmati (Ajaz, CA); Stephen Chin (Toronto, CA); Vladimir Blagojevic (Banjaluka, BA); Almeet Bhullar (Brampton, CA); Jasmina Vasiljevic (Toronto, CA)
Assignee: Tenstorrent AI ULC
G06F17/16G06N3/0464G06N3/044G06N3/0455G06N3/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,639,397
App. No.
17/589,446
Granted
May 26, 2026
Kind
B2
Abstract

Methods and systems relating to reducing the number of computations required to execute an artificial neural network (ANN) are disclosed herein. A disclosed method includes: generating a summary of a set of data which is an input for a composite computation; executing a simplified composite computation, using the summary, to produce a simplified output; and executing a second simplified composite computation, using the simplified output, to produce a second simplified output which is a predictor. The second simplified composite computation is a simplification of a second composite computation. The composite computations are both part of a complex computation for the directed graph. The second composite computation depends on the composite computation in the directed graph. The method further includes suppressing, while executing the complex computation, a set of component computations from the second composite computation. The set of component computations are selected for suppression based on the predictor.

Claims (147)

1 . A computer-implemented method, conducted during an execution of a neural network, comprising:

generating a first summary of a first set of data, wherein the first set of data is an input for a first composite computation;

executing a first simplified composite computation, using the first summary, to produce a first simplified output, wherein the first simplified composite computation is a simplification of the first composite computation;

executing a second simplified composite computation, using the first simplified output, to produce a second simplified output, wherein the second simplified output is a predictor, wherein the second simplified composite computation is a simplification of a second composite computation; wherein the first composite computation and the second composite computation are both part of a complex computation for the neural network; and wherein the second composite computation depends on the first composite computation in the neural network; and

suppressing, while executing the complex computation, a set of component computations from the second composite computation, wherein the set of component computations from the second composite computation are selected for suppression based on the predictor;

wherein the execution of the neural network uses a processing pipeline; and

wherein the suppressing of the set of component computations uses logic and registers incorporated into the processing pipeline that suppress the set of component computations using control data provided orthogonally to a main computational flow of the processing pipeline.

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

generating, a third summary of a third set of data, wherein the third set of data is an input for a third composite computation; and

executing a third simplified composite computation, using the third summary, to produce a third simplified output, wherein the third simplified composite computation is a simplification of the third composite computation;

wherein executing the second simplified composite computation uses the third simplified output;

wherein the first composite computation, the third composite computation, and the second composite computation are all part of the complex computation for the neural network; and

wherein the second composite computation depends on the third composite computation in the neural network.

3 . The computer-implemented method of claim 2 , wherein:

the first composite computation is a first matrix multiplication;

the third composite computation is a third matrix multiplication;

the second composite computation is a second matrix multiplication; and

the second composite computation depends on the first composite computation and the third composite computation because a first output of the first composite computation and a third output of the third composite computation are both inputs to the second composite computation.

4 . The computer-implemented method of claim 3 , wherein:

the first matrix multiplication is a multiplication of a first set of neural network data and a first set of execution data to produce a first output matrix;

the third matrix multiplication is a multiplication of a third set of neural network data and a third set of execution data to produce a third output matrix; and

the second matrix multiplication is a multiplication of the first output matrix and the third output matrix.

5 . The computer-implemented method of claim 2 , wherein:

the generating of the first summary of the first set of data uses an average pooling operation on the first set of data; and

the generating of the third summary of the third set of data uses the average pooling operation on the third set of data.

6 . The computer-implemented method of claim 2 , wherein:

the first summary is less than or equal to one quarter of a size of the first set of data; and

the third summary is less than or equal to one quarter of a size of the third set of data.

7 . The computer-implemented method of claim 2 , wherein:

the neural network is an attention network;

the first set of data is one of a right key matrix and a left key matrix;

the third set of data is one of a right query matrix and a left query matrix;

the first composite computation is a key matrix multiplication; and

the third composite computation is a query matrix multiplication.

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

generating a second summary of a second set of data, wherein the second set of data is a third input for the first composite computation, and wherein executing the first simplified composite computation uses the second summary; and

generating a fourth summary of a fourth set of data, wherein the fourth set of data is a third input for the third composite computation, and wherein executing the third simplified composite computation uses the fourth summary.

9 . The computer-implemented method of claim 8 , wherein:

the generating of the first summary of the first set of data uses an average pooling operation on the first set of data;

the generating of the third summary of the third set of data uses the average pooling operation on the third set of data;

the generating of the second summary of the second set of data uses a second average pooling operation on the second set of data; and

the generating of the fourth summary of the third set of data uses the second average pooling operation on the fourth set of data.

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

executing a fourth simplified composite computation, using the second simplified output, to produce a fourth simplified output, wherein the fourth simplified output is a third predictor, wherein the fourth simplified composite computation is a simplification of a fourth composite computation, wherein the fourth composite computation is part of the complex computation for the neural network, and wherein the fourth composite computation depends on the second composite computation in the neural network; and

suppressing, while conditionally executing the complex computation, a set of component computations from the fourth composite computation, wherein the set of component computations from the fourth composite computation are selected for suppression based on the third predictor.

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

suppressing, while executing the complex computation, the first composite computation, wherein the first composite computation is selected for suppression based on the predictor and the third predictor.

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

suppressing, while executing the complex computation, a set of component computations from the first composite computation, wherein the set of component computations from the first composite computation are selected for suppression based on the predictor.

13 . The computer-implemented method of claim 1 , wherein:

suppressing, while executing the complex computation, the first composite computation, wherein the first composite computation is selected for suppression based on the predictor.

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

analyzing the predictor to find a set of salient portions;

wherein the set of component computations from the second composite computation are selected based on a distribution of the set of salient portions.

15 . The computer-implemented method of claim 14 , wherein:

the analyzing of the predictor uses a top-k operation on a set of portions of the predictor to find the set of salient portions.

16 . The computer-implemented method of claim 15 , wherein:

the first composite computation is a first matrix multiplication;

the set of salient portions are in one half of the predictor; and

the computer-implemented method further comprises suppressing, while conditionally executing the complex computation, at least half of the component computations from the first composite computation, wherein the set of component computations from the first composite computation are selected for suppression based on the predictor.

17 . The computer-implemented method of claim 1 , wherein:

the neural network is an attention network;

the first set of data is one of a key matrix and a query matrix; and

the second simplified composite computation uses a simplified values matrix.

18 . A processing core comprising:

a processor;

a processing pipeline;

logic and registers incorporated into the processing pipeline; and

one or more computer readable media storing instructions which, when executed by the processor, cause the processing core to:

generate a first summary of a first set of data, wherein the first set of data is an input for a first composite computation;

execute a first simplified composite computation, using the first summary, to produce a first simplified output, wherein the first simplified composite computation is a simplification of the first composite computation;

execute a second simplified composite computation, using the first simplified output, to produce a second simplified output, wherein the second simplified output is a predictor, wherein the second simplified composite computation is a simplification of a second composite computation; wherein the first composite computation and the second composite computation are both part of a complex computation for a neural network; and wherein the second composite computation depends on the first composite computation in the neural network; and

suppress, while executing the complex computation, a set of component computations from the second composite computation, wherein the set of component computations from the second composite computation are selected for suppression based on the predictor;

wherein: (i) the execution of the neural network uses the processing pipeline; and (ii) the suppressing of the set of component computations uses the logic and registers incorporated into the processing pipeline to suppress the set of component computations using control data provided orthogonally to a main computational flow of the processing pipeline.

19 . A system comprising:

a means for generating a first summary of a first set of data, wherein the first set of data is an input for a first composite computation;

a means for executing a first simplified composite computation using the first summary to produce a first simplified output, wherein the first simplified composite computation is a simplification of the first composite computation;

a means for executing a second simplified composite computation, using the first simplified output, to produce a second simplified output, wherein the second simplified output is a predictor, wherein the second simplified composite computation is a simplification of a second composite computation; wherein the first composite computation and the second composite computation are all part of a complex computation for a neural network; and wherein the second composite computation depends on the first composite computation in the neural network; and

a means for suppressing, while executing the complex computation, a set of component computations from the second composite computation, wherein the set of component computations from the second composite computation are selected for suppression based on the predictor.

20 . The system of claim 19 , further comprising:

a means for generating a third summary of a third set of data, wherein the third set of data is an input for a third composite computation;

a means for executing a third simplified composite computation using the third summary to produce a third simplified output, wherein the third simplified composite computation is a simplification of the third composite computation;

wherein executing the second simplified composite computation uses the third simplified output;

wherein the first composite computation, the third composite computation, and the second composite computation are all part of the complex computation for the neural network; and

wherein the second composite computation depends on the third composite computation in the neural network.

21 . The system of claim 20 , wherein:

the first composite computation is a first matrix multiplication;

the third composite computation is a third matrix multiplication;

the second composite computation is a second matrix multiplication; and

the second composite computation depends on the first composite computation and the third composite computation because a first output of the first composite computation and a third output of the third composite computation are both inputs to the second composite computation.

22 . The system of claim 21 , wherein:

the first matrix multiplication is a multiplication of a first set of neural network data and a first set of execution data to produce a first output matrix;

the third matrix multiplication is a multiplication of a third set of neural network data and a third set of execution data to produce a third output matrix; and

the second matrix multiplication is a multiplication of the first output matrix and the third output matrix.

23 . The system of claim 20 , wherein:

generating the first summary of the first set of data uses an average pooling operation on the first set of data; and

generating the third summary of the third set of data uses the average pooling operation on the third set of data.

24 . The system of claim 20 , wherein:

the first summary is less than or equal to one quarter of a size of the first set of data; and

the third summary is less than or equal to one quarter of a size of the third set of data.

25 . The system of claim 20 , wherein:

the neural network is an attention network;

the first set of data is one of a right key matrix and a left key matrix;

the third set of data is one of a right query matrix and a left query matrix;

the first composite computation is a key matrix multiplication; and

the third composite computation is a query matrix multiplication.

26 . The system of claim 20 , further comprising:

a means for generating a second summary of a second set of data, wherein the second set of data is a third input for the first composite computation, and wherein executing the first simplified composite computation uses the second summary; and

a means for generating a fourth summary of a fourth set of data, wherein the fourth set of data is a third input for the third composite computation, and wherein executing the third simplified composite computation uses the fourth summary.

27 . The system of claim 26 , wherein:

the means for generating the first summary of the first set of data uses an average pooling operation on the first set of data;

the means for generating the third summary of the third set of data uses the average pooling operation on the third set of data;

the means for generating the second summary of the second set of data uses a third average pooling operation on the second set of data; and

the means for generating the fourth summary of the third set of data uses the third average pooling operation on the fourth set of data.

28 . The system of claim 20 , further comprising:

a means for executing a fourth simplified composite computation, using the second simplified output, to produce a fourth simplified output, wherein the fourth simplified output is a third predictor, wherein the fourth simplified composite computation is a simplification of a fourth composite computation, wherein the fourth composite computation is part of the complex computation for the neural network, and wherein the fourth composite computation depends on the second composite computation in the neural network; and

a means for suppressing, while conditionally executing the complex computation, a set of component computations from the fourth composite computation, wherein the set of component computations from the fourth composite computation are selected for suppression based on the third predictor.

29 . The system of claim 28 , further comprising:

a means for suppressing, while executing the complex computation, the first composite computation, wherein the first composite computation is selected for suppression based on the predictor and the third predictor.

30 . The system of claim 19 , further comprising:

a means for suppressing, while executing the complex computation, a set of component computations from the first composite computation, wherein the set of component computations from the first composite computation are selected for suppression based on the predictor.

31 . The system of claim 19 , further comprising:

a means for suppressing, while executing the complex computation, the first composite computation, wherein the first composite computation is selected for suppression based on the predictor.

32 . The system of claim 20 , further comprising:

a means for analyzing the predictor to find a set of salient portions;

wherein the set of component computations from the second composite computation are selected based on the set of salient portions.

33 . The system of claim 32 , wherein:

the first composite computation is a first matrix multiplication;

the set of salient portions are in one half of the predictor; and

the system further comprises means for suppressing, while conditionally executing the complex computation, at least half of the component computations from the first composite computation, wherein the set of component computations from the first composite computation are selected for suppression based on the predictor.

34 . The system of claim 19 , wherein:

the neural network is an attention network;

the first set of data is one of a key matrix and a query matrix; and

the second simplified composite computation uses a simplified values matrix.

35 . The computer-implemented method of claim 1 , wherein:

the execution of the neural network uses a set of processing cores; and

the suppressing of the set of component computations is conducted by a hierarchical level responsible for distributing computations among the set of processing cores.

36 . The processing core of claim 18 , wherein:

the execution of the neural network uses a set of processing cores, including the processing core; and

the suppressing of the set of component computations is conducted by a hierarchical level responsible for distributing computations among the set of processing cores.

37 . The system of claim 19 , wherein:

the execution of the neural network uses a processing pipeline; and

the means for suppressing includes logic and registers incorporated into the processing pipeline that suppress the set of component computations using control data provided orthogonally to a main computational flow of the processing pipeline.

38 . The system of claim 19 ,

wherein:

the execution of the neural network uses a set of processing cores; and

the means for suppressing includes a hierarchical level responsible for distributing computations among the processing cores.

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 Jan 31, 2022
From: BAJIC, LJUBISA; CAPALIJA, DAVOR; CHEN, YU TING; GREBENISAN, ANDREW; FAROOQ, HASSAN; RAKHMATI, AKHMED; CHIN, STEPHEN; BLAGOJEVIC, VLADIMIR; BHULLAR, ALMEET; VASILJEVIC, JASMINA
To: TENSTORRENT INC.
Reel/Frame 058835/0605 →
Continuity (1)
Related Publication 20230259579A1 · Aug 17, 2023
References Cited (37)
US 4972314A · Getzinger · 1990 [cited by applicant]
US 5021947A · Campbell · 1991 [cited by applicant]
US 5790858A · Vogel · 1998 [cited by applicant]
US 9633306B2 · Liu et al. · 2017 [cited by applicant]
US 20130063453A1 · Bloomfield · 2013 [cited by applicant]
US 20140075004A1 · Dusen · 2014 [cited by applicant]
US 20150106310A1 · Birdwell et al. · 2015 [cited by applicant]
US 20180046894A1 · Yao · 2018 [cited by applicant]
US 20180137406A1 · Howard et al. · 2018 [cited by applicant]
US 20180293486A1 · Bajic et al. · 2018 [cited by applicant]
US 20190138896A1 · Deng · 2019 [cited by applicant]
US 20200372361A1 · Bejnordi et al. · 2020 [cited by applicant]
US 20210056422A1 · Thakker et al. · 2021 [cited by applicant]
US 20210065052A1 · Muralidharan et al. · 2021 [cited by applicant]
US 20240185565A1 · Chen · 2024 [cited by examiner]
CN 105181898A · 2015 [cited by applicant]
CN 106250863A · 2016 [cited by applicant]
WO 2009142872A1 · 2009 [cited by applicant]
WO 2020256836A1 · 2020 [cited by applicant]
Directed Graphs, Simon Fraser University, 2009 found at chrome-extension://efaidnbmnnnibpcajpcglclefindmkaj/https://www.sfu.ca/˜mdevos/345/digraph (Year: 2009). [cited by examiner]
A. Vaswani et al., Attention is All You Need, 31st Conference on Neural Information Processing Systems (NIPS), 2017 (Year: 2017). [cited by examiner]
L. Bajic, et al., Tenstorrent Compute substrate for Software 2.0, 2020 IEEE Hot Chips 32 Symposium (HCS), 2020 (Year: 2020). [cited by examiner]
Extended European Search Report from EP Application No. 23154083.2 dated Jun. 27, 2023, 9 pages. [cited by applicant]
W. Xia, et al (2020). Fully Dynamic Inference With Deep Neural Networks. IEEE Transactions on Emerging Topics in Computing, 10, 962-972. [cited by applicant]
X. Wang, et al (2018). Skipnet: Learning dynamic routing in convolutional networks. In Proceedings of the European Conference on Computer Vision (ECCV) (pp. 409-424). [cited by applicant]
A. Davis, et al., “Low-Rank Approximations for Conditional Feedforward Computation in Deep Neural Networks”, Available at: arXiv:1312.4461v4, Jan. 24, 2018, (Accessed on: Mar. 23, 2018), 10 pages. [cited by applicant]
Almahairi et al., “Dynamic Capacity Networks”, Nov. 24, 2015, XP055479670, Retrieved from the Internet: URL: http://www.jmlr.org/proceedings/papers/v48/almahairi16.pdf, 10 pages. [cited by applicant]
Bengio et al., “Conditional Computation in Neural Networks for Faster Models”, School of Computer Science, McGill University, Montreal, Canada, arXiv:1511.06297v2 [cs.LG] Jan. 7, 2016, 12 pages. [cited by applicant]
Dong et al., “More is Less: A More Complicated Network with Less Inference Complexity”, Mar. 25, 2017, XP055758028, Retrieved from the Internet: URL:https://arxiv.org/pdf/1703.08651v1.pdf, 9 pages. [cited by applicant]
J. Zhu, et al., “LRADNN: High-Throughput and Energy-Efficient Deep Neural Network Accelerator using Low Rank Approximation,” Design Automation Conference (ASP-DAC), 2016 21st Asian and South Pacific, Jan. 25-28, 2016, 6… [cited by applicant]
M. Denil, et al., “Predicting Parameters in Deep Learning”, NIPS'13 Proceedings of the 26th International Conference on Neural Information Processing Systems—vol. 2, pp. 2148-2156, Dec. 5-10, 2013. [cited by applicant]
Mahmoudzadeh et al., “Evaluation of Interpolation Effects on Upsampling and Accuracy of Cost Functions-Based Optimized Automatic Image Registration”, Hindawi Publishing Corporation, International Journal of Biomedical I… [cited by applicant]
N. Shazeer, et al., “Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer”, Available at: arXiv:1701.06538v1, Jan. 23, 2017, (Accessed on: Mar. 23, 2018), 19 pages. [cited by applicant]
P. Judd, et al., “Reduced-Precision Strategies for Bounded Memory in Deep Neural Nets”, Available at: arXiv:1511.05236v4, Nov. 17, 2015, (Accessed on: Mar. 23, 2018), 12 pages. [cited by applicant]
P. Judd, et al., “Stripes: Bit-serial deep neural network computing”, Microarchitecture, 2016 49th Annual IEEE/ACM International Symposium, Oct. 15-19, 2016, 12 pages. [cited by applicant]
Y. Bengio, et al., “Estimating or Propagating Gradients Through Stochastic Neurons for Conditional Computation,” Available at: arXiv:1308.3432v1, Aug. 15, 2013, (Accessed on: Mar. 23, 2018), 12 pages. [cited by applicant]
P. Utgoff, “Perceptron Trees: A Case Study in Hybrid Concept Representations”, AAAI-88 Proceedings, 1988, 6 pages. [cited by applicant]