×

识别数值计算应用程序中的可变数值表达式。 (英语) Zbl 07316782号

摘要:使用浮点数进行数值计算的结果取决于执行平台,我们将其定义为硬件和支持该硬件的工具(编译器等)。这种依赖性的一个原因是编译器在决定如何计算浮点表达式时有很大的自由度,因为这种计算没有标准化(甚至在IEEE-754等标准中也没有)。另一个原因是硬件可能提供也可能不提供像Fused Multiply Add(FMA)这样的专用指令,如果提供了,编译器可以以不同的方式利用FMA功能。我们称之为表达式不稳定的如果对于某些输入,其值在平台参数之间存在差异。跨异构并行体系结构的差异可能会变得特别大。这破坏了OpenCL等编程标准所承诺的软件可移植性,并严重影响了结果的一般再现性。在本文中,我们提出了一种技术,可以预测在不同平台上执行时包含可变表达式的程序的输出边界。使用随机选择的输入,我们将边界与跨各种平台(包括CPU和GPU)运行代码的结果进行比较。我们的结果表明,理论界相对较紧(在一个数量级内),可以帮助用户确定结果应该在哪里稳定的例如,通过限制表达式重新排序。

MSC公司:

65年xx月 数值算法的计算机方面
65Gxx型 误差分析和区间分析
68新元 软件理论
PDF格式BibTeX公司 XML格式引用
全文: DOI程序

参考文献:

[1] Bao,T。;Zhang,X.,浮点程序执行中不稳定性问题的实时检测,(ACM SIGPLAN 2013年OOPSLA国际会议,SPLASH 2013部分(2013)),817-832
[2] 巴尔,E.T。;Vo,T。;勒·V。;Su,Z.,浮点异常的自动检测,(第40届ACM SIGPLAN-SIGACT编程语言原理年会(2013)),549-560·Zbl 1301.68087号
[3] M.Bayati、M.Leeser、Y.Gu、T.Wahl,《识别OpenCL应用程序中的易失性数字表达式》,http://www.coe.neu.edu/Research/rcl/projects/FPReproductibility/matcom.html; M.Bayati,M.Leeser,Y.Gu,T.Wahl,识别OpenCL应用程序中的可变数字表达式,http://www.coe.neu.edu/Research/rcl/projects/FPReproductibility/matcom.html
[4] 博尔多,S。;Jourdan,J。;勒罗伊,X。;Melquiond,G.,一个支持浮点运算的经过形式验证的C编译器,(ARITH 2013(2013)),107-115
[5] 博尔多,S。;Nguyen,T.M.T.,数值程序的硬件依赖证明,(第二届NASA形式方法研讨会(NFM)2010(2010)),14-23
[6] 博尔多,S。;Nguyen,T.M.T.,《编译器优化时数值程序的证明》,ISSE,7,2,151-160(2011)
[7] 蒋,W。;Gopalakrishnan,G。;Rakamaric,Z.,实用浮点发散检测,(并行计算语言和编译器(2015)),271-286
[8] M.J.Corden,D.Kreitzer,2010年。使用“英特尔®编译器”的浮点结果的一致性或为什么我的应用程序不总是给出相同的答案?,http://software.intel.com/sites/default/files/article/164389/fp-consistency-102511.pdf; M.J.Corden,D.Kreitzer,2010年。“使用英特尔®编译器的浮点结果的一致性”或“为什么我的应用程序总是给出相同的答案?”?,http://software.intel.com/sites/default/files/article/164389/fp-consistency-102511.pdf
[9] 库索特,P。;库索特,R.,《抽象解释:通过构造或近似不动点对程序进行静态分析的统一格模型》(ACM编程语言原理研讨会(1977)),238-252
[10] A.Danalis,G.Marin,C.McCurdy,J.Meredith,P.Roth,K.Spafford,V.Tipparaju,J.Vetter,可扩展异构计算(SHOC)基准套件。https://github.com/vetter/shoc/wiki; A.Danalis,G.Marin,C.McCurdy,J.Meredith,P.Roth,K.Spafford,V.Tipparaju,J.Vetter,可扩展异构计算(SHOC)基准套件。https://github.com/vetter/shoc/wiki
[11] Goubault,E.,浮点运算精度的静态分析,(静态分析,第八届国际研讨会,SAS 2001(2001)),234-259·Zbl 0997.68518号
[12] 顾毅。;Wahl,T.,使用起源分析稳定浮点程序,(VMCAI(2017)),228-245·Zbl 1484.68048号
[13] 顾毅。;Wahl,T。;巴亚提,M。;Leeser,M.,科学数值计算中的行为不可移植性,(EURO-PAR(2015)),558-569
[14] Monniaux,D.,验证浮点计算的陷阱,ACM Trans。程序。语言系统。,30, 3, 12:1-12:41 (2008)
[15] 摩尔,R.E。;Kearfott,R.B。;Cloud,M.J.,区间分析导论(2009),SIAM·Zbl 1168.65002号
[16] Nguyen,T.M.T。;Marché,C.,数字程序的硬件依赖证明,(认证程序和证明-第一届国际会议,CPP 2011(2011)),314-329·兹比尔1350.68241
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。