计算机科学 > 编程语言
[提交于 2025年6月29日
]
标题: 在纯函数式数据并行语言中验证索引数组的性质
标题: Verifying Properties of Index Arrays in a Purely-Functional Data-Parallel Language
摘要: 本文提出了一种新颖的方法,用于自动验证具有非线性索引的纯数据并行程序的性质——这些性质以函数的前后条件形式表达。 程序由二阶数组组合器(例如,map、scan 和 scatter)和循环的嵌套组成。 关键思想是将数组表示为索引函数:程序是在这些索引函数上的变换,性质在这些变换上进行传播和推断。 我们的框架通过将索引函数提炼为代数(不)等式,并将其传递给基于 Fourier-Motzkin 的求解器来证明索引函数上的性质。 该框架具有实用性和可访问性:性质不限于可判定逻辑,而是精心选择以表达可以自动推理和推断的实际有用保证。 这些保证不仅限于程序正确性,还可以在整个编译器流水线中用于优化。 我们在纯数据并行语言 Futhark 中实现了我们的系统,并在七个应用上展示了其实用性,报告了平均验证时间为 1 秒。 两个案例研究展示了在 GPU 程序中消除动态验证如何带来显著的加速。
文献和引用工具
与本文相关的代码,数据和媒体
alphaXiv (什么是 alphaXiv?)
CatalyzeX 代码查找器 (什么是 CatalyzeX?)
DagsHub (什么是 DagsHub?)
Gotit.pub (什么是 GotitPub?)
Hugging Face (什么是 Huggingface?)
带有代码的论文 (什么是带有代码的论文?)
ScienceCast (什么是 ScienceCast?)
演示
推荐器和搜索工具
arXivLabs:与社区合作伙伴的实验项目
arXivLabs 是一个框架,允许合作伙伴直接在我们的网站上开发和分享新的 arXiv 特性。
与 arXivLabs 合作的个人和组织都接受了我们的价值观,即开放、社区、卓越和用户数据隐私。arXiv 承诺这些价值观,并且只与遵守这些价值观的合作伙伴合作。
有一个为 arXiv 社区增加价值的项目想法吗? 了解更多关于 arXivLabs 的信息.