浮点异常检测简介

毕昇编译器提供程序运行时浮点运算异常检测功能,并支持打印异常产生时的函数堆栈信息。该功能旨在提升HPC应用中浮点计算异常问题的定位效率。由于检测效率限制,当前仅支持检测到浮点异常产生的函数,堆栈信息中栈顶函数默认打印最后一行的行号,具体异常行号在函数中的位置需用户分析。浮点异常检测的类型包括:

FE_DIVBYZERO

除0异常:如1.0/0.0

FE_INEXACT

不精确异常:浮点需要取舍,如1.0/10.0

FE_INVALID

无效异常:如sqrt(-1)

FE_OVERFLOW

上溢异常:如DBL_MAX*2.0

FE_UNDERFLOW

下溢异常:如DBL_MIN/pow(2.0,52)

FE_ALL_EXCEPT

以上所有异常并集