IP Library › Granted Patent US 11,727,527
Granted Patent B2
US 11,727,527 · App. 17/541,413 · Granted Aug 15, 2023

Programmable coarse grained and sparse matrix compute hardware with advanced scheduling

Inventors: Eriko Nurvitadhi (Hillsoboro, OR); Balaji Vembu (Folsom, CA); Nicolas C. Galoppo Von Borries (Portland, OR); Rajkishore Barik (Santa Clara, CA); Tsung-Han Lin (Campbell, CA); Kamal Sinha (Rancho Cordova, CA); Nadathur Rajagopalan Satish (Santa Clara, CA); Jeremy Bottleson (Rancho Cordova, CA); Farshad Akhbari (Chandler, AZ); Altug Koker (El Dorado Hills, CA); Narayan Srinivasa (Portland, OR); Dukhwan Kim (San Jose, CA); Sara S. Baghsorkhi (San Jose, CA); Justin E. Gottschlich (Santa Clara, CA); Feng Chen (Shanghai, CN); Elmoustapha Ould-Ahmed-Vall (Chandler, AZ); Kevin Nealis (San Jose, CA); Xiaoming Chen (Shanghai, CN); Anbang Yao (Beijing, CN)
Assignee: Intel Corporation
G06T1/20G06F9/3001G06F9/3017G06F9/3851G06F9/3887G06F9/3895G06N3/04G06N3/044G06N3/045G06N3/063G06N3/08G06N3/084
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,727,527
App. No.
17/541,413
Granted
Aug 15, 2023
Kind
B2
Abstract

One embodiment provides for a compute apparatus to perform machine learning operations, the compute apparatus comprising a decode unit to decode a single instruction into a decoded instruction, the decoded instruction to cause the compute apparatus to perform a complex compute operation.

Claims (40)

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

a decode unit to decode a single instruction into a decoded instruction, the decoded instruction to cause the compute apparatus to perform a complex compute operation including multiple pipeline commands;

a micro-controller to execute firmware instructions, the firmware instructions to enable a parameter analyzer to determine a type of complex compute operation to perform for the single instruction; and

a scheduler controller to schedule the multiple pipeline commands for the complex compute operation to one or more of multiple types of compute units, wherein the multiple types of compute units include a first sparse compute unit configured for input at a first level of sparsity and a second sparse compute unit configured for input at a second level of sparsity that is higher than the first level of sparsity.

2. The compute apparatus as in claim 1 , wherein the complex compute operation includes a convolution operation for a layer of a convolutional neural network.

3. The compute apparatus as in claim 2 , wherein the convolution operation includes multiple matrix operations.

4. The compute apparatus as in claim 1 , additionally including a fetch unit to fetch the single instruction.

5. The compute apparatus as in claim 4 , the fetch unit to store the single instruction to an instruction cache.

6. The compute apparatus as in claim 1 , wherein the first sparse compute unit is a processing element of a first sparse compute tile and the second sparse compute unit is a processing element of a second sparse compute tile.

7. The compute apparatus as in claim 6 , wherein the first sparse compute tile includes a random-access memory device, the second sparse compute tile includes a cache memory device, and the random-access memory device and the cache memory device are configured to store non-zero values associated with sparse input matrices.

8. The compute apparatus as in claim 6 , further comprising an interconnect to couple the first sparse compute tile to a first memory and interconnect the second sparse compute tile to a second memory.

9. The compute apparatus as in claim 8 , wherein the first memory has a higher bandwidth relative to the second memory and the second memory has a lower latency relative to the first memory.

10. A method comprising:

on a graphics processor device:

decoding a single instruction into a decoded instruction, the

decoded instruction to cause the graphics processor device to perform a complex compute operation including multiple pipeline commands;

determining a type of complex compute operation to perform for the single instruction;

scheduling the multiple pipeline commands for the complex compute operation to one or more of multiple types of compute units, wherein the multiple types of compute units include a first sparse compute unit configured for input at a first level of sparsity and a second sparse compute unit configured for input at a second level of sparsity that is higher than the first level of sparsity.

11. The method as in claim 10 , further comprising determining the type of complex compute operation to perform for the single instruction via a parameter analyzer provided via firmware instructions executed by a microcontroller of the graphics processor device.

12. The method as in claim 10 , wherein the complex compute operation includes a convolution operation for a layer of a convolutional neural network.

13. The method as in claim 12 , wherein the convolution operation includes multiple matrix operations.

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

reading a matrix associated with the convolution operation;

partitioning the matrix into multiple blocks; and

storing the multiple blocks to memory coupled with the first sparse compute unit and the second sparse compute unit.

15. The method as in claim 14 , wherein the memory includes a first memory associated with the first sparse compute unit and a second memory associated with the second sparse compute unit, wherein the first memory has a higher bandwidth relative to the second memory and the second memory has a lower latency relative to the first memory.

16. A data processing system comprising:

a memory device configured to store instructions;

one or more processors including a graphics processor, wherein the graphics processor is configured to:

fetch a single instruction from the memory device;

decode the single instruction into a decoded instruction, the decoded instruction to cause a graphics processor device to perform a complex compute operation including multiple pipeline commands;

determine a type of complex compute operation to perform for the single instruction;

schedule the multiple pipeline commands for the complex compute operation to one or more of multiple types of compute units, wherein the multiple types of compute units include a first sparse compute unit configured for input at a first level of sparsity and a second sparse compute unit configured for input at a second level of sparsity that is higher than the first level of sparsity.

17. The data processing system as in claim 16 , wherein the graphics processor is further configured to determine the type of complex compute operation to perform for the single instruction via a parameter analyzer provided via firmware instructions executed by a microcontroller of the graphics processor.

18. The data processing system as in claim 16 , wherein the complex compute operation includes a convolution operation for a layer of a convolutional neural network and the convolution operation includes multiple matrix operations.

19. The data processing system as in claim 18 , wherein the graphics processor is further configured to:

read a matrix associated with the convolution operation;

partition the matrix into multiple blocks; and

store the multiple blocks to memory coupled with the first sparse compute unit and the second sparse compute unit.

20. The data processing system as in claim 19 , wherein the memory includes a first memory associated with the first sparse compute unit and a second memory associated with the second sparse compute unit, wherein the first memory has a higher bandwidth relative to the second memory and the second memory has a lower latency relative to the first memory.

Continuity (4)
Continuation 16928353 · Jul 14, 2020
Continuation 16197783 · Nov 21, 2018
Continuation 15581182 · Apr 28, 2017
Related Publication 20220164916A1 · May 26, 2022