Abstract | ||
---|---|---|
The register file is one of the largest and most power-hungry structures in a Graphics Processing Unit (GPU), because massive multithreading requires all the register state for every active thread to be available. Previous approaches to making register accesses more efficient have optimized how registers are stored, but they must keep all values for active threads in a large, high-bandwidth structure. If operand storage is to be reduced further, there will not be enough capacity for every live value to be stored at the same time. Our insight is that computation graphs can be sliced into regions and operand storage can be allocated to these regions as they are encountered at run time, allowing a small operand staging unit to replace the register file. Most operand values have a short lifetime that is contained in one region, so their value does not need to persist in the staging unit past the end of that region. The small number of longer-lived operands can be stored in lower-bandwidth global memory, but the hardware must anticipate their use to fetch them early enough to avoid stalls. In RegLess, hardware uses compiler annotations to anticipate warps' operand usage at run time, allowing the register file to be replaced with an operand staging unit 25% of the size, saving 75% of register file energy and 11% of total GPU energy with no average performance loss.
|
Year | DOI | Venue |
---|---|---|
2017 | 10.1145/3123939.3123974 | MICRO-50: The 50th Annual IEEE/ACM International Symposium on Microarchitecture
Cambridge
Massachusetts
October, 2017 |
Keywords | Field | DocType |
GPU, register file, GPU compiler | Multithreading,Memory data register,Computer science,Parallel computing,Operand,Index register,Register file,Thread (computing),Real-time computing,Operand forwarding,Graphics processing unit,Operating system | Conference |
ISSN | ISBN | Citations |
1072-4451 | 978-1-4503-4952-9 | 7 |
PageRank | References | Authors |
0.40 | 57 | 6 |
Name | Order | Citations | PageRank |
---|---|---|---|
John Kloosterman | 1 | 8 | 0.75 |
Jonathan Beaumont | 2 | 36 | 2.85 |
D. Anoushe Jamshidi | 3 | 351 | 11.20 |
Jonathan Bailey | 4 | 8 | 0.75 |
Trevor Mudge | 5 | 6139 | 659.74 |
Scott Mahlke | 6 | 4811 | 312.08 |