IP Library Granted Patent US 12,693,875
Granted Patent B2
US 12,693,875 · App. 17/705,867 · Granted Jul 28, 2026

Processing core with operation suppression based on contribution estimate

Inventors: Ljubisa Bajic (Toronto, CA); Milos Trajkovic (Toronto, CA); Ivan Hamer (Toronto, CA); Syed Gilani (Markham, CA)
Assignee: Tenstorrent AI ULC
G06F9/4494G06F7/50G06F7/523G06F15/76G06N20/00
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,693,875
App. No.
17/705,867
Filed
Mar 28, 2022
Granted
Jul 28, 2026
Kind
B2
Art Unit
2151
USPC
708/207
Abstract

Processing cores with the ability to suppress operations based on a contribution estimate for those operations for purposes of increasing the overall performance of the core are disclosed. Associated methods that can be conducted by such processing cores are also disclosed. One such method includes generating a reference value for a composite computation. A complete execution of the composite computation generates a precise output and requires execution of a set of component computations. The method also includes generating a component computation approximation. The method also includes evaluating the component computation approximation with the reference value. The method also includes executing a partial execution of the composite computation using the component computation approximation to produce an estimated output. The method also includes suppressing the component computation, while executing the partial execution, based on the evaluation of the component computation approximation with the reference value.

Claims (126)

1 . A computer-implemented method, comprising:

generating a contribution estimate for a component computation using an operand for the component computation, wherein the component computation is part of a composite computation; and

suppressing, based on the contribution estimate and during execution of a partial execution of the composite computation, the component computation;

wherein the suppressing is performed by a suppression logic block and comprises dropping the component computation from the composite computation by selectively providing operands from a set of operands to a math unit.

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

determining, based on the contribution estimate, that suppressing the component computation results in a decrease in computational resources consumed attributable to the partial execution of the composite computation that outweighs a decrease in accuracy of an output from the partial execution of the composite computation.

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

the partial execution of the composite computation generates a first result for the composite computation and requires a first amount of computational resources;

a complete execution of the composite computation generates a second result for the composite computation and requires a second amount of computational resources;

the first result is not equal to the second result; and

the first amount is less than the second amount.

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

the contribution estimate for the component computation is determined using a component computation approximation.

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

the component computation approximation provides an estimate of an effect of the component computation on the composite computation.

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

generating a set of contribution estimates for a set of component computations, wherein the set of component computations include the component computation and are a part of the composite computation;

wherein: the set of component computations use a set of filters in a layer of a neural network; and the component computations in the set of component computations are selectively suppressed based on the set of contribution estimates and during the execution of the partial execution of the composite computation.

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

the contribution estimate for the component computation is determined using a component computation approximation;

the component computation approximation is generated during a first execution of the composite computation and stored in a memory;

the partial execution of the composite computation is a second execution of the composite computation; and

the second execution is subsequent to the first execution.

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

the component computation uses a filter from a layer of a neural network;

the neural network is a convolutional neural network; and

the operand is an input to the layer of the neural network.

9 . A computer-implemented method, comprising:

generating a degree of relevance for a component computation using an operand for the component computation, wherein the component computation is part of a composite computation; and

suppressing, based on the degree of relevance and during execution of a partial execution of the composite computation, the component computation;

wherein the suppressing is performed by a suppression logic block and comprises dropping the component computation from the composite computation by selectively providing operands from a set of operands to a math unit.

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

determining, based on the degree of relevance, that suppressing the component computation results in a decrease in computational resources consumed attributable to the partial execution of the composite computation that outweighs a decrease in accuracy of an output from the partial execution of the composite computation.

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

the partial execution of the composite computation generates a first result for the composite computation and requires a first amount of computational resources;

a complete execution of the composite computation generates a second result for the composite computation and requires a second amount of computational resources;

the first result is not equal to the second result; and

the first amount is less than the second amount.

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

the degree of relevance for the component computation is determined using a component computation approximation.

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

the component computation approximation provides an estimate of an effect of the component computation on the composite computation.

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

generating a set of degrees of relevance for a set of component computations, wherein the set of component computations includes the component computation and are a part of the composite computation;

wherein the set of component computations use a set of filters in a layer of a neural network; and

wherein the component computations in the set of component computations are selectively suppressed based on the set of degrees of relevance and during the execution of the partial execution of the composite computation.

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

the degree of relevance for the component computation is determined using a component computation approximation;

the component computation approximation is generated during a first execution of the composite computation and stored in a memory;

the partial execution of the composite computation is a second execution of the composite computation; and

the second execution is subsequent to the first execution.

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

the component computation uses a filter from a layer of a neural network;

the neural network is a convolutional neural network; and

the operand is an input to the layer of the neural network.

17 . A processing core comprising:

a register file providing a set of operands for a composite computation, wherein the composite computation includes a component computation;

a set of math units; and

a suppression logic block programmed to:

generate a degree of relevance for the component computation using an operand for the component computation from the set of operands; and

suppress, based on the degree of relevance and during a partial execution of the composite computation, the component computation;

wherein the suppression logic block is programmed to suppress the component computation by selectively providing operands from the set of operands from the register file to the set of math units.

18 . The processing core of claim 17 , wherein:

the component computation uses a filter from a layer of a neural network;

the neural network is a convolutional neural network; and

the operand is an input to the layer of the neural network.

19 . The processing core of claim 17 , wherein:

the component computation uses a filter from a layer of a neural network;

the neural network is a convolutional neural network; and

the operand is a filter value of the filter.

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

the composite computation is a sum-of-products computation; and

the component computation is a multiplication.

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

generating the contribution estimate for the component computation using the operand comprises detecting that the operand is zero.

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

providing other operands from the set of operands to the math unit to complete the partial execution of the composite computation.

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

the suppression logic block selectively provides the operands from the set of operands to the math unit from a register file.

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

the set of operands are from one input tensor in a pair of input tensors that are used in the composite computation; and

the method further comprises generating a contribution estimate for every component computation in the composite computation.

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

the math unit is a multiplier;

the operand is a multiplicand; and

the suppression logic block prevents less meaningful computations from being passed to the multiplier.

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

the suppression logic block operates over multiple clock cycles to assure that all component computations in the composite computation that rise to a degree of relevance are executed.

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

the composite computation is a sum-of-products computation; and

the component computation is a multiplication.

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

generating the degree of relevance for the component computation using the operand comprises detecting that the operand is zero.

29 . The computer-implemented method of claim 9 , further comprising:

providing other operands from the set of operands to the math unit to complete the partial execution of the composite computation.

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

the suppression logic block selectively provides the operands from the set of operands to the math unit from a register file.

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

the set of operands are from one input tensor in a pair of input tensors that are used in the composite computation; and

the method further comprises generating a degree of relevance for every component computation in the composite computation.

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

the math unit is a multiplier;

the operand is a multiplicand; and

the suppression logic block prevents less meaningful computations from being passed to the multiplier.

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

the suppression logic block operates over multiple clock cycles to assure that all component computations in the composite computation that rise to a second degree of relevance are executed.

34 . The processing core of claim 17 , wherein:

the composite computation is a sum-of-products computation; and

the component computation is a multiplication.

35 . The processing core of claim 17 , wherein:

generating the degree of relevance for the component computation using the operand comprises detecting that the operand is zero.

36 . The processing core of claim 17 , wherein the suppression logic block is further programmed to:

provide other operands from the set of operands to the set of math units to complete the partial execution of the composite computation.

37 . The processing core of claim 17 , wherein:

the suppression logic block selectively provides the operands from the set of operands to the set of math units from the register file.

38 . The processing core of claim 17 , wherein:

the set of operands are from one input tensor in a pair of input tensors that are used in the composite computation; and

the suppression logic block is further programmed to generate a degree of relevance for every component computation in the composite computation.

39 . The processing core of claim 17 , wherein:

the suppression logic block is programmed to selectively provide the operands from the set of operands to the set of math units;

the set of math units includes at least one multiplier;

the operand is a multiplicand; and

the suppression logic block is programmed to prevent less meaningful computations from being passed to the at least one multiplier.

40 . The processing core of claim 17 , wherein:

the suppression logic block is programmed to selectively provide the operands from the set of operands to the set of math units; and

the suppression logic block is further programmed to operate over multiple clock cycles to assure that all component computations in the composite computation that rise to a second degree of relevance are executed.

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 Mar 28, 2022
From: BAJIC, LJUBISA; TRAJKOVIC, MILOS; HAMER, IVAN; GILANI, SYED
To: TENSTORRENT INC.
Reel/Frame 059415/0428 →
Continuity (5)
Continuation 16788069 · Feb 11, 2020
Continuation 16416749 · May 20, 2019
Continuation 15975930 · May 10, 2018
Provisional Application 62505775 · May 12, 2017
Related Publication 20220222086A1 · Jul 14, 2022
References Cited (47)
US 5053987A · Genusov · 1991 [cited by applicant]
US 5128890A · Girardeau, Jr. · 1992 [cited by applicant]
US 6366943B1 · Clinton · 2002 [cited by applicant]
US 6397238B2 · Oberman · 2002 [cited by applicant]
US 7467177B2 · Simkins · 2008 [cited by applicant]
US 9633306B2 · Liu et al. · 2017 [cited by applicant]
US 10372416B2 · Fais et al. · 2019 [cited by applicant]
US 20030055860A1 · Giacalone · 2003 [cited by applicant]
US 20030055861A1 · Lai · 2003 [cited by applicant]
US 20030095603A1 · Lan · 2003 [cited by applicant]
US 20060230093A1 · New · 2006 [cited by applicant]
US 20060230201A1 · Fromherz et al. · 2006 [cited by applicant]
US 20160358070A1 · Brothers et al. · 2016 [cited by applicant]
CN 102067108A · 2011 [cited by applicant]
CN 103999039A · 2014 [cited by applicant]
CN 106250098A · 2016 [cited by applicant]
CN 107153522A · 2017 [cited by applicant]
EP 1313325A2 · 2003 [cited by applicant]
JP 3046069B2 · 2000 [cited by applicant]
SU 1619254A1 · 1991 [cited by applicant]
E. Bengio, et al., Conditional Computation in Neural Networks for Faster Models, ICLR 2016. [cited by applicant]
Extended European Search Report dated Dec. 17, 2020 from European Application No. 18798262.4, 9 pages. [cited by applicant]
International Preliminary Report on Patentability dated Nov. 21, 2019 from International Application No. PCT/IB2018/053301 filed May 11, 2018, 5 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, 2016 21st Asia and South Pacific, Jan. 25-28, 2016. [cited by applicant]
Nonfinal Office Action dated Jan. 4, 2019 from U.S. Appl. No. 15/975,930, 5 pages. [cited by applicant]
Nonfinal Office Action dated Jul. 12, 2019 from U.S. Appl. No. 16/416,749, 12 pages. [cited by applicant]
Nonfinal Office Action dated Jul. 14, 2020 from U.S. Appl. No. 16/788,069, 14 pages. [cited by applicant]
Nonfinal Office Action dated Mar. 26, 2021 from U.S. Appl. No. 16/788,069, 10 pages. [cited by applicant]
Nonfinal Office Action dated Sep. 1, 2021 from U.S. Appl. No. 16/788,069, 15 pages. [cited by applicant]
Notice of Allowance dated Feb. 6, 2019 from U.S. Appl. No. 15/975,930, 12 pages. [cited by applicant]
Notice of Allowance dated Oct. 25, 2019 from U.S. Appl. No. 16/416,749, 12 pages. [cited by applicant]
Notice of Allowance dated Dec. 14, 2020 from U.S. Appl. No. 16/788,069, 16 pages. [cited by applicant]
Notice of Allowance dated Mar. 1, 2022 from U.S. Appl. No. 16/788,069, 12 pages. [cited by applicant]
O. Nomura, et al., A Convolutional Neural Network VLSI Architecture Using Sorting Model for Reducing Multiply- and-Accumulate Operations, 2005 International Conference on Natural Computation, Advances in Natural Computa… [cited by applicant]
O. Nomura, et al., A Convolutional Neural Network VLSI Architecture Using Thresholding and Weight Decomposition, 2004 International Conference on Knowledge-Based and Intelligent Information and Engineering Systems, pp. … [cited by applicant]
Paul E. Utgoff. Perceptron trees: A case study in hybrid concept representations. In Proceedings of the 7th National Conference on Artificial Intelligence. St. Paul, MN, Aug. 21-26, pp. 601-606, 1988. [cited by applicant]
PCT International Search Report_PCT/IB2018/053301_Sep. 4, 2018. [cited by applicant]
Sparsh Mittal, “A Survey of Techniques for Approximate Computing”, ACM Computing Surveys, vol. 48, No. 4, Mar. 18, 2016, pp. 1-33. [cited by applicant]
Thomas Yeh, et al., “The Art of Deception”, 40th Annual IEEE/ACM International Symposium on Microarchitecture, Dec. 26, 2007, pp. 394-406. [cited by applicant]
Y. Huan, et al., A Multiplication Reduction Technique with Near-Zero Approximation for Embedded Learning in IoT Devices, 29th IEEE International System-on-Chip Conference, pp. 102-107, Sep. 2016. [cited by applicant]
Examination Report dated Jun. 18, 2025 from European Application No. 18798262.4, 8 pages. [cited by applicant]
English Translation of the First Office Action from the Chinese Application No. 202410607693.4 dated Feb. 26, 2025, 10 pages. [cited by applicant]
First Office Action from the Chinese Application No. 202410607693.4 dated Feb. 26, 2025, 7 pages. [cited by applicant]
T. Yeh et al. (2007). The Art of Deception: Adaptive Precision Reduction for Area Efficient Physics Acceleration. 40th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO 2007), 394-406. [cited by applicant]
First Office Action from CN Application No. 201880040941.4 dated Mar. 30, 2023, 7 pages. [cited by applicant]
Han, S. et al., (2016). EIE: Efficient Inference Engine on Compressed Deep Neural Network. 2016 ACM/IEEE 43rd Annual International Symposium on Computer Architecture (ISCA), 243-254. [cited by applicant]
Notice of Allowance dated Feb. 27, 2026 from Chinese Patent Application No. 202410607693.4, 4 pages. [cited by applicant]