We present FailAmp, a novel LLVM program transformation algorithm that makes programs employing structured index calculations more robust against soft-errors. Without FailAmp, an offset error can go undetected; with FailAmp, all subsequent offsets are relativized, building on the faulty one. FailAmp can exploit ISAs such as ARM to further reduce overheads. We verify correctness properties of FailAMP using an SMT solver, and present a thorough evaluation using many HPC benchmarks under a fault injection campaign. FailAmp
provides full soft-error detection for address calculation while incurring an average overhead of around 5%.
Revised: August 12, 2020 |
Published: January 2, 2020
Citation
Briggs I., A. Das, M. Baranowski, V. Sharma, S. Krishnamoorthy, Z. Rakamaric, and G. Gopalakrishnan. 2020.FailAmp: Relativization Transformation for Soft Error Detection in Structured Address Generation.ACM Transactions on Architecture and Code Optimization 16, no. 4:Article No. 50.PNNL-SA-148816.doi:10.1145/3369381