Vector-aware register allocation for GPU shader processors

Yi-Ping You, Szu Chieh Chen

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

1 Scopus citations

Abstract

Graphics processing units (GPUs) are now widely used in embedded systems for manipulating computer graphics and even for general-purpose computation. However, many embedded systems have to manage highly restricted hardware resources in order to achieve high performance or energy efficiency. The number of registers is one of the common limiting factors in an embedded GPU design. Programs that run with a low number of registers may suffer from high register pressure if register allocation is not properly designed, especially on a GPU in which a register is divided into four elements and each element can be accessed separately, because allocating a register for a vector-type variable that does not contain values in all elements wastes register spaces. In this paper we present a vector-aware register allocation framework to improve register utilization on shader architectures. The framework involves two major components: (1) element-based register allocation that allocates registers based on the element requirement of variables and (2) register packing that rearranges elements of registers in order to increase the number of contiguous free elements, thereby keeping more live variables in registers. Experimental results on a cycle-approximate simulator showed that the proposed framework decreased 92% of register spills in total and made 91.7% of 14 common shader programs spill-free. These results indicate an opportunity for energy management of the space that is used for storing spilled variables, with the framework improving the performance by a geometric mean of 8.3%, 16.3%, and 29.2% for general shader processors in which variables are spilled to memory with 5-, 10-, and 20-cycle access latencies, respectively. Furthermore, the reduction in the register requirement of programs enabled another 11 programs with high register pressure to be runnable on a lightweight GPU.

Original languageEnglish
Title of host publication2015 International Conference on Compilers, Architecture and Synthesis for Embedded Systems, CASES 2015
PublisherInstitute of Electrical and Electronics Engineers Inc.
Pages99-108
Number of pages10
ISBN (Electronic)9781467383202
DOIs
StatePublished - 10 Nov 2015
EventInternational Conference on Compilers, Architecture and Synthesis for Embedded Systems, CASES 2015 - Amsterdam, Netherlands
Duration: 4 Oct 20159 Oct 2015

Publication series

Name2015 International Conference on Compilers, Architecture and Synthesis for Embedded Systems, CASES 2015

Conference

ConferenceInternational Conference on Compilers, Architecture and Synthesis for Embedded Systems, CASES 2015
CountryNetherlands
CityAmsterdam
Period4/10/159/10/15

Keywords

  • Register allocator
  • register packing
  • shader processors

Fingerprint Dive into the research topics of 'Vector-aware register allocation for GPU shader processors'. Together they form a unique fingerprint.

Cite this