Systems across the computing spectrum, from cell phones to supercomputers, are increasingly using a heterogeneous mix of general-purpose multicores augmented with programmable graphics processing units (GPUs).
Systems across the computing spectrum, from cell phones to supercomputers, are increasingly using a heterogeneous mix of general-purpose multicores augmented with programmable graphics processing units (GPUs). Heterogeneity offers a balance between programmability and efficiency, but can also significantly increase complexity at all levels of the computing stack. This project is exploring a new approach based on explicitly encoding and executing a loop iteration space with the goal of elegantly unifying these two types of processors into a single homogeneous computational substrate.