LLVM-ACT: Uma ferramenta baseada em profiling para seleção de técnica de computação aproximada
Computação Aproximada, Profiling, LLVM, Transformação de Código.
Computação Aproximada é atualmente um paradigma em ascensão que busca substituir um pouco de acurácia de dados por aspectos como performance e eficiência energética. Em nível computacional de software, existem ferramentas dentro desse escopo que aplicam algumas técnicas de computação aproximada. No entanto, essas ferramentas são limitadas de forma que abrangem somente algum escopo específico, aplicam apenas uma das técnicas conhecidas e/ou precisam de anotações manuais nas aplicações para funcionarem. O estado da arte atual ainda possui questionamentos, como a existência ou não de uma relação entre as características da aplicação estudada e a escolha da técnica utilizada para sua exploração; permanece em aberto também qual seria a técnica mais adequada a cada determinado contexto. Dessa forma, essa dissertação propõe a implementação de uma ferramenta que, de acordo com as características das aplicações, escolha a técnica de computação aproximada mais adequada a ser aplicada naquele contexto. A ferramenta desenvolvida utiliza a infraestrutura de compilação do LLVM, onde cada etapa é implementada na forma de um LLVM Pass de análise ou transformação de código. Além do Profiler, foram implementadas três técnicas de computação aproximada e os resultados obtidos mostram que a técnica escolhida pela ferramenta apresenta uma relação equilibrada de custo-benefício se forem considerados os parâmetros de taxas de erro e aceleração.