1. A method for scheduling work for processing by a GPU, comprising: accessing a work completion data structure; accessing a work tracking data structure; performing dependency logic analysis using work completion data and work tracking data; and launching work items that have dependencies into the GPU by using a software work item launch interface.