1. A computer-implemented method for resolving divergences between threads in a thread group executing on a parallel processing unit, the method comprising: fetching instructions associated with the threads; separating the threads into a subset of non-divergent threads and at least one subset of divergent threads; and causing the subset of non-divergent threads to be issued for execution on the parallel processing unit.