-
公开(公告)号:CN116431479A
公开(公告)日:2023-07-14
申请号:CN202310255633.6
申请日:2023-03-16
申请人: 河南省核芯微电子科技有限公司
摘要: 本发明公开了一种基于Dyninst的浮点程序精度损失检测方法,属于计算机运算技术领域;包括以下步骤:根据浮点数据格式分布不均匀的特点,生成在各个浮点数据区间均匀分布的输入数据;精度检测之前进行预处理,将检测出的特定精度操作排除在检测范围之外,减少误报精度损失;浮点程序解析,根据浮点表达式自动生成对应的MPFR代码段;语句级动态分析,定位精度损失源码位置。本发明检测方法通过生成均匀分布的输入数据,替代多数检测工具随机生成的输入数据,剔除浮点特定精度操作减少误报,根据浮点程序源码自动生成对应的高精度MPFR运算,动态检测精度损失并记录精度损失变化情况,生成浮点程序精度损失变化图,从而能够清晰的观察产生精度损失的源码位置。
-
公开(公告)号:CN116431479B
公开(公告)日:2024-06-28
申请号:CN202310255633.6
申请日:2023-03-16
申请人: 河南省核芯微电子科技有限公司
摘要: 本发明公开了一种基于Dyninst的浮点程序精度损失检测方法,属于计算机运算技术领域;包括以下步骤:根据浮点数据格式分布不均匀的特点,生成在各个浮点数据区间均匀分布的输入数据;精度检测之前进行预处理,将检测出的特定精度操作排除在检测范围之外,减少误报精度损失;浮点程序解析,根据浮点表达式自动生成对应的MPFR代码段;语句级动态分析,定位精度损失源码位置。本发明检测方法通过生成均匀分布的输入数据,替代多数检测工具随机生成的输入数据,剔除浮点特定精度操作减少误报,根据浮点程序源码自动生成对应的高精度MPFR运算,动态检测精度损失并记录精度损失变化情况,生成浮点程序精度损失变化图,从而能够清晰的观察产生精度损失的源码位置。
-
公开(公告)号:CN116431215A
公开(公告)日:2023-07-14
申请号:CN202310350979.4
申请日:2023-04-04
申请人: 河南省核芯微电子科技有限公司
摘要: 本发明公开了一种基于程序重写的浮点程序精度缺陷修复方法,用以提升浮点计算的准确性,属于浮点运算技术领域;该方法中以浮点程序作为输入,首先提出一种取样‑替换‑分类的方法,对特定精度的操作进行筛选隔离,其次进行函数之间的嵌入,之后应用一组表达式间的转换规则以及变量间的映射方法,进行表达式间的重组,生成具有更多重写可能性的表达式,接着使用工具FPtool对生成的表达式进行处理,然后对处理后的浮点表达式进行重写,最后经过多次迭代生成比初始程序浮点计算精度更高的目标程序。本发明通过在GNU科学计算库GSL中进行10个函数的实验,结果显示以误差小于1ULP的比例为指标,平均精度提升5.2个百分点,部分函数提升20个百分点。
-
-