IP Library Granted Patent US 9,430,281
Granted Patent B2
US 9,430,281 · App. 13/292,740 · Granted Aug 30, 2016

Heterogeneous enqueuing and dequeuing mechanism for task scheduling

Inventors: Benjamin Thomas Sander (Austin, TX); Michael Houston (Cupertino, CA); Newton Cheung (San Jose, CA); Keith Lowery (Bothell, WA)
Assignee: Advanced Micro Devices, Inc.
G06F9/4881
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 9,430,281
App. No.
13/292,740
Granted
Aug 30, 2016
Kind
B2
Abstract

Methods, systems and computer-readable mediums for task scheduling on an accelerated processing device (APD) are provided. In an embodiment, a method comprises: enqueuing one or more tasks in a memory storage module based on the APD; using a software-based enqueuing module; and dequeuing the one or more tasks from the memory storage module using a hardware-based command processor, wherein the command processor forwards the one or more tasks to the shader core.

Claims (36)

1. A method for task scheduling on an accelerated processing device (APD), comprising:

on a condition that the APD determines to enqueue one or more tasks, enqueuing, by an enqueuing module based on the APD, the one or more tasks in a memory storage module; and

on a condition that the APD requests dequeuing by a command processor based on the APD, dequeuing, by the command processor, the one or more queued tasks from the memory storage module;

wherein the command processor retrieves the one or more queued tasks from the memory storage module and forwards the retrieved one or more queued tasks to a shader core of the APD.

2. The method of claim 1 , wherein the memory storage module is a private memory queue.

3. The method of claim 1 , further comprising:

accessing a function code in each task to enqueue and dequeue each task.

4. The method of claim 1 , wherein the enqueuing module enqueues the one or more tasks using an atomic operation.

5. The method of claim 1 , wherein the command processor dequeues the one or more tasks using an atomic operation.

6. The method of claim 1 , wherein the command processor uses a blocking mechanism to dequeue the one or more tasks.

7. The method of claim 1 , wherein the command processor uses an unblocking mechanism to dequeue the one or more tasks.

8. A system for task scheduling on an accelerated processing device (APD), comprising:

a memory storage module configured to store one or more tasks;

an enqueuing module configured to enqueue the one or more tasks onto the memory storage module based on the APD, on a condition that the APD determines to enqueue one or more tasks; and

a command processor based on the APD configured to dequeue the one or more queued tasks from the memory storage module for processing on a shader core of the APD, on a condition that the APD requests dequeuing by the command processor;

wherein the command processor retrieves the one or more tasks from the memory storage module and forwards the retrieved one or more tasks to the shader core.

9. The system of claim 8 , wherein the memory storage module is a private memory queue.

10. The system of claim 8 , wherein the enqueuing module and command processor access a code stored in each task to enqueue and dequeue each task.

11. The system of claim 8 , wherein the enqueuing module uses an atomic operation to access the memory storage module.

12. The system of claim 8 , wherein the command processor uses a microcode to dequeue one or more tasks.

13. The system of claim 8 , wherein the command processor uses a blocking mechanism to dequeue the one or more tasks.

14. The system of claim 8 , wherein the command processor uses an unblocking mechanism to dequeue the one or more tasks.

15. An article of manufacture including a computer-readable medium having instructions stored thereon that, when executed by a computing device, cause said computing device to perform operations for task scheduling on an accelerated processing device (APD), comprising:

on a condition that the APD determines to enqueue one or more tasks, enqueuing, by a software-based enqueuing module based on the APD, the one or more tasks a memory storage module; and

on a condition that the APD requests dequeuing by a command processor based on the APD, dequeuing, by the command processor, the one or more queued tasks from the memory storage module

wherein the command processor retrieves the one or more tasks from the memory storage module and forwards the retrieved one or more tasks to a shader core of the APD.

16. The article of manufacture of claim 15 , wherein the memory storage module is a private memory queue.

17. The article of manufacture of claim 15 , further comprising:

accessing a function code in each task to enqueue and dequeue each task.

18. A computer-readable medium having instructions recorded thereon that, when executed by a computing device, cause the computing device to perform operations to task schedule on a processor, comprising:

on a condition that an accelerated processing device (APD) determines to enqueue one or more tasks, enqueuing, by a software-based enqueuing module based on the APD, the one or more tasks a memory storage module; and

on a condition that the APD requests dequeuing by a command processor based on the APD, dequeuing, by the command processor, the one or more queued tasks from the memory storage module

wherein the command processor retrieves the one or more tasks from the memory storage module and forwards the retrieved one or more tasks to a shader core of the APD.

19. The computer-readable medium of claim 18 , wherein the memory storage module is a private memory queue.

20. The computer-readable medium of claim 18 further comprising:

accessing a function code in each task to enqueue and dequeue each task.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 21, 2012
From: SANDER, BENJAMIN THOMAS; HOUSTON, MICHAEL CLAIR; CHEUNG, NEWTON; LOWERY, KEITH
To: ADVANCED MICRO DEVICES, INC.
Reel/Frame 027901/0485 →
Continuity (2)
Provisional Application 61423847 · Dec 16, 2010
Related Publication 20120180056A1 · Jul 12, 2012