NSan: A floating-point numerical sanitizer

7Citations
Citations of this article
9Readers
Mendeley users who have this article in their library.

Abstract

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.

Cite

CITATION STYLE

APA

Courbet, C. (2021). NSan: A floating-point numerical sanitizer. In CC 2021 - Proceedings of the 30th ACM SIGPLAN International Conference on Compiler Construction (pp. 83–93). Association for Computing Machinery, Inc. https://doi.org/10.1145/3446804.3446848

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free