BACKGROUND

Graphics processing units (GPUs) and other multithreaded processing units typically implement multiple processing elements (which are also referred to as processor cores or compute units) that concurrently execute multiple instances of a single program on multiple data sets. For example, the processing elements can implement single-instruction-multiple-data (SIMD) protocols to concurrently execute the same instruction on multiple data sets using multiple processor cores. The processing elements are therefore referred to as SIMD units. A hierarchical execution model is used to match the hierarchy implemented in hardware. The execution model defines a kernel of instructions that are executed by all the waves (also referred to as wavefronts, threads, streams, or work items). In some cases, the processing power of the GPUs or other multithreaded processing units implemented in a processing system is supplemented with one or more accelerators that also implement SIMD protocols. One example of an accelerator circuit that is implemented in conjunction with GPUs or other multithreaded processing units is an array processor.

