US11442785B2ActiveUtilityA1
Computation method and product thereof
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-modifiedWhat 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.