Charles Explorer logo
🇬🇧

Multistage Mixed-precision Iterative Refinement

Publication at Faculty of Mathematics and Physics |
2022

Abstract

Low precision arithmetic, in particular half precision (16-bit) floating point arithmetic, is now available in commercial hardware and can offer significant savings in computation and communication costs with proportional savings in energy. Motivated by this, there has been a renewed interest in mixed precision iterative refinement schemes for solving linear systems, and new variants of GMRES-based iterative refinement have been developed.

Each particular variant with a given combination of precisions leads to different condition number-based constraints for convergence of the backward and forward errors, and each has different performance costs. The constraints for convergence given in the literature are, as an artifact of the analyses, often overly strict in practice, and thus could lead a user to select a more expensive variant when a less expensive one would have sufficed.

In this talk, we give an overview of existing approaches to mixed precision iterative refinement and present a new multistage mixed precision iterative refinement solver which aims to combine existing mixed precision approaches to balance performance and accuracy and improve usability. For a user-specified initial combination of precisions, the algorithm begins with the least expensive approach and convergence is monitored via inexpensive computations with quantities produced during the iteration.

If slow convergence or divergence is detected using particular stopping criteria, the algorithm switches to use a more expensive, but more reliable variant. A novel aspect of our approach is that, unlike existing implementations, our algorithm first attempts to use "stronger" GMRES-based solvers for the solution update before resorting to increasing the precision(s).

In some scenarios, this can avoid the need to refactorize the matrix in higher precision.