Expression Isolation of Compiler-Induced Numerical Inconsistencies in Heterogeneous Code

Expression Isolation of Compiler-Induced Numerical Inconsistencies in Heterogeneous Code

Monday, May 22, 2023 3:05 PM to 3:30 PM · 25 min. (Europe/Berlin)
Hall 4 - Ground Floor
Research Paper
Parallel Programming Languages

Information

As the demand for developing and porting numerical applications to heterogeneous computing platforms increases, such programs may exhibit numerical inconsistencies caused by architectural differences and aggressive compiler optimizations. These numerical inconsistencies can negatively impact reproducibility and debugging. This paper presents Ciel, designed to identify the root cause of compiler-induced numerical inconsistencies in heterogeneous programs. Ciel uses a floating-point precision enhancement strategy, guided by a recursive bisection search algorithm with increasing search granularity, to identify the program expressions that induce numerical inconsistencies due to compiler optimizations. Ciel achieves 99.4% precision in isolating numerical inconsistencies in both CPU and GPU programs, including 330 synthetic GPU programs, benchmark applications like NAS Parallel Benchmarks and Rodinia, and real-world scientific applications such as CLOUDSC, a cloud microphysics parameterization mini-app for the ECMWF IFS. Furthermore, when compared with the state of the art, which only isolates lines of code in CPU programs, Ciel runs 24.5% fewer searches for statement isolation, and produces more precise results for 84.9% of the programs. Finally, manual inspection of hundreds of compiler-induced numerical inconsistencies in heterogeneous programs reveals common characteristics.
Contributors:
Format
On-siteOn Demand
Beginner Level
20%
Intermediate Level
40%
Advanced Level
40%

Log in