Uppsala Architecture Research Team
Profiling-Assisted Decoupled Access-Execute
As energy efficiency became a critical factor in the embedded systems domain, dynamic voltage and frequency scaling (DVFS) techniques have emerged as means to control the system's power and energy efficiency. Additionally, due to the compact design, thermal issues become prominent.
State of the art work promotes software decoupled access-execution (DAE) that statically generates code amenable to DVFS techniques. The compiler builds memory-bound access phases, designed to prefetch data in the cache at low frequency, and compute-bound phases, that consume the data and perform computations at high frequency.
This work investigates techniques to find the optimal balance between lightweight and efficient access phases. A profiling step guides the selection of loads to be prefetched in the access phase. For applications whose behavior vary significantly with respect to the input data, the profiling can be performed online, accompanied by just-in-time compilation.
Execution of each target loop consists of three steps: profiling, JIT compilation of the customized Access version and execution of Access-Execute pairs to complete the loop execution.
We evaluated the benefits in energy efficiency and performance for both static and dynamic code generation and showed that precise prefetching of critical loads can result in 20% energy improvements, on average. DAE is particularly beneficial for embedded systems as by alternating access phases (executed at low frequency) and execute phases (at high frequency) DAE proactively reduces the temperature and therefore prevents thermal emergencies.
Execution time and energy are normalised with respect to the original execution at maximum frequency.
Profiling-Assisted Decoupled Access-Execute
Waern J., Ekemark P., Koukos K., Kaxiras S., Jimborean A.
In HIP3ES - International Workshop on High Performance Energy Efficient Embedded Systems