Techniques for sharing priorities between streams of work and dynamic parallelism
First Claim
1. A method for mapping a plurality of stream priorities associated with a software application to a plurality of device priorities supported by a parallel processor, the method comprising:
- receiving a first request from the software application to associate a first stream with a first stream priority, wherein the first stream is for execution within the parallel processor;
mapping the first stream priority to a first device priority;
receiving a second request from the software application to associate a second stream with a second stream priority, wherein the second stream priority is higher in priority than the first stream priority, and the second stream also is for execution within the parallel processor; and
mapping the second stream priority to a second device priority, wherein the second device priority is at least a maximum nesting depth higher in priority than the first device priority.
1 Assignment
0 Petitions
Accused Products
Abstract
One embodiment sets forth a method for assigning priorities to kernels launched by a software application and executed within a stream of work on a parallel processing subsystem that supports dynamic parallelism. First, the software application assigns a maximum nesting depth for dynamic parallelism. The software application then assigns a stream priority to a stream. These assignments cause a driver to map the stream priority to a device priority and, subsequently, associate the device priority with the stream. As part of the mapping, the driver ensures that each device priority is at least the maximum nesting depth higher than the device priorities associated with any lower priority streams. Subsequently, the driver launches any kernel included in the stream with the device priority associated with the stream. Advantageously, by strategically assigning the maximum nesting depth and prioritizing streams, an application developer may increase the overall processing efficiency of the software application.
6 Citations
24 Claims
-
1. A method for mapping a plurality of stream priorities associated with a software application to a plurality of device priorities supported by a parallel processor, the method comprising:
-
receiving a first request from the software application to associate a first stream with a first stream priority, wherein the first stream is for execution within the parallel processor; mapping the first stream priority to a first device priority; receiving a second request from the software application to associate a second stream with a second stream priority, wherein the second stream priority is higher in priority than the first stream priority, and the second stream also is for execution within the parallel processor; and mapping the second stream priority to a second device priority, wherein the second device priority is at least a maximum nesting depth higher in priority than the first device priority. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A non-transitory computer-readable storage medium including instructions that, when executed by a processor, cause the processor to map a plurality of stream priorities associated with a software application to a plurality of device priorities supported by a parallel processor subsystem, by performing the steps of:
-
receiving a first request from the software application to associate a first stream with a first stream priority, wherein the first stream is for execution within the parallel processor; mapping the first stream priority to a first device priority; receiving a second request from the software application to associate a second stream with a second stream priority, wherein the second stream priority is higher in priority than the first stream priority, and the second stream also is for execution within the parallel processor; and mapping the second stream priority to a second device priority, wherein the second device priority is at least a maximum nesting depth higher in priority than the first device priority. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 22, 23, 24)
-
-
20. A system configured to map a plurality of stream priorities associated with a software application to a plurality of device priorities supported by a parallel processor, the system comprising:
-
a memory that includes a driver program; and a processor that, when executing the driver program, is configured to; identify a maximum nesting depth that limits the number of nesting levels associated with child kernels that are launched by other kernels executing on the parallel processor; map a first stream priority associated with a first stream of work from the software application to a first device priority; and map a second stream priority associated with a second stream of work from the software application to a second device priority, wherein the second device priority is at least the maximum nesting depth higher in priority than the first device priority. - View Dependent Claims (21)
-
Specification