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 addition to the Profiler, it was also implemented three approximate computing techniques and the experimental results show the technique chosen by the tool presents a balance between error rate and speedup.