IP Library Granted Patent US 10,726,514
Granted Patent B2
US 10,726,514 · App. 15/581,167 · Granted Jul 28, 2020

Compute optimizations for low precision machine learning operations

Inventors: Elmoustapha Ould-Ahmed-Vall (Chandler, AZ); Sara S. Baghsorkhi (San Jose, CA); Anbang Yao (Beijing, CN); Kevin Nealis (San Jose, CA); Xiaoming Chen (Shanghai, CN); Altug Koker (El Dorado Hills, CA); Abhishek R. Appu (El Dorado Hills, CA); John C. Weast (Portland, OR); Mike B. Macpherson (Portland, OR); Dukhwan Kim (San Jose, CA); Linda L. Hurd (Cool, CA); Ben J. Ashbaugh (Folsom, CA); Barath Lakshmanan (Chandler, AZ); Liwei Ma (Beijing, CN); Joydeep Ray (Folsom, CA); Ping T. Tang (Edison, NJ); Michael S. Strickland (Sunnyvale, CA)
Assignee: Intel Corporation
G06T1/20G06F7/483G06F9/30014G06F9/30185G06F9/3863G06F9/5044G06N3/0445G06N3/0454G06N3/063G06N3/084G06N20/00G06F3/14G06T1/60G06T15/005
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 10,726,514
App. No.
15/581,167
Granted
Jul 28, 2020
Kind
B2
Abstract

One embodiment provides a general-purpose graphics processing unit comprising a dynamic precision floating-point unit including a control unit having precision tracking hardware logic to track an available number of bits of precision for computed data relative to a target precision, wherein the dynamic precision floating-point unit includes computational logic to output data at multiple precisions.

Claims (27)

1. A general-purpose graphics processing unit comprising:

a dynamic precision floating-point unit including a controller having precision tracking hardware to track an available number of bits of precision for computed data relative to a target precision, wherein the dynamic precision floating-point unit includes functional units to perform variable precision floating-point operations, the functional units including native floating-point hardware to perform the variable precision floating-point operations, wherein hardware of the dynamic precision floating-point unit includes a significand block to perform a significand portion of a floating-point computation and an exponent block to perform an exponent portion of the floating-point computation.

2. The general-purpose graphics processing unit as in claim 1 , wherein the dynamic precision floating-point unit includes a set of registers to store input data and intermediate data at multiple precisions, wherein the set of registers is to store the significand portion of an input data value separately from the exponent portion of the input data value.

3. The general-purpose graphics processing unit as in claim 2 , wherein the set of registers includes an error accumulator to track an accumulated error over a set of floating-point operations.

4. The general-purpose graphics processing unit as in claim 1 , wherein the significand block includes a first dynamic precision adder configurable via the controller to add or subtract input data at multiple precisions.

5. The general-purpose graphics processing unit as in claim 4 , the significand block including a dynamic precision multiplier configurable via the controller to add or multiply or divide input data at multiple precisions.

6. The general-purpose graphics processing unit as in claim 5 , wherein the exponent block includes a second dynamic precision adder configurable via the controller to add or subtract exponents of input data at multiple precisions.

7. The general-purpose graphics processing unit as in claim 6 , the exponent block and the significand block to perform a first floating-point operation to output a first output value having 16-bits of precision.

8. The general-purpose graphics processing unit as in claim 7 , the exponent block and the significand block to perform a second operation to output a second output value having 32-bits of precision.

9. The general-purpose graphics processing unit as in claim 8 , the exponent block and the significand block to perform a third floating-point operation on input data having 32-bit values to output a third output value having a 32-bit data type, the third output value generated at 16-bits of precision.

10. The general-purpose graphics processing unit as in claim 9 , the exponent block including an 8-bit multiplier, and wherein the exponent block and the significand block are configurable via the controller to perform a dual 8-bit integer operation.

11. A data processing system comprising:

a general-purpose graphics processing unit comprising a dynamic precision floating-point unit including a controller having precision tracking hardware to track an available number of bits of precision for computed data relative to a target precision, wherein the dynamic precision floating-point unit includes functional units to perform variable precision floating-point operations, the functional units including native floating-point hardware to perform the variable precision floating-point operations, wherein hardware of the dynamic precision floating-point unit includes a significand block to perform a significand portion of a floating-point computation and an exponent block to perform an exponent portion of the floating-point computation; and

a memory coupled to the general-purpose graphics processing unit.

12. The data processing system as in claim 11 , wherein the dynamic precision floating-point unit includes a set of registers to store input data and intermediate data at multiple precisions, wherein the set of registers is to store the significand portion of an input data value separately from the exponent portion of the input data value.

13. The data processing system as in claim 12 , wherein the set of registers includes an error accumulator to track an accumulated error over a set of floating-point operations.

14. The data processing system as in claim 11 , wherein the significand block includes a first dynamic precision adder configurable via the controller to add or subtract input data at multiple precisions and a dynamic precision multiplier configurable via the controller to add or multiply or divide input data at multiple precisions.

15. The data processing system as in claim 14 , wherein the exponent block includes a second dynamic precision adder configurable via the controller to add or subtract exponents of input data at multiple precisions.

16. An electronic device comprising:

a general-purpose graphics processing unit comprising a dynamic precision floating-point unit, the dynamic precision floating-point unit including a controller having precision tracking hardware to track an available number of bits of precision for computed data relative to a target precision; and

wherein the dynamic precision floating-point unit includes functional units to perform variable precision floating-point operations, the functional units including native floating-point hardware to perform the variable precision floating-point operations, wherein hardware of the dynamic precision floating-point unit includes a significand block to perform a significand portion of a floating-point computation and an exponent block to perform an exponent portion of the floating-point computation.

17. The electronic device as in claim 16 , wherein the dynamic precision floating-point unit includes a set of registers to store input data and intermediate data at multiple precisions, wherein the set of registers is to store the significand portion of an input data value separately from the exponent portion of the input data value and includes an error accumulator to track an accumulated error over a set of floating-point operations.

18. The electronic device as in claim 16 , wherein:

the significand block includes a first dynamic precision adder configurable via the controller to add or subtract input data at multiple precisions and a dynamic precision multiplier configurable via the controller to add, multiply, or divide input data at multiple precisions; and

the exponent block includes a second dynamic precision adder configurable via the controller to add or subtract exponents of input data at multiple precisions.

19. The electronic device as in claim 18 , wherein the exponent block and the significand block are to perform a first floating-point operation to output a first output value having 16-bits of precision, a second operation to output a second output value having 32-bits of precision, and a third floating-point operation on input data having 32-bit values to output a third output value having a 32-bit data type, the third output value generated at 16-bits of precision.

20. The electronic device as in claim 18 , the exponent block including an 8-bit multiplier, and wherein the exponent block and the significand block are configurable via the controller to perform a dual 8-bit integer operation.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2017
From: OULD-AHMED-VALL, ELMOUSTAPHA; KOKER, ALTUG; RAY, JOYDEEP; BAGHSORKHI, SARA S.; YAO, ANBANG; CHEN, XIAOMING; APPU, ABHISHEK R.; WEAST, JOHN C.; MACPHERSON, MIKE B.; KIM, DUKHWAN; HURD, LINDA L.; ASHBAUGH, BEN J.; LAKSHMANAN, BARATH; MA, LIWEI; TANG, PING T.; STRICKLAND, MICHAEL S.; NEALIS, KEVIN
To: INTEL CORPORATION
Reel/Frame 043294/0302 →
Continuity (1)
Related Publication 20180315157A1 · Nov 1, 2018
Cited By (3)
US 12,373,911 US 12,399,713 US 12,670,372