US2022237262A1PendingUtilityA1

Power efficient multiply-accumulate circuitry

Assignee: FACEBOOK TECH LLCPriority: Jul 11, 2019Filed: Apr 11, 2022Published: Jul 28, 2022
Est. expiryJul 11, 2039(~13 yrs left)· nominal 20-yr term from priority
Inventors:Liangzhen Lai
G06N 3/045G06N 3/048G06N 3/065G06N 3/0464G06N 3/0495G06F 9/3001G06F 17/16G06N 3/04G06N 3/084G06F 7/501G06N 3/08G06F 7/523G06N 3/063G06N 3/0635
67
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

Disclosed herein includes a system, a method, and a device for multiply-accumulate operation. In one aspect, an input operand is received by control circuitry. In one aspect, the control circuitry determines a sparsity of the input operand, where the sparsity may indicate whether a value of the input operand has a predetermined value or not. In one aspect, the control circuitry determines a stationarity of the input operand, where the stationarity may indicate whether the value of the input operand changes over one or more clock cycles. In one aspect, the input operand is provided to multiply-accumulate circuitry as an input, according to the determined sparsity and stationarity of the input operand.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A device, comprising control circuitry configured to:
 receive an input operand;   determine a sparsity of the input operand, the sparsity indicating whether a value of the input operand has a predetermined value or not;   determine a stationarity of the input operand, the stationarity indicating whether the value of the input operand changes over one or more clock cycles; and   provide the input operand to multiply-accumulate (MAC) circuitry as an input, according to the determined sparsity and stationarity of the input operand.   
     
     
         2 . The device of  claim 1 , wherein the input operand includes at least one of a weight or an activation value of a neural network. 
     
     
         3 . The device of  claim 1 , wherein the control circuitry is configured to:
 in response to determining that the value of the input operand has the predetermined value, determine that the input operand is sparse, and   in response to determining that the value of the input operand does not have the predetermined value, determine that the input operand is not sparse.   
     
     
         4 . The device of  claim 1 , wherein the control circuitry is configured to:
 in response to determining that the value of the input operand remains unchanged over the one or more clock cycles, determine that the input operand is stationary, and   in response to determining that the value of the input operand changes within the one or more clock cycles, determine that the input operand is not stationary.   
     
     
         5 . The device of  claim 1 , further comprising holding circuitry, wherein
 the holding circuitry comprises:
 one or more operand registers coupled to one or more inputs of the MAC circuitry; and 
 an accumulation register coupled between an output port of the MAC circuitry and a feedback port of the MAC circuitry, and 
   the control circuitry is configured to generate one or more control signals according to the determined sparsity and stationarity of the input operand, and provide the one or more control signals to the holding circuitry.   
     
     
         6 . The device of  claim 5 , wherein the one or more control signals include at least one of a load signal or a bubble signal. 
     
     
         7 . The device of  claim 5 , wherein
 in response to at least one of (1) the input operand not being stationary or (2) the input operand not being sparse, the one or more operand registers are configured to provide the input operand to the one or more inputs of the MAC circuitry.   
     
     
         8 . The device of  claim 7 , wherein
 the input operand is provided to the one or more inputs of the MAC circuitry for a first clock cycle, and   the one or more operand registers are configured to:
 in response to (1) a next input operand for one or more clock cycles subsequent to the first clock cycle being stationary, and (2) the next input operand being sparse, hold the provided input operand at the one or more inputs of the MAC circuitry. 
   
     
     
         9 . The device of  claim 5 , wherein
 the control circuitry configured to receive a first input operand and a second input operand, and   the holding circuitry is configured to:
 in response to (1) the first input operand not being sparse and (2) the second input operand not being sparse, update accumulated data according to a summation output from the MAC circuitry and provide the updated accumulated data to the feedback port of the MAC circuitry. 
   
     
     
         10 . The device of  claim 9 , wherein the holding circuitry is configured to:
 in response to at least one of (1) the first input operand being sparse or (2) the second input operand being sparse, hold accumulated data in the accumulation register such that the MAC circuitry does not perform accumulation.   
     
     
         11 . A method comprising:
 receiving, by control circuitry, an input operand;   determining, by the control circuitry, a sparsity of the input operand, the sparsity indicating whether a value of the input operand has a predetermined value or not;   determining by the control circuitry, a stationarity of the input operand, the stationarity indicating whether the value of the input operand changes over one or more clock cycles; and   providing the input operand to multiply-accumulate (MAC) circuitry as an input, according to the determined sparsity and stationarity of the input operand.   
     
     
         12 . The method of  claim 11 , wherein the input operand includes at least one of a weight or an activation value of a neural network. 
     
     
         13 . The method of  claim 11 , further comprising:
 in response to determining that the value of the input operand has the predetermined value, determining that the input operand is sparse, and   in response to determining that the value of the input operand does not have the predetermined value, determining that the input operand is not sparse.   
     
     
         14 . The method of  claim 11 , further comprising:
 in response to determining that the value of the input operand remains unchanged over the one or more clock cycles, determining that the input operand is stationary, and   in response to determining that the value of the input operand changes within the one or more clock cycles, determining that the input operand is not stationary.   
     
     
         15 . The method of  claim 11 , further comprising:
 generating, by the control circuitry, one or more control signals according to the determined sparsity and stationarity of the input operand; and   providing the one or more control signals to the holding circuitry.   
     
     
         16 . The method of  claim 15 , wherein the one or more control signals include at least one of a load signal or a bubble signal. 
     
     
         17 . The method of  claim 15 , further comprising:
 in response to at least one of (1) the input operand not being stationary or (2) the input operand not being sparse, providing, by one or more operand registers of the holding circuitry, the input operand to one or more inputs of the MAC circuitry.   
     
     
         18 . The method of  claim 17 , wherein
 the input operand is provided to the one or more inputs of the MAC circuitry for a first clock cycle, and   the method further comprises:
 in response to (1) a next input operand for one or more clock cycles subsequent to the first clock cycle being stationary, and (2) the next input operand being sparse, holding the provided input operand at the one or more inputs of the MAC circuitry. 
   
     
     
         19 . The method of  claim 15 , further comprising:
 receiving, by the control circuitry, a first input operand and a second input operand; and   in response to (1) the first input operand not being sparse and (2) the second input operand not being sparse, updating, by the holding circuitry, accumulated data according to a summation output from the MAC circuitry and providing the updated accumulated data to a feedback port of the MAC circuitry.   
     
     
         20 . The method of  claim 19 , further comprising:
 in response to at least one of (1) the first input operand being sparse or (2) the second input operand being sparse, holding accumulated data in an accumulation register coupled between an output port of the MAC circuitry and the feedback port of the MAC circuitry such that the MAC circuitry does not perform accumulation.

Join the waitlist — get patent alerts

Track US2022237262A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.