US11442785B2ActiveUtilityA1

Computation method and product thereof

61
Assignee: SHANGHAI CAMBRICON INF TECH CO LTDPriority: May 18, 2018Filed: Dec 19, 2019Granted: Sep 13, 2022
Est. expiryMay 18, 2038(~11.9 yrs left)· nominal 20-yr term from priority
G06N 3/063G06N 3/048G06N 3/045G06N 3/044G06N 3/0495G06N 3/0464G06N 3/09G06N 20/10G06F 9/3802G06N 3/08G06F 9/30145G06F 9/5066G06F 9/30109G06F 9/5011G06F 9/5061G06N 3/084G06F 9/5038Y02D10/00G06F 9/546G06F 9/3851G06F 9/3888
61
PatentIndex Score
0
Cited by
254
References
14
Claims

Abstract

The present disclosure provides a computation method and product thereof. The computation method adopts a fusion method to perform machine learning computations. Technical effects of the present disclosure include fewer computations and less power consumption.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A neural network operation module configured to perform operations of a multi-layer neural network, comprising:
 a storage unit configured to store input neuron precision, weight precision, and output neuron gradient precision; 
 a controller unit configured to obtain input neuron precision S x(l) , weight precision S w(l) , and output neuron gradient precision S∇ x(l)  of an L th  layer of the multi-layer neural network, wherein L is an integer greater than 0, obtain gradient update precision T according to the input neuron precision S x(l) , the weight precision S w(l) , and the output neuron gradient precision S∇ x(l) , and if the gradient update precision T is less than preset precision T r , adjust the input neuron precision S x(l) , the weight precision S w(l) , and the output neuron gradient precision S∇ x(l)  to minimize an absolute value of a difference between the gradient update precision T and the preset precision T r ; and 
 an operating unit configured to represent an input neuron and a weight of the L th  layer according to the adjusted input neuron precision S x(l)  and the weight precision S w(l) , and represent an output neuron gradient of the L th  layer obtained from computations according to the adjusted output neuron gradient precision S∇ x(l)  for subsequent computations; 
 wherein the controller unit is further configured to:
 obtain the preset precision T r  according to a method of machine learning, or 
 obtain the preset precision T r  according to a count of output neurons, a learning rate, and a count of samples during batch processing of an (L−1) th  layer, wherein the greater the count of output neurons, the count of samples during batch processing, and the learning rate of the (L−1) th  layer are, the greater the preset precision T r  is. 
 
 
     
     
       2. The module of  claim 1 , wherein the obtaining, by the controller unit, of the gradient update precision T according to the input neuron precision S x(l) , the weight precision S w(l) , and the output neuron gradient precision S∇ x(l)  includes:
 the controller unit performs computations on the input neuron precision S x(l) , the weight precision S w(l) , and the output neuron gradient precision S∇ x(l)  according to a preset formula to obtain the gradient update precision T, 
 wherein the preset formula is: T=S x(l) +S∇ x(l) −S w(l) . 
 
     
     
       3. The module of  claim 2 , wherein the adjusting, by the controller unit, of the input neuron precision S x(l) , the weight precision S w(l) , and the output neuron gradient precision S∇ x(l)  includes:
 the controller unit keeps the input neuron precision S x(l)  and the weight precision S w(l)  unchanged, and increases the output neuron gradient precision S∇ x(l) . 
 
     
     
       4. The module of  claim 3 , wherein when the controller unit increases the output neuron gradient precision S∇ x(l) , the controller unit decreases a bit width of a fixed point data format representing the output neuron gradient. 
     
     
       5. The module of  claim 4 , wherein the decreasing, by the controller unit, of the bit width of the fixed point data format representing the output neuron gradient includes:
 the controller unit decreases the bit width of the fixed point data format representing the output neuron gradient according to a first preset stride N1, 
 wherein the first preset stride N1 can be 1, 2, 4, 6, 7, 8, or another positive integer. 
 
     
     
       6. The module of  claim 4 , wherein the decreasing, by the controller unit, of the bit width of the fixed point data format representing the output neuron gradient includes:
 the controller unit decreases the bit width of the fixed point data format representing the output neuron gradient with an increment of 2. 
 
     
     
       7. The module of  claim 3 , wherein after the controller unit increases the output neuron gradient precision S∇ x(l) , the controller unit is further configured to:
 determine whether the output neuron gradient precision S∇ x(l)  is less than required precision, wherein the required precision is a minimum precision of an output neuron gradient when a multi-layer neural network operation is performed; and 
 if the output neuron gradient precision S∇ x(l)  is less than the required precision, the controller unit decreases the bit width of the fixed point data format representing the output neuron gradient. 
 
     
     
       8. A neural network operation method, comprising:
 obtaining input neuron precision S x(l) , weight precision S w(l) , and output neuron gradient precision S∇ x(l)  of an L th  layer of a neural network; 
 obtaining gradient update precision T by performing computations according to the input neuron precision S x(l) , the weight precision S w(l) , and the output neuron gradient precision S∇ x(l) ; 
 if the gradient update precision T is less than preset precision T r , adjusting the input neuron precision S x(l) , the weight precision S w(l) , and the output neuron gradient S∇ x(l)  to minimize an absolute value of a difference between the gradient update precision T and the preset precision T r ; 
 representing an input neuron and a weight of the L th  layer according to the adjusted input neuron precision S x(l)  and the weight precision S w(l) ; and 
 representing an output neuron gradient of the L th  layer obtained from computations according to the adjusted output neuron gradient precision S∇ x(l)  for subsequent computations, 
 wherein the method further comprises:
 obtaining the preset precision T r  according to a method of machine learning, or 
 obtaining the preset precision T r  according to a count of output neurons, a learning rate, and a count of samples during batch processing of an (L−1) th  layer, wherein the greater the count of output neurons, the count of samples during batch processing, and the learning rate of the (L−1) th  layer are, the greater the preset precision T r  is. 
 
 
     
     
       9. The method of  claim 8 , wherein the obtaining of the gradient update precision T by performing computations according to the input neuron precision S x(l) , the weight precision S w(l) , and the output neuron gradient precision S∇ x(l)  includes:
 performing computations on the input neuron precision S x(l) , the weight precision S w(l) , and the output neuron gradient precision S∇ x(l)  according to a preset formula to obtain the gradient update precision T, 
 wherein the preset formula is: T=S x(l) +S∇ x(l) −S w(l) . 
 
     
     
       10. The method of  claim 9 , wherein the adjusting of the input neuron precision S x(l) , the weight precision S w(l) , and the output neuron gradient precision S∇ x(l)  includes:
 keeping the input neuron precision S x(l)  and the weight precision S w(l)  unchanged, and increasing the output neuron gradient precision S∇ x(l) . 
 
     
     
       11. The method of  claim 10 , wherein when increasing the output neuron gradient precision S∇ x(l) , the method further includes decreasing a bit width of a fixed point data format representing the output neuron gradient. 
     
     
       12. The method of  claim 11 , wherein after increasing the output neuron gradient precision S∇ x(l) , the method further includes:
 determining whether the output neuron gradient precision S∇ x(l)  is less than required precision, wherein the required precision is a minimum precision of an output neuron gradient when a multi-layer neural network operation is performed; and 
 if the output neuron gradient precision S∇ x(l)  is less than the required precision, decreasing the bit width of the fixed point data format representing the output neuron gradient. 
 
     
     
       13. The method of  claim 11 , wherein, the decreasing of the bit width of the fixed point data format representing the output neuron gradient includes:
 decreasing the bit width of the fixed point data format representing the output neuron gradient according to a first preset stride N1, 
 wherein the first preset stride N1 can be 1, 2, 4, 6, 7, 8, or another positive integer. 
 
     
     
       14. The method of  claim 11 , wherein the decreasing of the bit width of the fixed point data format representing the output neuron gradient includes:
 decreasing the bit width of the fixed point data format representing the output neuron gradient with an increment of 2.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.