Technology and Applications of Compiler-Based Precision Tuning
摘要
In many computer architectures, high-precision calculations are inefficient and power-hungry. As a result, oftentimes it is valuable to exploit the tradeoff between precision and performance to better utilize the hardware in ways that otherwise wouldn’t be possible. Precision tuning is the practice of taking advantage of this tradeoff, and it is very labour-intensive for the programmer to perform manually. Hence there is an increasing interest for compiler-based autotuners which however are still imperfect and hard to use in practice. The underlying issue is that the analyses and transformations required for precision tuning do not have a sufficient level of generality to be applicable to most existing programs. We attempt to improve the state-of-the-art in precision tuning compilers by tackling this aspect, introducing a novel data type allocation methodology and approaches for handling mathematical functions and non-single-threaded programming. We also demonstrate the applicability of Precision Tuning to applications based on machine learning and safety-critical systems.