首页|基于申威1621数学库浮点溢出异常的检测与处理

基于申威1621数学库浮点溢出异常的检测与处理

郭思雨

基于申威1621数学库浮点溢出异常的检测与处理

郭思雨1
扫码查看

作者信息

  • 1. 中原工学院
  • 折叠

摘要

随着信息产业突飞猛进的发展,基础应用软件的重要性也在日益增长。现如今,面向基础应用的系统软件规模越做越复杂,其安全性也越来越难提高。但在某些重要的应用领域,系统软件的安全性显得尤为重要。在可靠性方面,软件比硬件更难提高的原因是基础软件会影响整体软件系统的安全性。在高性能计算应用领域,应用软件无法紧跟硬件体系结构发展的问题也倍受重视。基础数学函数库是高性能计算领域相关应用软件中的一个基础软件,由于基础数学函数的运算可能会影响许多相关的高性能应用,所以基础数学函数库运算的可靠性问题是不可忽视的。 本文的研究内容主要针对申威高性能基础数学函数库。浮点数是实数的有限精度编码,在进行浮点运算时,可能会导致不精确或者异常的结果,因此实现有效的浮点异常检测方法很重要。申威高性能基础数学函数库在申威1621处理器上针对glibc测试集进行了软件测试,测试结果显示基础数学函数库在该测试中出现了部分异常,本文对这些异常进行了处理。本文的主要研究内容和贡献如下: 1.本文提出了一种面向浮点数学函数的异常检测方法,该方法依据IEEE-754标准中定义的上溢、下溢、被零除、不精确和无效操作这5类异常,并结合申威高性能基础数学函数库中使用的浮点控制寄存器FPCR(Floating-point Control Register)以及IEEE-754标准定义的产生浮点异常的相关理论。通过将异常类型以及浮点运算指令进行对应分类,在程序编译时进行插桩以检测出浮点数学函数中出现的异常,同时记录代码覆盖率。 2.本文完成了对基础数学函数库在glibc测试集中测试到的浮点运算异常的处理。上溢及下溢异常主要参照glibc函数的实现算法进行处理;无效操作异常主要是对浮点特殊数NaN的处理,根据NaN自身与自身不相等的特性,对该异常进行处理。 实验将以上方法应用于基础数学函数库,对库中多个数学函数进行了测试。实验结果表明,本文提出的异常检测方法可以有效检测出浮点运算中产生的异常;并解决了基础数学函数库在glibc测试集中测试出的浮点运算异常。

关键词

基础数学函数库/数据处理/异常检测/高性能处理器

引用本文复制引用

授予学位

硕士

学科专业

控制工程

导师

王磊

学位年度

2022

学位授予单位

中原工学院

语种

中文

中图分类号

TP
段落导航相关论文