System and method for launching data parallel and task parallel application threads and graphics processing unit incorporating the same
AssigneeNVIDIA Corporation
InventorAlbert Meixner
Life of this patent
Estimating the term…
Abstract
A system and method for launching data parallel and task parallel application threads. In one embodiment, the system includes: (1) a global thread launcher operable to retrieve a launch request from a queue and track buffer resources associated with the launch request and allocate output buffers therefor and (2) a local thread launcher associated with a streaming multiprocessor and operable to receive the launch request from the global thread launcher, set a program counter and resource pointers of pipelines of the streaming multiprocessor and receive reports from pipelines thereof as threads complete execution.
Claims15
A system for launching data parallel and task parallel application threads, comprising:
- a global thread launcher operable to retrieve a launch request from a queue and track buffer resources associated with said launch request and allocate output buffers therefor, said global thread launcher included in a processor of said system and said queue and output buffers included in a memory of said system, wherein said global thread launcher is further configured to track any interlocks associated with said launch request;
- a queue manager associated with said global thread launcher and operable to store a new launch request in said queue;
- and
- a local thread launcher, separate from said global thread launcher and included in a streaming multiprocessor of said system and operable to receive said launch request from said global thread launcher, set a program counter and resource pointers of pipelines of the streaming multiprocessor and receive reports from pipelines thereof as threads complete execution.
A method of launching data parallel and task parallel application threads, comprising:
- retrieving a launch request from a queue;
- tracking buffer resources associated with said launch request with a global thread launcher, wherein said tracking comprises tracking any interlocks associated with said launch request;
- employing said global thread launcher to allocate output buffers;
- forwarding said launch request to a local thread launcher associated with a streaming multiprocessor, said local thread launcher separate from said global thread launcher;
- setting a program counter and resource pointers of pipelines of said streaming multiprocessor;
- receiving reports from pipelines thereof as threads complete execution with said local thread launcher;
- and
- storing a new launch request in said queue.
A graphics processing unit, comprising:
- a plurality of streaming multiprocessors;
- a global thread launcher operable to retrieve a launch request from a queue and track buffer resources and track any interlocks associated with said launch request and allocate output buffers therefor;
- a queue manager associated with said global thread launcher and operable to store a new launch request in said queue;
- and
- a local thread launcher, separate from said global thread launcher and associated with each of said plurality of streaming multiprocessors and operable to receive said launch request from said global thread launcher, set a program counter and resource pointers of pipelines of a respective one of the plurality of streaming multiprocessors and receive reports from pipelines thereof as threads complete execution.
Dependencies are inferred from the claim text.