iGPU
- 5 September 2012
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGARCH Computer Architecture News
- Vol. 40 (3), 72-83
- https://doi.org/10.1145/2366231.2337168
Abstract
Since the introduction of fully programmable vertex shader hardware, GPU computing has made tremendous advances. Exception support and speculative execution are the next steps to expand the scope and improve the usability of GPUs. However, traditional mechanisms to support exceptions and speculative execution are highly intrusive to GPU hardware design. This paper builds on two related insights to provide a unified lightweight mechanism for supporting exceptions and speculation on GPUs. First, we observe that GPU programs can be broken into code regions that contain little or no live register state at their entry point. We then also recognize that it is simple to generate these regions in such a way that they are idempotent, allowing their entry points to function as program recovery points and enabling support for exception handling, fast context switches, and speculation, all with very low overhead. We call the architecture of GPUs executing these idempotent regions the iGPU architecture. The hardware extensions required are minimal and the construction of idempotent code regions is fully transparent under the typical dynamic compilation framework of GPUs. We demonstrate how iGPU exception support enables virtual memory paging with very low overhead (1% to 4%), and how speculation support enables circuit-speculation techniques that can provide over 25% reduction in energy.Keywords
This publication has 21 references indexed in Scilit:
- Static analysis and compiler design for idempotent processingPublished by Association for Computing Machinery (ACM) ,2012
- Implementing virtual memory in a vector processor with software restart markersPublished by Association for Computing Machinery (ACM) ,2006
- Rapid and low-cost context-switch through embedded processor customization for real-time and control applicationsPublished by Association for Computing Machinery (ACM) ,2006
- A user-programmable vertex enginePublished by Association for Computing Machinery (ACM) ,2001
- The Mips R10000 superscalar microprocessorIEEE Micro, 1996
- Fast context switches: compiler and architectural support for preemptive schedulingMicroprocessors and Microsystems, 1995
- The impact of architectural trends on operating system performancePublished by Association for Computing Machinery (ACM) ,1995
- Compiler-based multiple instruction retryIEEE Transactions on Computers, 1995
- Interrupt handling for out-of-order execution processorsIEEE Transactions on Computers, 1993
- The IBM System/370 vector architecture: design considerationsIEEE Transactions on Computers, 1988