IP Library › Granted Patent US 11,526,761
Granted Patent B2
US 11,526,761 · App. 16/550,229 · Granted Dec 13, 2022

Neural network training with decreased memory consumption and processor utilization

Inventors: Taesik Na (Issaquah, WA); Daniel Lo (Bothell, WA); Haishan Zhu (Bellevue, WA); Eric Sen Chung (Woodinville, WA)
Assignee: Microsoft Technology Licensing, LLC
G06N3/084
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 11,526,761
App. No.
16/550,229
Granted
Dec 13, 2022
Kind
B2
Abstract

Bounding box quantization can reduce the quantity of bits utilized to express numerical values prior to the multiplication of matrices comprised of such numerical values, thereby reducing both memory consumption and processor utilization. Stochastic rounding can provide sufficient precision to enable the storage of weight values in reduced-precision formats without having to separately store weight values in a full-precision format. Alternatively, other rounding mechanisms, such as round to nearest, can be utilized to exchange weight values in reduced-precision formats, while also storing weight values in full-precision formats for subsequent updating. To facilitate conversion, reduced-precision formats such as brain floating-point format can be utilized.

Claims (51)

1. A method of increasing processing speed and decreasing digital storage consumption in performing neural network training utilizing one or more computing devices, the method comprising:

performing, with the one or more computing devices, a forward propagation of a neural network training that receives, as input, a first set of weight values in a first reduced-precision format and a first set of activation values in the first reduced-precision format, and that outputs, into storage, a second set of activation values in the first reduced-precision format;

performing, with the one or more computing devices, a backpropagation of the neural network training that receives, as input, the first set of weight values in the first reduced-precision format, a first set of error values in the first reduced-precision format and the first set of activation values in the first reduced-precision format, and that outputs, into storage, a first set of gradient values in the first reduced-precision format and a second set of error values in the first reduced-precision format; and

performing, with the one or more computing devices, a weight update of the neural network training utilizing a first set of weight values in a full-precision format and a first set of gradient values in the full-precision format, the performing the weight update resulting in a storage of a second set of weight values in the first reduced-precision format;

wherein the forward propagation and the backpropagation comprise performing bounding box quantization on input values, the bounding box quantization converting values expressed utilizing different exponents to values expressed utilizing a common exponent, the values expressed utilizing the common exponent comprising only an identification of the common exponent, instead of the common exponent itself, the identification of the common exponent consuming fewer bits than the common exponent itself.

2. The method of claim 1 , wherein the performing the weight update also results in a storage of a second set of weight values in the full-precision format, the second set of weight values in the full-precision format being output by the performing the weight update utilizing the first set of weight values in the full-precision format and the first set of gradient values in the full-precision format.

3. The method of claim 2 , wherein the first set of weight values in the full-precision format utilized by the weight update are obtained from local storage where the first set of weight values in the full-precision format were stored by a prior performance of the weight update.

4. The method of claim 1 , wherein the performing the weight update comprises:

performing stochastic rounding to convert a second set of weight values in the full-precision format to the second set of weight values in the first reduced-precision format that are stored, the second set of weight values in the full-precision format being output by the performing the weight update utilizing the first set of weight values in the full-precision format and the first set of gradient values in the full-precision format.

5. The method of claim 4 , wherein the performing the weight update further comprises:

receiving, as input to the weight update, the first set of gradient values in the first reduced-precision format;

upconverting the first set of gradient values in the first reduced-precision format to the first set of gradient values in the full-precision format;

receiving, as input to the weight update, the first set of weight values in the first reduced-precision format, the first set of weight values in the first reduced-precision format having been generated by a prior performance of the weight update; and

upconverting the first set of weight values in the first reduced-precision format to the first set of weight values in the full-precision format.

6. The method of claim 1 , wherein the performing the weight update comprises:

performing gradient descent utilizing the first set of gradient values in the full-precision format and the first set of weight values in the full-precision format.

7. The method of claim 1 , wherein the performing the forward propagation comprises:

performing the bounding box quantization on the first set of weight values in the first reduced-precision format to generate a first set of weight values in a second reduced-precision format;

performing the bounding box quantization on the first set of activation values in the first reduced-precision format to generate a first set of activation values in the second reduced-precision format;

performing matrix multiplication utilizing the first set of weight values in the second reduced-precision format and the first set of activation values in the second reduced-precision format to generate a second set of activation values in an increased-precision format utilizing more bits to represent values than the first reduced-precision format.

8. The method of claim 7 , wherein at least one of the performing the bounding box quantization on the first set of weight values or the performing the bounding box quantization on the first set of activation values comprises performing stochastic rounding as part of the bounding box quantization.

9. The method of claim 1 , wherein the performing the backpropagation comprises:

performing the bounding box quantization on the first set of weight values in the first reduced-precision format to generate a first set of weight values in a second reduced-precision format;

performing the bounding box quantization on the first set of error values in the first reduced-precision format to generate a first set of error values in the second reduced-precision format;

performing matrix multiplication utilizing the first set of weight values in the second reduced-precision format and the first set of error values in the second reduced-precision format to generate a second set of error values in an increased-precision format utilizing more bits to represent values than the first reduced-precision format.

10. The method of claim 9 , wherein at least one of the performing the bounding box quantization on the first set of weight values or the performing the bounding box quantization on the first set of error values comprises performing stochastic rounding as part of the bounding box quantization.

11. The method of claim 1 , wherein the performing the backpropagation comprises:

performing the bounding box quantization on the first set of activation values in the first reduced-precision format to generate a first set of activation values in a second reduced-precision format;

performing the bounding box quantization on the first set of error values in the first reduced-precision format to generate a first set of error values in the second reduced-precision format;

performing matrix multiplication utilizing the first set of activation values in the second reduced-precision format and the first set of error values in the second reduced-precision format to generate the first set of gradient values in an increased-precision format utilizing more bits to represent values than the first reduced-precision format.

12. The method of claim 11 , wherein at least one of the performing the bounding box quantization on the first set of activation values or the performing the bounding box quantization on the first set of error values comprises performing stochastic rounding as part of the bounding box quantization.

13. The method of claim 1 , wherein the first reduced-precision format utilizes less than 20 bits to represent each value.

14. The method of claim 1 , wherein the first reduced-precision format is a 16-bit brain floating-point format.

15. The method of claim 1 , wherein the full-precision format is a 32-bit single precision floating-point format.

16. One or more computing devices, comprising, in aggregate:

multiple processing units comprising circuitry; and

multiple computer-readable storage media comprising computer-executable instructions, which, when executed by at least some of the multiple processing units, cause the one or more computing devices to:

perform a forward propagation of a neural network training that receives, as input, a first set of weight values in a first reduced-precision format and a first set of activation values in the first reduced-precision format, and that outputs, into storage, a second set of activation values in the first reduced-precision format;

perform a backpropagation of the neural network training that receives, as input, a first set of weight values in the first reduced-precision format, a first set of error values in the first reduced-precision format and the first set of activation values in the first reduced-precision format, and that outputs, into storage, a first set of gradient values in the first reduced-precision format and a second set of error values in the first reduced-precision format; and

perform a weight update of the neural network training utilizing a first set of weight values in a full-precision format and a first set of gradient values in the full-precision format, the performing the weight update resulting in a storage of a second set of weight values in the first reduced-precision format;

wherein the forward propagation and the backpropagation comprise performing bounding box quantization on input values, the bounding box quantization converting values expressed utilizing different exponents to values expressed utilizing a common exponent, the values expressed utilizing the common exponent comprising only an identification of the common exponent, instead of the common exponent itself, the identification of the common exponent consuming fewer bits than the common exponent itself.

17. The one or more computing devices of claim 16 , wherein the computer-executable instructions directed to performing the weight update comprise computer-executable instructions, which, when executed by at least some of the multiple processing units, cause the one or more computing devices to:

store a second set of weight values in the full-precision format, the second set of weight values in the full-precision format being output by the performing the weight update utilizing the first set of weight values in the full-precision format and the first set of gradient values in the full-precision format.

18. The one or more computing devices of claim 16 , wherein the computer-executable instructions directed to performing the weight update comprise computer-executable instructions, which, when executed by at least some of the multiple processing units, cause the one or more computing devices to:

perform stochastic rounding to convert a second set of weight values in the full-precision format to the second set of weight values in the first reduced-precision format that are stored, the second set of weight values in the full-precision format being output by the performing the weight update utilizing the first set of weight values in the full-precision format and the first set of gradient values in the full-precision format.

19. The one or more computing devices of claim 16 , wherein the performing the bounding box quantization comprises performing stochastic rounding.

20. One or more computer-readable storage media comprising computer-executable instructions, which, when executed, cause one or more computing devices to:

perform a forward propagation of a neural network training that receives, as input, a first set of weight values in a first reduced-precision format and a first set of activation values in the first reduced-precision format, and that outputs, into storage, a second set of activation values in the first reduced-precision format;

perform a backpropagation of the neural network training that receives, as input, a first set of weight values in the first reduced-precision format, a first set of error values in the first reduced-precision format and the first set of activation values in the first reduced-precision format, and that outputs, into storage, a first set of gradient values in the first reduced-precision format and a second set of error values in the first reduced-precision format; and

perform a weight update of the neural network training utilizing a first set of weight values in a full-precision format and a first set of gradient values in the full-precision format, the performing the weight update resulting in a storage of a second set of weight values in the first reduced-precision format;

wherein the forward propagation and the backpropagation comprise performing bounding box quantization on input values, the bounding box quantization converting values expressed utilizing different exponents to values expressed utilizing a common exponent, the values expressed utilizing the common exponent comprising only an identification of the common exponent, instead of the common exponent itself, the identification of the common exponent consuming fewer bits than the common exponent itself.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 25, 2019
From: NA, TAESIK; LO, DANIEL; ZHU, HAISHAN; CHUNG, ERIC SEN
To: MICROSOFT TECHNOLOGY LICENSING LLC
Reel/Frame 050159/0022 →
Continuity (1)
Related Publication 20210056423A1 · Feb 25, 2021