IP Library Granted Patent US 12,554,313
Granted Patent B2
US 12,554,313 · App. 18/049,887 · Granted Feb 17, 2026

Techniques for neural network execution utilizing memoization

Inventors: Georgios Keramidas (Patras, GR); Iakovos Stamoulis (Patras, GR)
Assignee: Think Silicon Research and Technology Single Member S.A.
G06F1/3275G06F9/3832G06F9/3885G06F12/0808G06F12/0813G06F12/0875G06F12/0877G06F17/16G06N3/10G06V10/454
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,554,313
App. No.
18/049,887
Granted
Feb 17, 2026
Kind
B2
Abstract

A system and method for reducing power consumption in processing artificial neural networks utilizes memoization techniques. The method includes receiving computer code representing a neural network model, the neural network model including an input layer having a first plurality of nodes, and an output layer having a second plurality of nodes; detecting in the computer code a cacheable block of instructions, the cacheable block of instructions including an input and an output, wherein the input and the output are local to the cacheable block of instructions; determining a first power consumption corresponding to retrieving a value from a value cache; determining a second power consumption corresponding to executing the cacheable block of instructions; and storing in the value cache an input value corresponding to the input and an output value corresponding to the output, in response to determining that the second power consumption is higher than the first power consumption.

Claims (52)

1 . A method for reducing power consumption in processing artificial neural networks utilizing memoization, comprising:

receiving computer code representing a neural network model, the neural network model including an input layer having a first plurality of nodes, and an output layer having a second plurality of nodes;

detecting in the computer code a cacheable block of instructions, the cacheable block of instructions including an input and an output, wherein the input and the output are local to the cacheable block of instructions, and wherein the cacheable block of instructions does not call another function for input outside of the cacheable block of instructions;

determining a first power consumption corresponding to retrieving a value from a value cache;

determining a second power consumption corresponding to executing the cacheable block of instructions; and

storing in the value cache an input value corresponding to the input and an output value corresponding to the output, in response to determining that the second power consumption is higher than the first power consumption.

2 . The method of claim 1 , further comprising:

determining a number of least significant bits (LSBs) of the input; and

storing in the value cache a first input value and a second input value, each with a respective output value, wherein the first input value and the second input value differ from each other by a number of LSBs equal to or less than the determined number of LSBs.

3 . The method of claim 2 , wherein the first input value and the second input value are stored in the value cache without the LSBs.

4 . The method of claim 1 , further comprising:

determining a number of LSBs of the output; and

storing in the value cache a first output value and a second output value, each with a respective input value, wherein the first output value and the second output value differ from each other by a number of LSBs equal to or less than the determined number of LSBs.

5 . The method of claim 4 , wherein the first output value and the second output value are stored in the value cache without the LSBs.

6 . The method of claim 1 , further comprising:

determining a frequency which an input value is received as an input to the cacheable block of instructions, and

storing in the value cache an input value corresponding to the input further in response to determining that the frequency is above a predetermined threshold.

7 . The method of claim 1 , further comprising:

evicting a value from the value cache.

8 . The method of claim 1 , wherein the cacheable block of instructions corresponds to a single layer of the neural network.

9 . The method of claim 1 , wherein the cacheable block of instructions corresponds to a first layer of the neural network and a second layer of the neural network, wherein the second layer is consecutive to the first layer.

10 . A non-transitory computer readable medium having stored thereon instructions for causing a processing circuitry to execute a process, the process comprising:

receiving computer code representing a neural network model, the neural network model including an input layer having a first plurality of nodes, and an output layer having a second plurality of nodes;

detecting in the computer code a cacheable block of instructions, the cacheable block of instructions including an input and an output, wherein the input and the output are local to the cacheable block of instructions, and wherein the cacheable block of instructions does not call another function for input outside of the cacheable block of instructions;

determining a first power consumption corresponding to retrieving a value from a value cache;

determining a second power consumption corresponding to executing the cacheable block of instructions; and

storing in the value cache an input value corresponding to the input and an output value corresponding to the output, in response to determining that the second power consumption is higher than the first power consumption.

11 . A system for reducing power consumption in processing artificial neural networks utilizing memoization, comprising:

a processing circuitry; and

a memory, the memory containing instructions that, when executed by the processing circuitry, configure the system to:

receive computer code representing a neural network model, the neural network model including an input layer having a first plurality of nodes, and an output layer having a second plurality of nodes;

detect in the computer code a cacheable block of instructions, the cacheable block of instructions including an input and an output, wherein the input and the output are local to the cacheable block of instructions, and wherein the cacheable block of instructions does not call another function for input outside of the cacheable block of instructions;

determine a first power consumption corresponding to retrieving a value from a value cache;

determine a second power consumption corresponding to executing the cacheable block of instructions; and

store in the value cache an input value corresponding to the input and an output value corresponding to the output, in response to determining that the second power consumption is higher than the first power consumption.

12 . The system of claim 11 , wherein the memory includes further instructions which when executed by the processing circuitry further configure the system to:

determine a number of least significant bits (LSBs) of the input; and

store in the value cache a first input value and a second input value, each with a respective output value, wherein the first input value and the second input value differ from each other by a number of LSBs equal to or less than the determined number of LSBs.

13 . The system of claim 12 , wherein the memory includes further instructions which when executed by the processing circuitry further configure the system to:

store the first input value and the second input value in the value cache without the LSBs.

14 . The system of claim 11 , wherein the memory includes further instructions which when executed by the processing circuitry further configure the system to:

determine a number of LSBs of the output; and

store in the value cache a first output value and a second output value, each with a respective input value, wherein the first output value and the second output value differ from each other by a number of LSBs equal to or less than the determined number of LSBs.

15 . The system of claim 14 , wherein the memory includes further instructions which when executed by the processing circuitry further configure the system to:

store the first output value and the second output value in the value cache without the LSBs.

16 . The system of claim 11 , wherein the memory includes further instructions which when executed by the processing circuitry further configure the system to:

determine a frequency which an input value is received as an input to the cacheable block of instructions, and;

store in the value cache an input value corresponding to the input further in response to determining that the frequency is above a predetermined threshold.

17 . The system of claim 11 , wherein the memory includes further instructions which when executed by the processing circuitry further configure the system to:

evict a value from the value cache.

18 . The system of claim 11 , wherein the cacheable block of instructions corresponds to a single layer of the neural network.

19 . The system of claim 11 , wherein the cacheable block of instructions corresponds to a first layer of the neural network and a second layer of the neural network, wherein the second layer is consecutive to the first layer.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2026
From: THINK SILICON SINGLE MEMBER P.C. AND APPLIED MATERIALS, INC.
To: QUALCOMM INCORPORATED
Reel/Frame 075735/0803 →
CHANGE OF NAME Recorded Mar 6, 2026
From: THINK SILICON RESEARCH AND TECHNOLOGY SINGLE MEMBER S.A.
To: THINK SILICON SINGLE MEMBER P.C.
Reel/Frame 075032/0035 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 26, 2022
From: KERAMIDAS, GEORGIOS; STAMOULIS, IAKOVOS
To: THINK SILICON RESEARCH AND TECHNOLOGY SINGLE MEMBER S.A.
Reel/Frame 061550/0087 →
Continuity (2)
Provisional Application 63278747 · Nov 12, 2021
Related Publication 20230134845A1 · May 4, 2023
References Cited (20)
US 8656378B2 · Gounares et al. · 2014 [cited by applicant]
US 8752034B2 · Gounares et al. · 2014 [cited by applicant]
US 9110814B2 · Keramidas et al. · 2015 [cited by applicant]
US 20020144020A1 · Gooding · 2002 [cited by examiner]
US 20150347139A1 · Keramidas · 2015 [cited by examiner]
US 20180025092A1 · Aharonov et al. · 2018 [cited by applicant]
US 20180322065A1 · Yaroshevich · 2018 [cited by examiner]
US 20200220851A1 · Storm · 2020 [cited by examiner]
US 20220237116A1 · Hood · 2022 [cited by examiner]
US 20230195419A1 · Gope · 2023 [cited by examiner]
CN 111738403A · 2020 [cited by applicant]
WO 2020252762A1 · 2020 [cited by applicant]
International Search Report for PCT Application No. PCT/IB2022/060310 dated Jan. 31, 2023. The International Bureau of WIPO. [cited by applicant]
Written Opinion of the International Searching Authority for PCT Application No. PCT/IB2022/060310 dated Jan. 31, 2023. The International Bureau of WIPO. [cited by applicant]
International Search Report for PCT Application No. PCT/IB2022/060419 dated Jan. 4, 2023. The International Bureau of WIPO. [cited by applicant]
International Search Report for PCT Application No. PCT/IB2022/060420 dated Mar. 2, 2023. The International Bureau of WIPO. [cited by applicant]
Sandhupatla Amruth: “Faster convolutional neural network training via approximate memoization”, Oct. 18, 2018, XP093010822. [cited by applicant]
Seongmin Hong et al.: “Enabling Energy Efficient Image Encryption using Approximate Memoization”, Journal of Semiconductor Technology and Science, Jan. 1, 2017, pp. 465-472, XP055680555 DOI: 10.5573/JSTS.2017.17.3.465. [cited by applicant]
Written Opinion of the International Searching Authority for PCT Application No. PCT/IB2022/060419 dated Jan. 4, 2023. The International Bureau of WIPO. [cited by applicant]
Written Opinion of the International Searching Authority for PCT Application No. PCT/IB2022/060420 dated Mar. 2, 2023. The International Bureau of WIPO. [cited by applicant]