IP Library › Granted Patent US 10,409,614
Granted Patent B2
US 10,409,614 · App. 15/494,773 · Granted Sep 10, 2019

Instructions having support for floating point and integer data types in the same register

Inventors: Elmoustapha Ould-Ahmed-Vall (Chandler, AZ); Barath Lakshmanan (Chandler, AZ); Tatiana Shpeisman (Menlo Park, CA); Joydeep Ray (Folsom, CA); Ping T. Tang (Edison, NJ); Michael Strickland (Sunnyvale, CA); Xiaoming Chen (Shanghai, CN); Anbang Yao (Beijing, CN); Ben J. Ashbaugh (Folsom, CA); Linda L. Hurd (Cool, CA); Liwei Ma (Beijing, CN)
Assignee: Intel Corporation
G06F9/3887G06F9/3001G06F9/30014G06F9/3016G06F9/30036G06F9/30094G06F9/30109G06F9/30112G06F9/3851G06F9/50G06F13/4068G06F13/4282G06F15/80G06N3/00G06N3/0445G06N3/0454G06N3/063G06N3/084G06N20/00G06T1/20G06F2213/0026
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,409,614
App. No.
15/494,773
Filed
Apr 24, 2017
Granted
Sep 10, 2019
Kind
B2
Examiner
DOMAN, SHAWN
Art Unit
2183
USPC
712/205
Abstract

One embodiment provides for a compute apparatus to perform machine learning operations, the compute apparatus comprising instruction decode logic to decode a single instruction including multiple operands into a single decoded instruction, the multiple operands having differing precisions and a general-purpose graphics compute unit including a first logic unit and a second logic unit, the general-purpose graphics compute unit to execute the single decoded instruction, wherein to execute the single decoded instruction includes to perform a first instruction operation on a first set of operands of the multiple operands at a first precision and a simultaneously perform second instruction operation on a second set of operands of the multiple operands at a second precision.

Claims (33)

1. A compute apparatus to perform machine learning operations, the compute apparatus comprising:

a processor comprising:

an instruction decoder to decode a single instruction into a single decoded instruction, wherein execution of the single instruction uses a set of registers including a first input register, a second input register, and an output register, the first input register comprises a first floating point element and a first integer element, and the second input register comprises a second floating point element and a second integer element; and

a general-purpose graphics compute unit having a single instruction, multiple thread (SIMT) architecture, the general-purpose graphics compute unit including a first logic unit and a second logic unit, the general-purpose graphics compute unit to execute the single decoded instruction, wherein to execute the single decoded instruction includes to:

perform, at the first logic unit, a first instruction operation on a first set of operands including the first floating point element and the second floating point element to produce a first floating point result element,

perform, at the second logic unit, a second instruction operation on a second set of operands including the first integer element and the second integer element to prodice a first integer result element, and

store the first floating point result element and the first integer result element in the output register, wherein the first instruction operation is performed within the general-purpose graphics compute unit in parallel with the second instruction operation.

2. The compute apparatus as in claim 1 , wherein the general- purpose graphics compute unit is to output multiple results for the single instruction to the output register, the multiple results having differing precisions.

3. The compute apparatus as in claim 2 , the first logic unit to perform the first instruction operation at a first precision and the second logic unit to perform the second instruction operation at a second precision based on a single opcode, the single opcode associated with the single instruction.

4. The compute apparatus as in claim 3 , wherein the multiple results include a floating-point result and an integer result.

5. The compute apparatus as in claim 4 , wherein the multiple results include multiple integer results.

6. The compute apparatus as in claim 1 , wherein the first logic unit is a floating-point unit, the first set of operands have a floating-point data-type, the second logic unit is configured to perform integer operations, and the second set of operands have an integer data-type.

7. The compute apparatus as in claim 6 , wherein an element of the first set of operands and an element of the second set of operands are to be read from a single input register.

8. The compute apparatus as in claim 7 , wherein the first or second set of operands includes a first sub-set of operands and a second sub-set of operands.

9. The compute apparatus as in claim 8 , wherein the first or second logic unit is to perform the same operation on the first sub-set of operands and the second sub-set of operands.

10. The compute apparatus as in claim 8 , wherein elements of the first set of operands and the second set of operands are distributed across multiple input registers, each of the multiple input registers to store a floating-point data element and an integer data element.

11. A method of performing machine learning operations, the method comprising:

fetching and decoding a single instruction into a single decoded instruction, wherein execution of the single instruction uses a set of registers including a first input register, a second input register, and an output register, the first input register comprises a first floating point element and a first integer element, and the second input register comprises a second floating point element and a second integer element;

performing a first instruction operation on a first set of operands via a first logic unit within a compute unit of a general-purpose graphics processor, the compute unit having a single instruction, multiple thread (SIMT) architecture, wherein the first set of operands include the first floating point element and the second floating point element and the first instruction operation produces a first floating point result element;

performing a second instruction operation on a second set of operands via a second logic unit within the compute unit in parallel with performing the first instruction operation via the first logic unit, wherein the second set of operands include the first integer element and the second integer element and the second instruction operation produces a first integer result element; and

outputting results of the first instruction operation and the second instruction operation to the output register.

12. The method as in claim 11 , additionally comprising dispatching multiple threads associated with the single instruction.

13. The method as in claim 12 , additionally comprising dispatching a first thread of the multiple threads to the first logic unit and dispatching a second thread of the multiple threads to the second logic unit, the first logic unit and the second logic unit to perform parallel operations at differing precisions based on a single opcode, the single opcode associated with the single instruction.

14. A data processing system comprising:

a general-purpose graphics processing unit having a single instruction, multiple thread (SIMT) architecture including an instruction decoder to decode a single instruction including multiple operands into a single decoded instruction, the multiple operands having differing precisions and a compute unit including a first logic unit and a second logic unit, the compute unit to execute the single decoded instruction, wherein to execute the single decoded instruction includes to:

use a set of registers including a first input register, a second input register, and an output register, the first input register comprising a first floating point element and a first integer element, and the second input register comprising a second floating point element and a second integer element,

perform, on the first logic unit, a first instruction operation on a first set of operands including the first floating point element and the second floating point element to produce a first floating point result element and, in parallel with the first instruction operation, perform, on the second logic unit, a second instruction operation on a second set of operands including the first integer element and the second integer element to prodice a first integer result element, and

store the first floating point result element and the first integer result element to the output register; and

a memory communicatively coupled with the general-purpose graphics processing unit.

15. The data processing system as in claim 14 , wherein the compute unit is to output multiple results for the single instruction to an output register, the multiple results having differing precisions.

16. The data processing system as in claim 15 , the first logic unit to perform the first instruction operation at a first precision and the second logic unit to perform the second instruction operation at a second precision based on a single opcode, the single opcode associated with the single instruction.

17. The data processing system as in claim 16 , wherein the multiple results include a floating-point result and an integer result.

18. The data processing system as in claim 17 , wherein the multiple results include multiple integer results.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 4, 2017
From: OULD-AHMED-VALL, ELMOUSTAPHA; LAKSHMANAN, BARATH; SHPEISMAN, TATIANA; RAY, JOYDEEP; TANG, PING T.; STRICKLAND, MICHAEL S.; CHEN, XIAOMING; YAO, ANBANG; ASHBAUGH, BEN J.; HURD, LINDA L.; MA, LIWEI
To: INTEL CORPORATION
Reel/Frame 043200/0903 →
Continuity (1)
Related Publication 20180307494A1 · Oct 25, 2018
Cited By (21)
US 12,198,222 US 12,204,487 US 12,210,477 US 12,217,053 US 12,242,414 US 12,293,431 US 12,321,310 US 12,361,600 US 12,386,779 US 12,411,695 US 12,493,922 US 12,554,674 US 12,561,276 US 12,561,277 US 12,572,997 US 12,619,376 US 12,670,121 US 12,688,146 US 12,730,759 US 12,737,317 US 12,737,318