IP Library Granted Patent US 12,412,232
Granted Patent B2
US 12,412,232 · App. 18/751,799 · Granted Sep 9, 2025

Dynamic precision management for integer deep learning primitives

Inventors: Naveen K. Mellempudi (Bangalore, IN); Dheevatsa Mudigere (Bangalore, IN); Dipankar Das (Pune, IN); Srinivas Sridharan (Bangalore, IN)
Assignee: Intel Corporation
G06T1/20G06F5/01G06F7/501G06F7/523G06F7/5443G06F17/153G06F17/16G06N3/044G06N3/045G06N3/063G06N3/084G06F2207/382G06F2207/4824
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 12,412,232
App. No.
18/751,799
Granted
Sep 9, 2025
Kind
B2
Abstract

One embodiment provides for a graphics processing unit to perform computations associated with a neural network, the graphics processing unit comprising a hardware processing unit having a dynamic precision fixed-point unit that is configurable to convert elements of a floating-point tensor to convert the floating-point tensor into a fixed-point tensor.

Claims (54)

1. A graphics processing unit comprising:

an interface coupled to an interconnect fabric; and

a graphics core cluster including a plurality of multiprocessors that are interconnected via a data interconnect, a multiprocessor of the plurality of multiprocessors including circuitry configured to:

receive an input tensor associated with an operation to be performed via the graphics core cluster, the input tensor including data elements in a floating-point format;

divide the data elements of the input tensor into multiple blocks of data elements;

determine a shared exponent for each of the multiple blocks of data elements;

generate metadata for the multiple blocks to indicate the shared exponent for each of the multiple blocks of data elements;

perform a compute operation on input including at least one of the multiple blocks of data elements and the metadata; and

generate an output tensor via the compute operation.

2. The graphics processing unit of claim 1 , the circuitry to convert the data elements of the at least one of the multiple blocks of data elements from the floating-point format to a fixed-point format having the shared exponent, the input including the at least one of the multiple blocks of data elements in the fixed-point format.

3. The graphics processing unit of claim 2 , wherein to convert the data elements, the circuitry is to be configured to compute a right-shift value based on the shared exponent and right-shift a mantissa of the element based on the right-shift value to generate a magnitude integer.

4. The graphics processing unit of claim 3 , the circuitry to determine the shared exponent based on a scale factor associated with the input tensor.

5. The graphics processing unit of claim 4 , wherein the scale factor is a run-time configurable scale factor.

6. The graphics processing unit of claim 5 , wherein the fixed-point format is a dynamic precision fixed-point format and the circuitry includes an integer compute unit having dynamic precision fixed-point circuitry.

7. The graphics processing unit of claim 6 , wherein the integer compute unit includes a multiplier, an adder, and accumulator, a shifter, and a register.

8. The graphics processing unit of claim 7 , wherein the register is to store the run-time configurable scale factor.

9. The graphics processing unit of claim 8 , wherein the dynamic precision fixed-point circuitry is configured to adjust the run-time configurable scale factor based on output from the multiplier.

10. A method comprising:

receiving an input tensor associated with an operation to be performed via a graphics core cluster including a plurality of multiprocessors that are interconnected via a data interconnect, the input tensor including data elements in a floating-point format;

dividing the data elements of the input tensor into multiple blocks of data elements;

determining a shared exponent for each of the multiple blocks of data elements;

generating metadata for the multiple blocks to indicate the shared exponent for each of the multiple blocks of data elements;

performing a compute operation on input including at least one of the multiple blocks of data elements and the metadata; and

generating an output tensor via the compute operation.

11. The method of claim 10 , comprising converting the data elements of the at least one of the multiple blocks of data elements from the floating-point format to a fixed-point format having the shared exponent, the input including the at least one of the multiple blocks of data elements in the fixed-point format.

12. The method of claim 11 , wherein converting the data elements includes computing a right-shift value based on the shared exponent and right-shift a mantissa of the element based on the right-shift value to generate a magnitude integer.

13. The method of claim 12 , comprising determining the shared exponent based on a scale factor associated with the input tensor.

14. The method of claim 13 , wherein the scale factor is a run-time configurable scale factor.

15. The method of claim 14 , wherein the fixed-point format is a dynamic precision fixed-point format.

16. A graphics processing system comprising:

a memory device; and

a graphics core cluster coupled with the memory device, the graphics core cluster including a plurality of multiprocessors that are interconnected via a data interconnect, a multiprocessor of the plurality of multiprocessors including circuitry configured to:

receive an input tensor associated with an operation to be performed via the graphics core cluster, the input tensor including data elements in a floating-point format;

divide the data elements of the input tensor into multiple blocks of data elements;

determine a shared exponent for each of the multiple blocks of data elements;

generate metadata for the multiple blocks to indicate the shared exponent for each of the multiple blocks of data elements;

perform a compute operation on input including at least one of the multiple blocks of data elements and the metadata; and

generate an output tensor via the compute operation.

17. The graphics processing system of claim 16 , the circuitry to convert the data elements of the at least one of the multiple blocks of data elements from the floating-point format to a fixed-point format having the shared exponent, the input including the at least one of the multiple blocks of data elements in the fixed-point format.

18. The graphics processing system of claim 17 , wherein to convert the data elements, the circuitry is to be configured to compute a right-shift value based on the shared exponent and right-shift a mantissa of a data element based on the right-shift value to generate a magnitude integer.

19. The graphics processing system of claim 18 , the circuitry to determine the shared exponent based on a scale factor associated with the input tensor, the scale factor a run-time configurable scale factor.

20. The graphics processing system of claim 19 , wherein the fixed-point format is a dynamic precision fixed-point format and the circuitry includes an integer compute unit having dynamic precision fixed-point circuitry.

21. A non-transitory machine-readable medium having code stored thereon which, when executed by a machine, causes the machine to perform operations, comprising:

receiving an input tensor associated with an operation to be performed by a processing circuit comprising one or more field programmable gate arrays (FPGAs), programmable processors, or a graphics core cluster, the graphics core cluster including a plurality of multiprocessors that are interconnected via a data interconnect, the input tensor including data elements in a floating-point format;

dividing the data elements of the input tensor into multiple blocks of data elements;

determining a plurality of exponents, each exponent of the plurality of exponents shared by data elements of a corresponding block of data elements;

generating metadata for the multiple blocks of data elements, the metadata indicating the plurality of exponents;

performing compute operations based on the input tensor, including a compute operation based on at least one of the multiple blocks of data elements and the metadata; and

generating an output tensor from the compute operation.

22. The non-transitory machine-readable medium of claim 21 , comprising converting the data elements of the at least one of the multiple blocks of data elements from the floating-point format to a fixed-point format having the shared exponent, the input including the at least one of the multiple blocks of data elements in the fixed-point format.

23. The non-transitory machine-readable medium of claim 22 , wherein converting the data elements includes computing a right-shift value based on the shared exponent and right-shift a mantissa of the element based on the right-shift value to generate a magnitude integer.

24. The non-transitory machine-readable medium of claim 23 , comprising determining the shared exponent based on a scale factor associated with the input tensor.

25. The non-transitory machine-readable medium of claim 24 , wherein the scale factor is a run-time configurable scale factor.

26. The non-transitory machine-readable medium of claim 25 , wherein the fixed-point format is a dynamic precision fixed-point format.

Continuity (7)
Continuation 18306033 · Apr 24, 2023
Continuation 17730364 · Apr 27, 2022
Continuation 17083588 · Oct 29, 2020
Continuation 16853405 · Apr 20, 2020
Division 15881991 · Jan 29, 2018
Provisional Application 62501796 · May 5, 2017
Related Publication 20240412318A1 · Dec 12, 2024
References Cited (33)
US 5448509A · Lee et al. · 1995 [cited by applicant]
US 7873812B1 · Mimar · 2011 [cited by applicant]
US 9721203B1 · Young et al. · 2017 [cited by applicant]
US 10373050B2 · Lin et al. · 2019 [cited by applicant]
US 10424069B2 · Sun · 2019 [cited by examiner]
US 10528864B2 · Dally et al. · 2020 [cited by applicant]
US 10860922B2 · Dally et al. · 2020 [cited by applicant]
US 10891538B2 · Dally et al. · 2021 [cited by applicant]
US 20140181171A1 · Dourbal · 2014 [cited by applicant]
US 20160013773A1 · Dourbal · 2016 [cited by applicant]
US 20160062947A1 · Chetlur et al. · 2016 [cited by applicant]
US 20170102921A1 · Henry et al. · 2017 [cited by applicant]
US 20170103304A1 · Henry et al. · 2017 [cited by applicant]
US 20170200094A1 · Bruestle et al. · 2017 [cited by applicant]
US 20170316307A1 · Koster et al. · 2017 [cited by applicant]
US 20180046906A1 · Dally et al. · 2018 [cited by applicant]
US 20180113678A1 · Sadowski et al. · 2018 [cited by applicant]
US 20180157962A1 · Henry et al. · 2018 [cited by applicant]
US 20180157966A1 · Henry et al. · 2018 [cited by applicant]
US 20180165574A1 · Young et al. · 2018 [cited by applicant]
US 20180197267A1 · Wu et al. · 2018 [cited by applicant]
CN 108805796A · 2018 [cited by applicant]
DE 102018110687A1 · 2018 [cited by applicant]
Goodfellow, et al. “Adaptive Computation and Machine Learning Series”, Book, Nov. 18, 2016, pp. 98-165, Chapter 5, The MIT Press, Cambridge, MA. [cited by applicant]
Nicholas Wilt, “The CUDA Handbook; A Comprehensive Guide to GPU Programming”, Book, Jun. 22, 2013, pp. 41-57, Addison-Wesley Professional, Boston, MA. [cited by applicant]
Ross, et al. “Intel Processor Graphics: Architecture & Programming”, Power Point Presentation, Aug. 2015, 78 pages, Intel Corporation, Santa Clara, CA. [cited by applicant]
Shane Cook, “CUDA Programming”, Book, 2013, pp. 37-52, Chapter 3, Elsevier Inc., Amsterdam Netherlands. [cited by applicant]
Stephen Junkins, “The Compute Architecture of Intel Processor Graphics Gen9”, paper, Aug. 14, 2015, 22 pages, Version 1.0, Intel Corporation, Santa Clara, CA. [cited by applicant]
Notice of Allowance from U.S. Appl. No. 17/730,364, mailed Feb. 7, 2023, 9 pages. [cited by applicant]
Notice of Allowance from U.S. Appl. No. 18/306,033, mailed Mar. 5, 2024, 8 pages. [cited by applicant]
Notice of Allowance for CN Application No. 201810420883, mailed Jun. 27, 2024, 3 pages. [cited by applicant]
Notification of Publication for CN Application No. 202411176247.9, Dec. 25, 2024, 2 pages. [cited by applicant]
Notification of Publication for DE Application No. 102018110687.4, Nov. 8, 2018, 108 pages. [cited by applicant]