TY - GEN
T1 - Inferring Parametric Energy Consumption Functions at Different Software Levels
T2 - 4th International Workshop on Foundational and Practical Aspects of Resource Analysis, FOPARA 2015
AU - Liqat, Umer
AU - Georgiou, Kyriakos
AU - Kerrison, Steve
AU - Lopez-Garcia, Pedro
AU - Gallagher, John P.
AU - Hermenegildo, Manuel V.
AU - Eder, Kerstin
PY - 2016
Y1 - 2016
N2 - The static estimation of the energy consumed by program executions is an important challenge, which has applications in program optimization and verification, and is instrumental in energy-aware software development. Our objective is to estimate such energy consumption in the form of functions on the input data sizes of programs. We have developed a tool for experimentation with static analysis which infers such energy functions at two levels, the instruction set architecture (ISA) and the intermediate code (LLVM IR) levels, and reflects it upwards to the higher source code level. This required the development of a translation from LLVM IR to an intermediate representation and its integration with existing components, a translation from ISA to the same representation, a resource analyzer, an ISA-level energy model, and a mapping from this model to LLVM IR. The approach has been applied to programs written in the XC language running on XCore architectures, but is general enough to be applied to other languages. Experimental results show that our LLVM IR level analysis is reasonably accurate (less than 6.4% average error vs. hardware measurements) and more powerful than analysis at the ISA level. This paper provides insights into the trade-off of precision versus analyzability at these levels.
AB - The static estimation of the energy consumed by program executions is an important challenge, which has applications in program optimization and verification, and is instrumental in energy-aware software development. Our objective is to estimate such energy consumption in the form of functions on the input data sizes of programs. We have developed a tool for experimentation with static analysis which infers such energy functions at two levels, the instruction set architecture (ISA) and the intermediate code (LLVM IR) levels, and reflects it upwards to the higher source code level. This required the development of a translation from LLVM IR to an intermediate representation and its integration with existing components, a translation from ISA to the same representation, a resource analyzer, an ISA-level energy model, and a mapping from this model to LLVM IR. The approach has been applied to programs written in the XC language running on XCore architectures, but is general enough to be applied to other languages. Experimental results show that our LLVM IR level analysis is reasonably accurate (less than 6.4% average error vs. hardware measurements) and more powerful than analysis at the ISA level. This paper provides insights into the trade-off of precision versus analyzability at these levels.
KW - Embedded systems
KW - Energy consumption analysis
KW - Resource usage analysis
KW - Static analysis
UR - http://www.scopus.com/inward/record.url?scp=85001881034&partnerID=8YFLogxK
U2 - 10.1007/978-3-319-46559-3_5
DO - 10.1007/978-3-319-46559-3_5
M3 - Conference Contribution (Conference Proceeding)
SN - 9783319465586
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 81
EP - 100
BT - Foundational and Practical Aspects of Resource Analysis
PB - Springer International Publishing AG
Y2 - 11 April 2015 through 11 April 2015
ER -