IP Library › Granted Patent US 11,720,355
Granted Patent B2
US 11,720,355 · App. 17/834,482 · Granted Aug 8, 2023

Instructions and logic to perform floating point and integer operations for machine learning

Inventors: Himanshu Kaul (Portland, OR); Mark A. Anders (Hillsboro, OR); Sanu K. Mathew (Hillsboro, OR); Anbang Yao (Beijing, CN); Joydeep Ray (Folsom, CA); Ping T. Tang (Edison, NJ); Michael S. Strickland (Sunnyvale, CA); Xiaoming Chen (Shanghai, CN); Tatiana Shpeisman (Menlo Park, CA); Abhishek R. Appu (El Dorado Hills, CA); Altug Koker (El Dorado Hills, CA); Kamal Sinha (Rancho Cordova, CA); Balaji Vembu (Folsom, CA); Nicolas C. Galoppo Von Borries (Portland, OR); Eriko Nurvitadhi (Hillsboro, OR); Rajkishore Barik (Santa Clara, CA); Tsung-Han Lin (Campbell, CA); Vasanth Ranganathan (El Dorado Hills, CA); Sanjeev Jahagirdar (Folsom, CA)
Assignee: Intel Corporation
G06F9/3001G06F7/483G06F7/5443G06F9/30014G06F9/30036G06F9/3851G06N3/044G06N3/045G06N3/063G06N3/08G09G5/393G06F9/3013G06F9/30025G06F17/16G06F2207/3824G06N20/00G06T15/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 11,720,355
App. No.
17/834,482
Granted
Aug 8, 2023
Kind
B2
Abstract

One embodiment provides a graphics processor comprising a memory controller and a graphics processing resource coupled with the memory controller. The graphics processing resource includes circuitry configured to execute an instruction to perform a matrix operation on first input including weight data and second input including input activation data, generate intermediate data based on a result of the matrix operation, quantize the intermediate data to a floating-point format determined based on a statistical distribution of first output data, and output, as second output data, quantized intermediate data in a determined floating-point format.

Claims (43)

1. A graphics processor comprising:

a memory controller; and

a graphics multiprocessor coupled with the memory controller, the graphics multiprocessor including first circuitry configured to:

execute an instruction to perform a matrix operation on first input and second input;

generate intermediate data based on a result of the matrix operation;

convert the intermediate data to a floating-point format determined based on statistics associated with first output data; and

output, as second output data, converted intermediate data in a determined floating-point format.

2. The graphics processor as in claim 1 , wherein the matrix operation includes a matrix multiply operation.

3. The graphics processor as in claim 1 , wherein the first circuitry is configured to generate the intermediate data in one of a first plurality of floating-point formats.

4. The graphics processor as in claim 3 , wherein the first plurality of floating-point formats includes a 16-bit format and a 32-bit format.

5. The graphics processor as in claim 1 , wherein the first circuitry is configured to convert the intermediate data to one of a second plurality of floating-point formats.

6. The graphics processor as in claim 5 , wherein the second plurality of floating-point formats includes multiple floating-point formats having a same number of bits and a different number of exponent bits.

7. The graphics processor as in claim 6 , wherein the multiple floating-point formats have a different number of mantissa bits.

8. The graphics processor as in claim 1 , wherein the first output data includes output generated for a first layer of a neural network.

9. The graphics processor as in claim 8 , wherein the second output data includes output generated for a second layer of a neural network.

10. The graphics processor as in claim 9 , wherein the first output data includes data generated by the first circuitry prior to generation of the intermediate data.

11. The graphics processor as in claim 1 , wherein the statistics associated with the first output data includes a dynamic range of the first output data.

12. The graphics processor as in claim 1 , further comprising second circuitry to determine statistics associated with first output data.

13. The graphics processor as in claim 12 , wherein the memory controller includes the second circuitry.

14. The graphics processor as in claim 13 , wherein the memory controller is configured to determine, via the second circuitry, the statistics associated with first output data during a write of the first output data to memory.

15. The graphics processor as in claim 14 , wherein the first circuitry is configured to request a write of the second output data to memory via the memory controller.

16. The graphics processor as in claim 15 , wherein the memory controller is configured to determine, via the second circuitry, statistics associated with the second output data during the write of the second output data to memory.

17. A method comprising:

executing an instruction on a graphics processor to perform a matrix operation on first input and second input;

generating intermediate data based on a result of the matrix operation;

converting the intermediate data to a floating-point format determined based on statistics associated with first output data; and

outputting, as second output data, converted intermediate data in a determined floating-point format.

18. The method as in claim 17 , further comprising:

generating the intermediate data in one of a first plurality of floating-point formats, wherein the first plurality of floating-point formats includes a 16-bit format and a 32-bit format; and

converting the intermediate data to one of a second plurality of floating-point formats, wherein the second plurality of floating-point formats includes multiple floating-point formats having a same number of bits and a different number of exponent bits.

19. The method as in claim 18 , wherein the multiple floating-point formats have a different number of mantissa bits.

20. A data processing system comprising:

a memory device to store an instruction; and

a graphics processor coupled with the memory device and configured to execute the instruction, the graphics processor including a memory controller and a graphics multiprocessor coupled with the memory controller, the graphics processor including circuitry configured to:

execute an instruction to perform a matrix operation on first input and second input;

generate intermediate data based on a result of the matrix operation;

convert the intermediate data to a floating-point format determined based on statistics associated with first output data; and

output, as second output data, converted intermediate data in a determined floating-point format.

21. The data processing system as in claim 20 , wherein the matrix operation includes a matrix multiply operation, the circuitry is configured to generate the intermediate data in one of a first plurality of floating-point formats, and the first plurality of floating-point formats includes a 16-bit format and a 32-bit format.

22. The data processing system as in claim 20 , wherein the circuitry is configured to convert the intermediate data to one of a second plurality of floating-point formats, the second plurality of floating-point formats including multiple floating-point formats having a same number of bits and a different number of exponent bits.

23. The data processing system as in claim 22 , wherein the multiple floating-point formats have a different number of mantissa bits.

24. The data processing system as in claim 20 , the graphics processor including circuitry configured to determine statistics associated with first output data.

25. The data processing system as in claim 24 , wherein the circuitry configured to determine statistics associated with first output data is included in the memory controller of the graphics processor.

Continuity (8)
Continuation 17305355 · Jul 6, 2021
Continuation 17169232 · Feb 5, 2021
Continuation 17115989 · Dec 9, 2020
Continuation 16432402 · Jun 5, 2019
Continuation 15819152 · Nov 21, 2017
Continuation 15787129 · Oct 18, 2017
Provisional Application 62491699 · Apr 28, 2017
Related Publication 20220357945A1 · Nov 10, 2022