LLVM-ACT: A profiling-based tool for selection of an approximate computing technique
Aproximate computing, Profiling, LLVM, Code transformation
Approximate Computing is currently an emerging paradigm that seeks to replace some data accuracy with aspects such as performance and energy efficiency. At the software level, there are tools within this scope that apply some approximate computation techniques. However, these tools are limited in covering only some specific scope, applying only one of the techniques, and/or needing manual annotations on applications. The current state of the art still has open questions, such as wether application features influentiates the technique's choice; what would be the most appropriate technique for each particular context. Thus, this dissertation proposes the implementation of a tool that, according to the application profiling, chooses the most appropriate approximate computing technique to be applied. The tool uses the LLVM compilation infrastructure, where each step is implemented in the form of an LLVM Pass of code analysis or transformation. In a first case study, two approximate computation techniques were implemented and the partial results obtained show a comparison between them based on the error rate of the tested applications.