[发明专利]一种GPGPU程序SDC错误检测方法及装置在审
申请号: | 202110903201.2 | 申请日: | 2021-08-06 |
公开(公告)号: | CN113610154A | 公开(公告)日: | 2021-11-05 |
发明(设计)人: | 魏晓辉;姜楠;谭婧炜佳;李翔;王晓楠;岳恒山 | 申请(专利权)人: | 吉林大学 |
主分类号: | G06K9/62 | 分类号: | G06K9/62;G06N20/00;G06T1/20 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 纪志超 |
地址: | 130000 吉*** | 国省代码: | 吉林;22 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 gpgpu 程序 sdc 错误 检测 方法 装置 | ||
1.一种GPGPU程序SDC错误检测方法,其特征在于,包括:
获取待检测程序,并确定所述待检测程序的待检测指令中具有高SDC倾向性的SDC脆弱指令;其中,所述待检测程序为GPGPU程序,SDC倾向性与所述待检测指令具有SDC错误的概率之间呈正相关关系;
根据所述待检测程序的各基本块中的所述SDC脆弱指令之间的依赖关系构建与各所述基本块对应的指令路径;其中,所述指令路径为包括具有依赖关系的多个所述SDC脆弱指令的第一类路径和/或包括与任一所述SDC脆弱指令均不具有依赖关系的单个所述SDC脆弱指令的第二类路径;
对所述指令路径进行复制得到相应的副本路径,并基于所述指令路径和所述副本路径对所述待检测程序中的SDC错误进行检测。
2.根据权利要求1所述的GPGPU程序SDC错误检测方法,其特征在于,所述获取待检测程序,确定所述待检测程序的待检测指令中具有高SDC倾向性的SDC脆弱指令,包括:
获取待检测程序,并确定所述待检测程序的待检测指令的特征信息;其中,所述特征信息表征所述待检测指令的SDC倾向性;
将所述待检测指令及其所述特征信息输入训练后的SDC脆弱性预测模型,以便所述SDC脆弱性预测模型输出所述待检测指令中具有高SDC倾向性的SDC脆弱指令;其中,所述SDC脆弱性预测模型为利用训练集对基于机器学习算法构建的空白模型进行训练后得到的模型,所述训练集包括样本指令和相应的样本标签,所述样本标签为基于所述样本指令的特征信息和对所述样本指令进行注错操作后的注错结果确定得到。
3.根据权利要求2所述的GPGPU程序SDC错误检测方法,其特征在于,所述将所述待检测指令及其所述特征信息输入训练后的SDC脆弱性预测模型之前,还包括:
获取样本指令,并确定所述样本指令的特征信息;
对所述样本指令进行预设次数的注错操作,并判断具有SDC错误的注错结果的次数是否大于预设阈值,如果是,则判断述特征信息是否满足SDC倾向性条件,如果是,则利用表征所述样本指令为SDC脆弱指令的样本标签对所述样本指令进行标注,以得到所述训练集;
利用所述训练集对基于深度学习算法构建的空白模型进行训练,以得到训练后的SDC脆弱性预测模型。
4.根据权利要求2或3所述的GPGPU程序SDC错误检测方法,其特征在于,所述特征信息包括指令属性信息、错误传播信息及共享内存信息;
其中,所述指令属性信息为表征指令类型、指令功能的特征向量,所述错误传播信息为错误传播过程中的全部指令数、屏蔽错误指令数、程序崩溃指令数的特征向量,所述共享内存信息为共享加载信息、共享存储信息的特征向量。
5.根据权利要求1所述的GPGPU程序SDC错误检测方法,其特征在于,所述对所述指令路径进行复制得到相应的副本路径,包括:
将所述指令路径中的每个所述SDC脆弱指令所在原寄存器中的值存储至新寄存器中,以得到相应的副本路径。
6.根据权利要求1所述的GPGPU程序SDC错误检测方法,其特征在于,所述基于所述指令路径和所述副本路径对所述待检测程序中的SDC错误进行检测,包括:
通过在所述副本路径的结尾插入比较指令的方式,将所述副本路径中的指令运行结果与所述指令路径中的指令运行结果进行比对,如果不一致,则判定所述指令路径中的所述SDC脆弱指令存在SDC错误。
7.根据权利要求1或2或3或5或6所述的GPGPU程序SDC错误检测方法,其特征在于,所述基于所述指令路径和所述副本路径对所述待检测程序中的SDC错误进行检测之后,还包括:
如果检测到SDC错误,则发出告警信息,以根据所述告警信息对存在SDC错误的所述待检测程序进行修复处理。
8.一种GPGPU程序SDC错误检测装置,其特征在于,包括:
获取模块,用于获取待检测程序,并确定所述待检测程序的待检测指令中具有高SDC倾向性的SDC脆弱指令;其中,所述待检测程序为GPGPU程序,SDC倾向性与所述待检测指令具有SDC错误的概率之间呈正相关关系;
构建模块,用于根据所述待检测程序的各基本块中的所述SDC脆弱指令之间的依赖关系构建与各所述基本块对应的指令路径;其中,所述指令路径为包括具有依赖关系的多个所述SDC脆弱指令的第一类路径和/或包括与任一所述SDC脆弱指令均不具有依赖关系的单个所述SDC脆弱指令的第二类路径;
复制模块,用于对所述指令路径进行复制得到相应的副本路径,并基于所述指令路径和所述副本路径对所述待检测程序中的SDC错误进行检测。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于吉林大学,未经吉林大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110903201.2/1.html,转载请声明来源钻瓜专利网。