NSan: A Floating-Point Numerical Sanitizer

02/25/2021
by   Clement Courbet, et al.
0

Sanitizers are a relatively recent trend in software engineering. They aim at automatically finding bugs in programs, and they are now commonly available to programmers as part of compiler toolchains. For example, the LLVM project includes out-of-the-box sanitizers to detect thread safety (tsan), memory (asan,msan,lsan), or undefined behaviour (ubsan) bugs. In this article, we present nsan, a new sanitizer for locating and debugging floating-point numerical issues, implemented inside the LLVM sanitizer framework. nsan puts emphasis on practicality. It aims at providing precise, and actionable feedback, in a timely manner. nsan uses compile-time instrumentation to augment each floating-point computation in the program with a higher-precision shadow which is checked for consistency during program execution. This makes nsan between 1 and 4 orders of magnitude faster than existing approaches, which allows running it routinely as part of unit tests, or detecting issues in large production applications.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
08/13/2018

Eliminating Unstable Tests in Floating-Point Programs

Round-off errors arising from the difference between real numbers and th...
research
07/26/2022

Finding Deep-Learning Compilation Bugs with NNSmith

Deep-learning (DL) compilers such as TVM and TensorRT are increasingly u...
research
04/10/2023

Better Together: Unifying Datalog and Equality Saturation

We present egglog, a fixpoint reasoning system that unifies Datalog and ...
research
07/31/2021

A Study of the Floating-Point Tuning Behaviour on the N-body Problem

In this article, we apply a new methodology for precision tuning to the ...
research
02/27/2020

Bringing freedom in variable choice when searching counter-examples in floating point programs

Program verification techniques typically focus on finding counter-examp...
research
11/14/2018

Multi-level analysis of compiler induced variability and performance tradeoffs

Floating-point arithmetic is the computational foundation of numerical s...
research
07/14/2022

Sound Randomized Smoothing in Floating-Point Arithmetics

Randomized smoothing is sound when using infinite precision. However, we...

Please sign up or login with your details

Forgot password? Click here to reset