1. 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; and a local thread launcher associated with a streaming multiprocessor 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.