1. A method for limiting a number of workgroups that may simultaneously access a kernel of an integrated circuit (IC), the method comprising: tracking a plurality of threads that currently access the kernel and workgroup information associated with the plurality of threads; determining a threshold number of workgroups that may access the kernel simultaneously, wherein the threshold is based on an allotment of additional workgroups that are expected not to cause overuse, depletion or both of hardware resources of the integrated circuit; receiving a first thread of execution and workgroup information associated with the first thread; determining, based on the workgroup information associated with the first thread and workgroup information associated with the plurality of threads that currently access the kernel, if allowing the first thread access to the kernel will result in an additional workgroup accessing the kernel; allowing the first thread to access the kernel when it is determined the first thread would not result in an additional workgroup accessing the kernel; allowing the first thread to access the kernel when it is determined the first thread would not exceed the threshold; and disallowing the first thread to access the kernel when doing so would exceed the threshold number of workgroups.