IP Library › Granted Patent US 12,050,984
Granted Patent B2
US 12,050,984 · App. 17/083,080 · Granted Jul 30, 2024

Specialized fixed function hardware for efficient convolution

Inventors: Rajkishore Barik (Santa Clara, CA); Elmoustapha Ould-Ahmed-Vall (Chandler, AZ); Xiaoming Chen (Shanghai, CN); Dhawal Srivastava (Phoenix, AZ); Anbang Yao (Beijing, CN); Kevin Nealis (San Jose, CA); Eriko Nurvitadhi (Portland, OR); Sara S. Baghsorkhi (San Jose, CA); Balaji Vembu (Folsom, CA); Tatiana Shpeisman (Menlo Park, CA); Ping T. Tang (Edison, NJ)
Assignee: Intel Corporation
G06N3/063G06F9/3001G06F9/3017G06F9/3851G06F9/3887G06F9/3895G06F16/17G06N3/044G06N3/045G06N3/084G06T1/20
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,050,984
App. No.
17/083,080
Granted
Jul 30, 2024
Kind
B2
Abstract

One embodiment provides for a general-purpose graphics processing unit including a scheduler to schedule multiple matrix operations for execution by a general-purpose graphics processing unit. The multiple matrix operations are determined based on a single machine learning compute instruction. The single machine learning compute instruction is a convolution instruction and the multiple matrix operations are associated with a convolution operation.

Claims (36)

1. A compute apparatus comprising:

a general-purpose graphics processing unit including:

a register file configured to store packed data elements including compute data and pixel data;

an array of programmable compute units configurable to perform general-purpose compute operations on the compute data and graphics operations on the pixel data;

a fixed function circuit to perform matrix multiplication operations; and

a scheduler to schedule multiple matrix operations for execution by the array of programmable compute units and the fixed function circuit, the multiple matrix operations determined based on a single machine learning compute instruction, wherein the single machine learning compute instruction is a convolution instruction and the multiple matrix operations are associated with a convolution operation, wherein the scheduler is configured to schedule the multiple matrix operations to one of the array of programmable compute units and the fixed function circuit based on parameters associated with the multiple matrix operations.

2. The compute apparatus as in claim 1 , the general-purpose graphics processing unit additionally including a machine learning firmware module configured to determine the multiple matrix operations to be performed based on the single machine learning compute instruction.

3. The compute apparatus as in claim 2 , wherein the machine learning firmware module is updatable to expand a set of supported machine learning compute instructions.

4. The compute apparatus as in claim 1 , the general-purpose graphics processing unit additionally including convolution acceleration logic configured to select a convolution implementation for the convolution instruction.

5. The compute apparatus as in claim 4 , wherein the convolution acceleration logic is configured to select the convolution implementation based on a size of a convolution filter.

6. The compute apparatus as in claim 5 , wherein to select the convolution implementation includes to select the multiple matrix operations to execute based on the convolution instruction.

7. The compute apparatus as in claim 5 , wherein the general-purpose graphics processing unit includes a resource monitor and to the convolution acceleration logic is configured to:

determine utilization of hardware resources of the general-purpose graphics processing unit via the resource monitor; and

select the convolution implementation additionally based on the utilization of the hardware resources.

8. The compute apparatus as in claim 1 , wherein the fixed function circuit includes a systolic array of fixed function compute units.

9. The compute apparatus as in claim 1 , wherein the parameters include a size of image data input, a number of data channels of the image data input, or a size of a convolution filter.

10. A method comprising:

scheduling, via a scheduler, multiple matrix operations for execution by a general purpose graphics processing unit including a register file configured to store packed data elements including compute data and pixel data and an array of programmable compute units configurable to perform general-purpose compute operations on the compute data and graphics operations on the pixel data and fixed function circuit to perform matrix multiplication operations, the multiple matrix operations determined based on a single machine learning compute instruction, wherein the single machine learning compute instruction is a convolution instruction and the multiple matrix operations are associated with a convolution operation; and

executing the multiple matrix operations via one of the array of programmable compute units and the fixed function circuit based on parameters associated with the multiple matrix operations.

11. The method as in claim 10 , further comprising determining the multiple matrix operations to be performed via a machine learning firmware module, the machine learning firmware module updatable to expand a set of supported machine learning compute instructions.

12. The method as in claim 10 , further comprising selecting, via convolution acceleration logic, a convolution implementation for the convolution instruction, wherein selecting the convolution implementation includes determining a set of multiple matrix operations to execute based on the convolution instruction and the convolution implementation is determined based on a size of a convolution filter.

13. The method as in claim 10 , further comprising schedule the multiple matrix operations to a processing resource of the general purpose graphics processing unit, wherein the processing resource is one of an array of programmable compute units and matrix multiplication logic.

14. The method as in claim 11 , further comprising scheduling the multiple matrix operations based on parameters associated with the multiple matrix operations, wherein the parameters include a size of image data input, a number of data channels of the image data input, or a size of a convolution filter.

15. A system comprising:

a memory; and

a general-purpose graphics processing unit coupled with the memory, the general-purpose graphics processing unit including:

a register file configured to store packed data elements including compute data and pixel data;

a scheduler to schedule multiple matrix operations for execution, the multiple matrix operations determined based on a single machine learning compute instruction, wherein the single machine learning compute instruction is a convolution instruction and the multiple matrix operations are associated with a convolution operation; and

processing resources including an array of programmable compute units configurable to perform general-purpose compute operations on the compute data and graphics operations on the pixel data and a fixed function matrix multiplication circuit to perform matrix multiplication operations, wherein the scheduler is configured to schedule the multiple matrix operations to one of the processing resources based on parameters associated with the multiple matrix operations.

16. The system as in claim 15 , wherein the fixed function matrix multiplication circuit includes a systolic array of fixed function compute units.

17. The system as in claim 15 , the general-purpose graphics processing unit including:

an updatable machine learning firmware module configured to determine the multiple matrix operations to be performed based on the single machine learning compute instruction; and

convolution acceleration logic configured to select a convolution implementation for the convolution instruction based on a size of a convolution filter and utilization of hardware resources of the general-purpose graphics processing unit.

18. The system as in claim 17 , wherein the general-purpose graphics processing unit includes a resource monitor and the convolution acceleration logic is configured to determine the utilization of the hardware resources via the resource monitor.

19. The system as in claim 18 , wherein the parameters include a size of a convolution filter.

20. The system as in claim 15 , wherein the parameters include a size of image data input and a number of data channels of the image data input.

Continuity (2)
Continuation 15494723 · Apr 24, 2017
Related Publication 20210081774A1 · Mar 18, 2021