  Basic Linear Algebra Subprograms (BLAS) is a core library in scientific
computing and machine learning. This paper presents FT-BLAS, a new
implementation of BLAS routines that not only tolerates soft errors on the fly,
but also provides comparable performance to modern state-of-the-art BLAS
libraries on widely-used processors such as Intel Skylake and Cascade Lake. To
accommodate the features of BLAS, which contains both memory-bound and
computing-bound routines, we propose a hybrid strategy to incorporate fault
tolerance into our brand-new BLAS implementation: duplicating computing
instructions for memory-bound Level-1 and Level-2 BLAS routines and
incorporating an Algorithm-Based Fault Tolerance mechanism for computing-bound
Level-3 BLAS routines. Our high performance and low overhead are obtained from
delicate assembly-level optimization and a kernel-fusion approach to the
computing kernels. Experimental results demonstrate that FT-BLAS offers high
reliability and high performance -- faster than Intel MKL, OpenBLAS, and BLIS
by up to 3.50%, 22.14% and 21.70%, respectively, for routines spanning all
three levels of BLAS we benchmarked, even under hundreds of errors injected per
minute.
