IP Library › Granted Patent US 12,724,947
Granted Patent B1
US 12,724,947 · App. 18/217,188 · Granted Sep 1, 2026

Designing approximate adder circuits using reinforcement learning

Inventors: Matthew Tomei (Santa Clara, CA); Saptadeep Pal (Cupertino, CA)
Assignee: Auradine, Inc.
G06F30/27G06F30/327G06F30/337G06F30/373G06N3/02G06N3/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,724,947
App. No.
18/217,188
Granted
Sep 1, 2026
Kind
B1
Abstract

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium for designing approximate adder circuits. In one aspect, a method includes: initializing a parallel prefix graph representing a parallel prefix circuit; and for each step in a sequence of steps: obtaining a current state of the parallel prefix graph; processing the current state using a neural network to generate a policy for adding or deleting nodes in the parallel prefix graph; adding or deleting a node in the parallel prefix graph while subject to one or more constraints; synthesizing the parallel prefix circuit having logic circuits corresponding to nodes in the parallel prefix graph; generating a respective value for each of multiple circuit-based metrics; determining a reward based on the values of the circuit-based metrics; and training the network parameters of the neural network on the reward using a reinforcement learning algorithm.

Claims (68)

1 . A method performed by one or more computers for optimizing a parallel prefix circuit configured to process an input sequence to generate an output sequence comprising, at least approximately, a prefix computation of the input sequence, the method comprising:

initializing a parallel prefix graph representing the parallel prefix circuit, the parallel prefix graph comprising:

a respective input and corresponding output at each of a plurality of bit positions that are arranged from a least significant bit to a most significant bit; and

a plurality of nodes connecting the inputs to the outputs, each node representing a logic circuit that implements an associative operator of the prefix computation,

wherein for each bit position proceeding the least significant bit, the output at the bit position is connected to the input at the bit position and one or more preceding bit positions; and

for each step in a sequence of steps:

obtaining a current state of the parallel prefix graph;

processing the current state using a neural network, in accordance with a set of network parameters of the neural network, to determine a policy for adding or deleting nodes in the parallel prefix graph given the current state;

adding or deleting a node in the parallel prefix graph using the policy while subject to one or more constraints,

wherein the one or more constraints specify that, when the node is added or deleted, the output at each bit position proceeding a threshold bit position is connected to, at minimum, a threshold number of inputs;

synthesizing the parallel prefix circuit having logic circuits corresponding to nodes in the parallel prefix graph;

generating a respective value for each of a plurality of circuit-based metrics of the parallel prefix circuit when synthesized;

determining a reward for the step based on the values of the circuit-based metrics at the step; and

training the network parameters of the neural network on the reward for the step using a reinforcement learning algorithm.

2 . The method of claim 1 , wherein:

the threshold bit position is a first threshold bit position;

the threshold number of inputs is a first threshold number of inputs, and

the one or more constraints further specify that, when the node is added or deleted, the output at each bit position proceeding a second threshold bit position is connected to, at maximum, a second threshold number of inputs.

3 . The method of claim 2 , wherein the second threshold number of inputs is equal to a binary logarithm of a total number of inputs.

4 . The method of claim 3 , where the total number of inputs is equal to one of: eight, sixteen, thirty-two, or sixty-four.

5 . The method of claim 1 , wherein the parallel prefix graph is initialized as a Sklansky parallel prefix graph, an approximate Sklansky parallel prefix graph, a Kogge-Stone parallel prefix graph, or an approximate Kogge-Stone parallel prefix graph.

6 . The method of claim 1 , wherein the circuit-based metrics comprise, at least one of, a circuit area or a computation delay.

7 . The method of claim 6 , wherein the circuit-based metrics further comprise a power consumption.

8 . The method of claim 1 , wherein determining the reward for the step based on the values of the circuit-based metrics at the step comprises:

determining the reward for the step based on a difference between: (i) the values of the circuit-based metrics at the step, and (ii) values of the circuit-based metrics at a preceding step.

9 . The method of claim 1 , wherein the reinforcement learning algorithm is a Q-learning algorithm.

10 . The method of claim 9 , wherein processing the current state using the neural network, in accordance with the network parameters of the neural network, to determine the policy for adding or deleting nodes in the parallel prefix graph given the current state comprises:

processing the current state using the neural network, in accordance with the network parameters of the neural network, to generate a Q-value given the current state,

wherein the Q-value characterizes a cumulative measure of rewards that are predicted to be received at each proceeding step if nodes are added or deleted from the parallel prefix graph using the policy at each proceeding step; and

determining the policy by maximizing the Q-value.

11 . The method of claim 10 , wherein training the network parameters of the neural network on the reward for the step using the Q-learning algorithm comprises:

determining gradients of an objective function that depends on the Q-value and the reward at the step; and

updating the network parameters of the neural network using the gradients of the objective function.

12 . The method of claim 9 , wherein the Q-learning algorithm is a double Q-learning algorithm.

13 . The method of claim 12 , wherein the double Q-learning algorithm is a scalarized double Q-learning algorithm.

14 . The method of claim 1 , wherein the logic circuit comprises two AND logic gates and an OR logic gate.

15 . The method of claim 14 , wherein each input of the input sequence comprises: (i) a respective generate bit, and (ii) a corresponding propagate bit.

16 . The method of claim 15 , wherein each output of the output sequence comprises: (i) a respective approximate group generate bit, and (ii) a corresponding approximate group propagate bit.

17 . The method of claim 1 , wherein the neural network is a convolutional neural network.

18 . The method of claim 17 , wherein the convolutional neural network is in a residual network configuration.

19 . One or more non-transitory computer storage media storing instructions that, when executed by one or more computers, cause the one or more computers to perform operations of a method for optimizing a parallel prefix circuit configured to process an input sequence to generate an output sequence comprising, at least approximately, a prefix computation of the input sequence, the method comprising:

initializing a parallel prefix graph representing the parallel prefix circuit, the parallel prefix graph comprising:

a respective input and corresponding output at each of a plurality of bit positions that are arranged from a least significant bit to a most significant bit; and

a plurality of nodes connecting the inputs to the outputs, each node representing a logic circuit that implements an associative operator of the prefix computation,

wherein for each bit position proceeding the least significant bit, the output at the bit position is connected to the input at the bit position and one or more preceding bit positions; and

for each step in a sequence of steps:

obtaining a current state of the parallel prefix graph;

processing the current state using a neural network, in accordance with a set of network parameters of the neural network, to determine a policy for adding or deleting nodes in the parallel prefix graph given the current state;

adding or deleting a node in the parallel prefix graph using the policy while subject to one or more constraints,

wherein the one or more constraints specify that, when the node is added or deleted, the output at each bit position proceeding a threshold bit position is connected to, at minimum, a threshold number of inputs;

synthesizing the parallel prefix circuit having logic circuits corresponding to nodes in the parallel prefix graph;

generating a respective value for each of a plurality of circuit-based metrics of the parallel prefix circuit when synthesized;

determining a reward for the step based on the values of the circuit-based metrics at the step; and

training the network parameters of the neural network on the reward for the step using a reinforcement learning algorithm.

20 . A system comprising one or more computers and one or more storage devices communicatively coupled to the one or more computers, wherein the one or more storage devices store instructions that, when executed by the one or more computers, cause the one or more computers to perform operations of a method for optimizing a parallel prefix circuit configured to process an input sequence to generate an output sequence comprising, at least approximately, a prefix computation of the input sequence, the method comprising:

initializing a parallel prefix graph representing the parallel prefix circuit, the parallel prefix graph comprising:

a respective input and corresponding output at each of a plurality of bit positions that are arranged from a least significant bit to a most significant bit; and

a plurality of nodes connecting the inputs to the outputs, each node representing a logic circuit that implements an associative operator of the prefix computation,

wherein for each bit position, the output at the bit position is connected to the input at the bit position and one or more preceding bit positions; and

for each step in a sequence of steps:

obtaining a current state of the parallel prefix graph;

processing the current state using a neural network, in accordance with a set of network parameters of the neural network, to determine a policy for adding or deleting nodes in the parallel prefix graph given the current state;

adding or deleting a node in the parallel prefix graph using the policy while subject to one or more constraints,

wherein the one or more constraints specify that, when the node is added or deleted, the output at each bit position proceeding a threshold bit position is connected to, at minimum, a threshold number of inputs;

synthesizing the parallel prefix circuit having logic circuits corresponding to nodes in the parallel prefix graph;

generating a respective value for each of a plurality of circuit-based metrics of the parallel prefix circuit when synthesized;

determining a reward for the step based on the values of the circuit-based metrics at the step; and

training the network parameters of the neural network on the reward for the step using a reinforcement learning algorithm.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 4, 2024
From: TOMEI, MATTHEW; PAL, SAPTADEEP
To: AURADINE, INC.
Reel/Frame 068801/0346 →
References Cited (25)
US 9830315B1 · Xiao · 2017 [cited by examiner]
US 10922611B2 · Bello · 2021 [cited by examiner]
US 11947935B2 · Clement · 2024 [cited by examiner]
US 20180336453A1 · Merity · 2018 [cited by examiner]
US 20220092386A1 · Zhou · 2022 [cited by examiner]
US 20220391678A1 · Zhang · 2022 [cited by examiner]
US 20230177337A1 · Desai · 2023 [cited by examiner]
US 20230368017A1 · Tolba · 2023 [cited by examiner]
US 20240005129A1 · Zhou · 2024 [cited by examiner]
CN 110753936A · 2020 [cited by examiner]
CN 114528221A · 2022 [cited by examiner]
DE 102022128165A1 · 2023 [cited by examiner]
DE 102022210228A1 · 2024 [cited by examiner]
EP 3559868B1 · 2025 [cited by examiner]
EP 3782082B1 · 2025 [cited by examiner]
JP 7434146B2 · 2024 [cited by examiner]
WO WO2022098497A1 · 2022 [cited by examiner]
WO WO2022098504A1 · 2022 [cited by examiner]
Durbin et al., “A deletion/substitution/addition algorithm for classification neural networks, with applications to biomedical data”, www.sciencedirect.com, Journal of Statistical Planning and Inference, No. 138, 2008, … [cited by examiner]
Van Hasselt et al., “Deep Reinforcement Learning with Double Q-Learning,” #1813, Presented at AAAI-16: Thirtieth AIII Conference on Artificial Intelligence, Phoenix, AZ, USA, Feb. 12-17, 2016, 30(1):2094-2100. [cited by applicant]
Mnih et al., “Human-level control through deep reinforcement learning,” Nature, Feb. 2015, 518(7540):529-33. [cited by applicant]
Mossalam et al., “Multi-objective deep reinforcement learning,” arXiv, Department of computer Science, University of Oxford, Oxford, United Kingdom, submitted Oct. 9, 2016, 9 pages. [cited by applicant]
Rosa et al., “AxPPA: Approximate parallel prefix adders,” IEEE Transactions on Very Large Scale Integration (VLSI) Systems, Nov. 21, 2022, 31(1):17-28. [cited by applicant]
Roy et al., “PrefixRL: Optimization of Parallel Prefix Circuits using Deep Reinforcement Learning,” Presented at the 58th ACM/IEEE Design Automation Conference (DAC), San Francisco, CA, USA, Dec. 5, 2021; available onli… [cited by applicant]
Vilim et al., “Approximate Bitcoin Mining,” Presented at the 53nd ACM/EDAC/IEEE Design Automation Conference (DAC), Austin, TX, USA, Jun. 5, 2016; available one Aug. 18, 2016, 1-6. [cited by applicant]