IP Library Granted Patent US 12,033,237
Granted Patent B2
US 12,033,237 · App. 18/306,033 · Granted Jul 9, 2024

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,033,237
App. No.
18/306,033
Granted
Jul 9, 2024
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 (41)

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:

convert elements of a floating-point tensor into elements of a fixed-point tensor, wherein to convert an element of the floating-point tensor, the circuitry is to compute a right-shift value based on a run-time configurable scale factor associated with the floating-point tensor and right-shift a mantissa of the element based on the right-shift value to generate a magnitude integer;

perform a compute operation on input including data elements of the fixed-point tensor; and

generate an output tensor via the compute operation.

2. The graphics processing unit as in claim 1 , wherein the circuitry is configured to perform computations associated with a neural network.

3. The graphics processing unit as in claim 2 , wherein the floating-point tensor is a value associated with a layer of the neural network.

4. The graphics processing unit as in claim 1 , wherein the circuitry is configured to store an implicit leading bit of the mantissa of the element as an explicit bit within the magnitude integer.

5. The graphics processing unit as in claim 1 , wherein the compute operation is a matrix arithmetic operation and the run-time configurable scale factor associated with the floating-point tensor is based on a difference between an exponent value of the element of the floating-point tensor and the exponent value of an absolute maximum value within the floating-point tensor.

6. The graphics processing unit as in claim 1 , wherein the circuitry is configured to:

determine whether a leading zero count of an absolute maximum value of the output tensor is above a threshold; and

adjust a precision associated with the output tensor in response to determining whether the leading zero count is above the threshold.

7. The graphics processing unit as in claim 1 , wherein the circuitry includes a dynamic precision fixed-point unit to convert the floating-point tensor into the fixed-point tensor and perform the compute operation on the input including the fixed-point tensor.

8. The graphics processing unit as in claim 7 , wherein the dynamic precision fixed-point unit includes an integer compute unit that includes a multiplier, an adder, an accumulator, a shifter, and a register.

9. The graphics processing unit as in claim 8 , wherein the register is to store a shared exponent associated with the fixed-point tensor and the shared exponent is shared by elements of the fixed-point tensor.

10. The graphics processing unit as in claim 9 , wherein the dynamic precision fixed-point unit is configured to round the magnitude integer according to value of a first bit and a second bit within the magnitude integer to generate a rounded magnitude integer.

11. A method comprising:

converting elements of a floating-point tensor into elements of a fixed-point tensor via a graphics processing unit including a graphics core cluster having a plurality of multiprocessors, wherein converting an element of the floating-point tensor includes computing a right-shift value based on a run-time configurable scale factor associated with the floating-point tensor and right-shifting a mantissa of the element based on the right-shift value to generate a magnitude integer;

performing a compute operation using data elements of the fixed-point tensor via circuitry within the plurality of multiprocessors; and

generating an output tensor via the compute operation.

12. The method as in claim 11 , wherein converting an element of the floating-point tensor additionally includes storing an implicit leading bit of the mantissa as an explicit bit within the magnitude integer.

13. The method as in claim 11 , further comprising:

determining whether a leading zero count of an absolute maximum value of the output tensor is above a threshold; and

adjusting a precision associated with the output tensor in response to determining whether the leading zero count is above the threshold.

14. The method as in claim 13 , wherein adjusting the precision associated with the output tensor includes adjusting the run-time configurable scale factor associated with the output tensor.

15. The method as in claim 14 , wherein adjusting the precision associated with the output tensor includes:

increasing a right-shift value within a right-shift counter and incrementing the run-time configurable scale factor in response to determining that the leading zero count is above the threshold; and

decreasing the right-shift value within the right-shift counter and decrementing the run-time configurable scale factor in response to determining that the leading zero count is below the threshold.

16. A data processing system comprising:

a memory to store fixed-point tensors; and

one or more processors including at least one graphics processor, the at least one graphics processor including a graphics core cluster including a plurality of hardware processing resources that are interconnected via a data interconnect, a hardware processing resource of the plurality of hardware processing resources including dynamic precision fixed-point circuitry, the hardware processing resource configured to:

convert elements of a floating-point tensor into elements of a fixed-point tensor, wherein to convert an element of the floating-point tensor includes to compute a right-shift value based on a run-time configurable scale factor associated with the floating-point tensor and right-shift a mantissa of the element based on the right-shift value to generate a magnitude integer;

perform a compute operation on input including data elements of the fixed-point tensor; and

generate an output tensor via the compute operation.

17. The data processing system as in claim 16 , the hardware processing resource configured to perform computations associated with a neural network and the floating-point tensor is a value associated with a layer of the neural network.

18. The data processing system as in claim 16 , the hardware processing resource configured to store an implicit leading bit of the mantissa of the element as an explicit bit within the magnitude integer.

19. The data processing system as in claim 16 , wherein the compute operation is a matrix arithmetic operation and the hardware processing resource is configured to:

determine whether a leading zero count of an absolute maximum value of the output tensor is above a threshold; and

adjust a precision associated with the output tensor in response to determining whether the leading zero count is above the threshold.

20. The data processing system as in claim 19 , wherein to adjust the precision associated with the output tensor includes to adjust the run-time configurable scale factor associated with the output tensor.

Continuity (6)
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 20230351542A1 · Nov 2, 2023
Cited By (1)
US 12,443,841