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:
Contributors:
Format
On-siteOn Demand
Beginner Level
20%
Intermediate Level
40%
Advanced Level
40%