Uppsala Architecture Research Team
Fix the code. Don´t tweak the hardware: A new compiler approach to Voltage-Frequency scaling
Traditional compiler approaches to optimize power efficiency aim to adjust voltage and frequency at runtime to match the code characteristics to the hardware (e.g., running memory-bound phases at a lower frequency). However, such approaches are constrained by three factors: (i) voltage-frequency transitions are too slow to be applied at instruction granularity, (ii) larger code regions are seldom unequivocally memory- or compute-bound, and, (iii) the available voltage scaling range for future technologies is rapidly shrinking. These factors necessitate new approaches to address power-efficiency at the code-generation level. We propose one such approach to automatically generate power-efficient code using a decoupled access/execute (DAE) model.
In DAE a program is split into tasks, where each task consists of two sufficiently coarse-grained phases to enable effective Dynamic Voltage Frequency Scaling (DVFS): (i) the access-phase for data prefetch (heavily memory-bound), and (ii) the execute-phase that performs the actual computation (heavily compute-bound). We provide a compiler methodology to automatically generate the access-phases for a task-based programming system. Our approach is capable of handling both affine (through a polyhedral analysis) and non-affine codes (through optimized task skeletons). Our evaluation shows that the automatically generated versions improve EDP by 25% on average compared to a coupled execution, without any performance degradation, and surpasses the EDP savings of the corresponding hand-crafted tasks by 5%.
Execution time of Original (CAE) vs. Manual DAE vs. Auto DAE: automatically generated access regions (blue) prefetch more data, without hurting performance.
Energy conspumtion of Original (CAE) vs. Manual DAE vs. Auto DAE: automatically generated access regions (blue) prefetch more data at a lower frequency and execute for less time at a higher frequency.
- Fix the code. Don't tweak the hardware: A new compiler approach to Voltage–Frequency scaling. In Proc. 12th International Symposium on Code Generation and Optimization, pp 262-272, ACM Press, New York, 2014. (URL, fulltext:postprint).
Best Presentation award to Alexandra Jimborean at CGO 2014 for "Fix the Code. Don't tweak the hardware: A new compiler approach to Voltage-Frequency scaling"