Bridging the gap between static and dynamic approaches for FP variable precision tuning

StaticFPTuner is an open-source SW tool for assigning the best precision to the set of FP variables composing a transprecision application (see https://github.com/oprecomp/StaticFPTuner). This approach combines an optimization problem with Machine Learning (ML) models. Theoptimization problem aims at minimizing the precision of the FP variables while bounding the error of the application output; the ML models serve to express the relationship between variables precision and computation error (due to the impossibility to express this function in an analytical way).

StaticFPTuner has a static behaviour since the variable precision is decided before the compilation, which is then performed via FlexFloat to obtain the transprecisionfeature; no precision tuning is performed at run time. However, there exist also dynamic approaches for variable precision refinement (see Lee et al, 2018, “Energy-Efficient Iterative Refinement Using Dynamic Precision, https://ieeexplore.ieee.org/document/8395429).

In the context of OPRECOMP project, there is a great unexplored potential in combining the benefits of static and dynamic approaches for precision tuning, for instance by alternating static phases with dynamic iterative steps. We are looking for project proposals aiming at filling this gap and merging these two methodologies (prototypes for both static and dynamic tuning tools are already available and written in Python).

Recommended experience:

  • Python (required)
  • Machine Learning (optional but useful)
  • Optimization (optional but useful)

For additional information, you can contact: Andrea Borghesi