IP Library Granted Patent US 10,643,297
Granted Patent B2
US 10,643,297 · App. 15/881,991 · Granted May 5, 2020

Dynamic precision management for integer deep learning primitives

Inventors: Naveen 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/0445G06N3/0454G06N3/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 10,643,297
App. No.
15/881,991
Granted
May 5, 2020
Kind
B2
Abstract

One embodiment provides for a graphics processing unit to perform computations associated with a neural network, the graphics processing unit comprising compute unit including a hardware logic unit having dynamic precision fixed-point logic; a decode unit to decode an instruction for execution by the compute unit, the instruction to cause the compute unit to perform a matrix arithmetic operation on a set of dynamic fixed-point tensors; and a dynamic precision manager to dynamically adjust the precision of a compute operation performed by the compute unit during the matrix arithmetic operation, the dynamic precision manager to adjust the precision of the compute operation to prevent an arithmetic overflow.

Claims (41)

1. A graphics processing unit to perform computations associated with a neural network, the graphics processing unit comprising:

compute unit including a hardware logic unit having dynamic precision fixed-point logic;

a decode unit to decode an instruction for execution by the compute unit, the instruction to cause the compute unit to perform a matrix arithmetic operation on a set of dynamic fixed-point tensors; and

a dynamic precision manager to dynamically adjust the precision of a compute operation performed by the compute unit during the matrix arithmetic operation, the dynamic precision manager to adjust the precision of the compute operation to prevent an arithmetic overflow.

2. The graphics processing unit as in claim 1 , the dynamic precision fixed-point logic of the compute unit including an integer compute unit.

3. The graphics processing unit as in claim 2 , wherein the integer compute unit includes a multiplier, an adder, and accumulator, a shifter, and a register.

4. The graphics processing unit as in claim 3 , wherein the register is to store a dynamic fixed-point scale factor.

5. The graphics processing unit as in claim 4 , the instruction to cause the compute unit to perform a matrix arithmetic operation for a convolution operation on input data to the neural network.

6. The graphics processing unit as in claim 5 , wherein the matrix arithmetic operation includes an addition or multiplication operation.

7. The graphics processing unit as in claim 6 , wherein the matrix arithmetic operation includes a multiply and accumulate operation.

8. The graphics processing unit as in claim 7 , the dynamic precision manager to dynamically adjust the precision of the compute operation to prevent an arithmetic overflow at the accumulator.

9. A data processing system comprising:

one or more processors including at least one graphics processor, the at least one graphics processor including:

a compute unit including a hardware logic unit having dynamic precision fixed-point logic, the compute unit to perform a matrix arithmetic operation on a set of dynamic fixed-point tensors; and

a dynamic precision manager to dynamically adjust the precision of a compute operation performed by the compute unit during the matrix arithmetic operation on the set of dynamic fixed-point tensors, the dynamic precision manager to prevent an arithmetic overflow during the compute operation.

10. The data processing system as in claim 9 , the dynamic precision fixed-point logic of the compute unit including an integer compute unit.

11. The data processing system as in claim 10 , wherein the integer compute unit includes a multiplier, an adder, and accumulator, a shifter, and a register.

12. The data processing system as in claim 11 , wherein the register is to store a dynamic fixed-point scale factor.

13. The data processing system as in claim 12 , wherein the compute unit is to perform a matrix arithmetic operation associated with a convolution operation on input data to a neural network.

14. The data processing system as in claim 9 , wherein to perform a matrix arithmetic operation on the set of dynamic fixed-point tensors includes to:

receive an input tensor associated with the matrix arithmetic operation;

divide the input tensor into multiple blocks, the multiple blocks having different fixed-point precisions;

determine a shared exponent for each of the multiple blocks;

convert each of the multiple blocks into a dynamic fixed-point format using the shared exponent for each block;

store metadata for the multiple blocks to indicate a data format and shared exponent for the multiple blocks; and

perform the matrix arithmetic operation on the divided dynamic fixed-point input tensors.

15. An electronic device comprising:

one or more processors including at least one graphics processor, the at least one graphics processor including:

a compute unit including a hardware logic unit having dynamic precision fixed-point logic, the compute unit to perform a matrix arithmetic operation on a set of dynamic fixed-point tensors; and

a dynamic precision manager to dynamically adjust the precision of a compute operation performed by the compute unit during the matrix arithmetic operation on the set of dynamic fixed-point tensors, the dynamic precision manager to prevent an arithmetic overflow during the compute operation, wherein to perform a matrix arithmetic operation on the set of dynamic fixed-point tensors includes to:

receive an input tensor associated with the matrix arithmetic operation;

divide the input tensor into multiple blocks, the multiple blocks having different fixed-point precisions;

determine a shared exponent for each of the multiple blocks;

convert each of the multiple blocks into a dynamic fixed-point format using the shared exponent for each block;

store metadata for the multiple blocks to indicate a data format and shared exponent for the multiple blocks; and

perform the matrix arithmetic operation on the divided dynamic fixed-point input tensors.

16. The electronic device as in claim 15 , wherein the dynamic precision fixed-point logic of the compute unit including an integer compute unit.

17. The electronic device as in claim 16 , wherein the integer compute unit includes a multiplier, an adder, and accumulator, a shifter, and a register.

18. The electronic device as in claim 17 , wherein the register is to store a dynamic fixed-point scale factor.

19. The electronic device as in claim 18 , wherein the compute unit is to perform a matrix arithmetic operation associated with a convolution operation on input data to a neural network.

20. The electronic device as in claim 19 , wherein the matrix arithmetic operation includes a multiply and accumulate operation.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 25, 2018
From: MELLEMPUDI, NAVEEN K.; MUDIGERE, DHEEVATSA; DAS, DIPANKAR; SRIDHARAN, SRINIVAS
To: INTEL CORPORATION
Reel/Frame 045629/0946 →
Continuity (2)
Provisional Application 62501796 · May 5, 2017
Related Publication 20180322607A1 · Nov 8, 2018
Cited By (3)
US 12,573,176 US 12,607,977 US 12,711,362