1. A method of controlling the distribution of work for task processing, the method comprising: determining a number of entries stored in a first queue, wherein the first queue is stored within a task metadata structure; reading work distribution parameters encapsulated in the task metadata structure that define a first processing task, wherein a first parameter included in the work distribution parameters specifies a number of entries (N) needed to launch a set of compute thread arrays (CTAs) for execution by a streaming multiprocessor, and a second parameter included in the work distribution parameters specifies a plurality of CTAs (M) to launch for each number of entries (N); determining that the number of entries stored in the first queue is equal to or greater than the number of entries (N) specified by the first parameter included in the work distribution parameters; in response to determining that the number of entries stored in the first queue is equal to or greater than the number of entries (N) specified by the first parameter, determining a number of CTAs to launch, wherein M CTAs are launched for each number of entries (N) stored in the first queue, launching the number of CTAs for execution by the streaming multiprocessor; and in response to executing the number of CTAs, updating a pointer to a next entry in the first queue to be processed by a next set of CTAs based on the work distribution parameters; determining an updated number of entries stored in the first queue; and based on determining the updated number of entries, adjusting the number of CTAs to launch based on the work distribution parameters and the updated number of entries.