Debugging and detecting numerical errors in computation with posits
Debugging and detecting numerical errors in computation with posits
复制标题
DOI:
10.1145/3385412.3386004
复制
发表时间:
2020-06
期刊:
影响因子:
--
通讯作者:
Sangeeta Chowdhary;Jay P. Lim;Santosh Nagarakatte
中科院分区:
文献类型:
--
作者:
Sangeeta Chowdhary;Jay P. Lim;Santosh Nagarakatte
Posit is a recently proposed alternative to the floating point representation (FP). It provides tapered accuracy. Given a fixed number of bits, the posit representation can provide better precision for some numbers compared to FP, which has generated significant interest in numerous domains. Being a representation with tapered accuracy, it can introduce high rounding errors for numbers outside the above golden zone. Programmers currently lack tools to detect and debug errors while programming with posits. This paper presents PositDebug, a compile-time instrumentation that performs shadow execution with high precision values to detect various errors in computation using posits. To assist the programmer in debugging the reported error, PositDebug also provides directed acyclic graphs of instructions, which are likely responsible for the error. A contribution of this paper is the design of the metadata per memory location for shadow execution that enables productive debugging of errors with long-running programs. We have used PositDebug to detect and debug errors in various numerical applications written using posits. To demonstrate that these ideas are applicable even for FP programs, we have built a shadow execution framework for FP programs that is an order of magnitude faster than Herbgrind.