Static Multi-Versioning for Efficient Prefetching

University essay from Uppsala universitet/Institutionen för informationsteknologi

Author: Per Ekemark; [2016]

Keywords: ;

Abstract: Energy efficiency is one of the biggest challenges in modern computer architecture. Increased performance and improved energy efficiency is always in demand whether it is for battery longevity in mobile applications or thermal limits in high-performance computing. To reach the best result, hardware and software must compliment each other. Software Decoupled Access-Execute (DAE) is a technique where memory operations are rearranged and grouped together by the compiler. Larger sections of memory bound code allows more efficient use of hardware Dynamic Voltage and Frequency Scaling (DVFS), which can save energy without affecting performance. While previous work in automatically generated software DAE has used a one size fits all approach, this work adds a parametrisation aspect, making it possible to explore multiple versions of optimised code. Given a parameter, a heuristic can scale how aggressively DAE is applied in order to generate multiple optimised versions, increasing the chance of finding a better fit for a wider variety of programs. On targeted code in 7 programs from the SPEC CPU2006 benchmark suite, this technique yields an average energy delay product (EDP) improvement of 12 % (10 % energy and 2 % performance) over coupled execution (non-DAE), with a peak EDP improvement of 36 %. The multi-versioning aspect also proves useful as different programs, and even alternate workloads of the same program, reach peak performance with different optimisation versions.

  AT THIS PAGE YOU CAN DOWNLOAD THE WHOLE ESSAY. (follow the link to the next page)