IP Library › Granted Patent US 10,997,686
Granted Patent B2
US 10,997,686 · App. 16/243,624 · Granted May 4, 2021

Workload scheduling and distribution on a distributed graphics device

Inventors: Balaji Vembu (Folsom, CA); Brandon Fliflet (El Dorado Hills, CA); James Valerio (North Plains, OR); Michael Apodaca (Folsom, CA); Ben Ashbaugh (Folsom, CA); Hema Nalluri (Hyderabad, IN); Ankur Shah (Folsom, CA); Murali Ramadoss (Folsom, CA); David Puffer (Tempe, AZ); Altug Koker (El Dorado Hills, CA); Aditya Navale (Folsom, CA); Abhishek R. Appu (El Dorado Hills, CA); Joydeep Ray (Folsom, CA); Travis Schluessler (Berthoud, CO)
Assignee: Intel Corporation
G06T1/20G06F9/4881G06F9/5061G06F9/52G06T1/60
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,997,686
App. No.
16/243,624
Granted
May 4, 2021
Kind
B2
Abstract

Embodiments described herein provide a graphics, media, and compute device having a tiled architecture composed of a number of tiles of smaller graphics devices. The work distribution infrastructure for such device enables the distribution of workloads across multiple tiles of the device. Work items can be submitted to any one or more of the multiple tiles, with workloads able to span multiple tiles. Additionally, upon completion of a work item, graphics, media, and/or compute engines within the device can readily acquire new work items for execution with minimal latency.

Claims (49)

1. A graphics processor comprising:

a first tile of graphics processing engines;

a second tile of graphics processing engines; and

an interface between a host system and the graphics processor, the interface to receive a set of commands for a workload having a first partition and a second partition, submit the set of commands to the first tile of graphics processing engines, and submit the set of commands to the second tile of graphics processing engines;

wherein the first tile of graphics processing engines is to read a first partition identifier from a first hardware context, the first partition identifier associated with the first partition, and conditionally execute commands of the first partition while bypassing commands of the second partition; and

wherein the second tile of graphics processing engines is to read a second partition identifier from a second hardware context, the second partition identifier associated with the second partition, and conditionally execute commands of the second partition while bypassing commands of the first partition.

2. The graphics processor as in claim 1 , the interface to the host system further to receive a command to associate the first hardware context with the first tile of graphics processing engines.

3. The graphics processor as in claim 2 , the interface to the host system further to receive a command to configure the first hardware context based on a first logical render context.

4. The graphics processor as in claim 3 , the interface to the host system further to receive a command to associate the second hardware context with the second tile of graphics processing engines.

5. The graphics processor as in claim 4 , the interface to the host system further to receive a command to configure the second hardware context based on a second logical render context.

6. The graphics processor as in claim 5 , wherein the interface is to receive the set of commands for the workload via a memory buffer including commands to be executed for the workload.

7. The graphics processor as in claim 6 , wherein the first hardware context includes a first offset within the memory buffer associated with a start of the first partition, the second hardware context includes a second offset within the memory buffer associated with the start of the second partition, and the first hardware context and the second hardware context each include a step value associated with a number of partitions of the workload.

8. The graphics processor as in claim 7 , wherein the first tile of graphics processing engines is to begin execution of commands for the first partition with a command stored at the first offset within the memory buffer.

9. The graphics processor as in claim 7 , wherein the second tile of graphics processing engines is to begin execution of commands for the second partition with a command stored at the second offset within the memory buffer.

10. The graphics processor as in claim 7 , wherein the first tile of graphics processing engines is to synchronize with the second tile of graphics processing engines when execution of the first partition and the second partition completes.

11. A non-transitory machine-readable medium storing instructions which cause one or more processors to perform operations, wherein the one or more processors include a graphics processor and the operations comprise:

receiving a set of commands for a workload having a first partition and a second partition;

submitting the set of commands to a first tile of graphics processing engines of the graphics processor;

submitting the set of commands to a second tile of graphics processing engines of the graphics processor;

at the first tile of graphics processing engines, reading a first partition identifier from a first hardware context, the first partition identifier associated with the first partition, and conditionally executing commands of the first partition while bypassing commands of the second partition; and

at the second tile of graphics processing engines, reading a second partition identifier from a second hardware context, the second partition identifier associated with the second partition, and conditionally executing commands of the second partition while bypassing commands of the first partition.

12. The non-transitory machine-readable medium as in claim 11 , the operations further comprising:

receiving a first command to associate the first hardware context with the first tile of graphics processing engines; and

receiving a second command to associate the second hardware context with the second tile of graphics processing engines.

13. The non-transitory machine-readable medium as in claim 12 , the operations further comprising:

receiving a third command to configure the first hardware context based on a first logical render context; and

receiving a fourth command to configure the second hardware context based on a second logical render context.

14. The non-transitory machine-readable medium as in claim 13 , the operations further comprising receiving the set of commands for the workload via a memory buffer including commands to be executed for the workload.

15. The non-transitory machine-readable medium as in claim 14 , wherein the first hardware context includes a first offset within the memory buffer associated with a start of the first partition, the second hardware context includes a second offset within the memory buffer associated with the start of the second partition, and the first hardware context and the second hardware context each include a step value associated with a number of partitions of the workload.

16. A data processing system comprising:

a host interconnect; and

a graphics processor coupled with the host interconnect, the graphics processor including a first tile of graphics processing engines and a second tile of graphics processing engines, the graphics processor configured to be presented to a host processor of the data processing system as a single device, wherein the graphics processor includes hardware circuitry to:

receive, via the host interconnect, a set of commands for a workload having a first partition and a second partition;

submit the set of commands to a first tile of graphics processing engines of the graphics processor;

submit the set of commands to a second tile of graphics processing engines of the graphics processor;

at the first tile of graphics processing engines, read a first partition identifier from a first hardware context, the first partition identifier associated with the first partition, and conditionally execute commands of the first partition while bypassing commands of the second partition; and

at the second tile of graphics processing engines, read a second partition identifier from a second hardware context, the second partition identifier associated with the second partition, and conditionally execute commands of the second partition while bypassing commands of the first partition.

17. The data processing system as in claim 16 , the graphics processor further to:

receive a first command to associate the first hardware context with the first tile of graphics processing engines; and

receive a second command to associate the second hardware context with the second tile of graphics processing engines.

18. The data processing system as in claim 17 , the graphics processor further to:

receive a third command to configure the first hardware context based on a first logical render context; and

receive a fourth command to configure the second hardware context based on a second logical render context.

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

receive the set of commands for the workload via a memory buffer including commands to be executed for the workload;

wherein the first hardware context includes a first offset within the memory buffer associated with a start of the first partition and the second hardware context includes a second offset within the memory buffer associated with the start of the second partition;

wherein the first tile of graphics processing engines is to begin execution of commands for the first partition with a command stored at a first offset within the memory buffer; and

wherein the second tile of graphics processing engines is to begin execution of commands for the second partition with a command stored at a second offset within the memory buffer.

20. The data processing system as in claim 19 , wherein the first tile of graphics processing engines is to synchronize with the second tile of graphics processing engines when execution of the first partition and the second partition completes.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 1, 2019
From: VEMBU, BALAJI; FLIFLET, BRANDON; VALERIO, JAMES; APODACA, MICHAEL; ASHBAUGH, BEN; NALLURI, HEMA; SHAH, ANKUR; RAMADOSS, MURALI; PUFFER, DAVID; KOKER, ALTUG; NAVALE, ADITYA; APPU, ABHISHEK R.; RAY, JOYDEEP; SCHLUESSLER, TRAVIS
To: INTEL CORPORATION
Reel/Frame 049935/0524 →
Continuity (1)
Related Publication 20200219223A1 · Jul 9, 2020
Cited By (1)
US 12,511,704