计算机科学 > 数学软件
[提交于 2025年7月17日
]
标题: 基于源代码转换的性能可移植梯度计算
标题: Performance Portable Gradient Computations Using Source Transformation
摘要: 导数计算是优化、灵敏度分析、不确定性量化和非线性求解器的关键组成部分。自动微分(AD)是一种用于评估此类导数的强大技术,近年来已被集成到Jax、PyTorch和TensorFlow等编程环境中,以支持机器学习模型训练所需的导数计算,从而导致这些技术的广泛应用。C++语言由于众多因素已成为科学计算的事实标准,但语言复杂性使得在C++中采用AD技术变得困难,阻碍了强大的可微编程方法在C++科学模拟中的应用。随着GPU等架构的日益出现,这种情况变得更加严重,这些架构内存能力有限,需要大量的线程级并发。便携式科学代码依赖于领域特定的编程模型,如Kokkos,使得针对此类代码的AD更加复杂。在本文中,我们将研究使用Clad的源代码转换自动微分,以自动生成基于Kokkos代码的便携且高效的梯度计算。我们将讨论对Clad进行的修改,以区分Kokkos抽象。我们将通过将生成的梯度代码的时钟时间与输入函数在NVIDIA H100、AMD MI250x和Intel Ponte Vecchio GPU等前沿GPU架构上的时钟时间进行比较,来说明我们提出策略的可行性。对于这三种架构和所考虑的示例,评估最多10 000个梯度条目仅用了评估输入函数时钟时间的2.17倍。
文献和引用工具
与本文相关的代码,数据和媒体
alphaXiv (什么是 alphaXiv?)
CatalyzeX 代码查找器 (什么是 CatalyzeX?)
DagsHub (什么是 DagsHub?)
Gotit.pub (什么是 GotitPub?)
Hugging Face (什么是 Huggingface?)
带有代码的论文 (什么是带有代码的论文?)
ScienceCast (什么是 ScienceCast?)
演示
推荐器和搜索工具
arXivLabs:与社区合作伙伴的实验项目
arXivLabs 是一个框架,允许合作伙伴直接在我们的网站上开发和分享新的 arXiv 特性。
与 arXivLabs 合作的个人和组织都接受了我们的价值观,即开放、社区、卓越和用户数据隐私。arXiv 承诺这些价值观,并且只与遵守这些价值观的合作伙伴合作。
有一个为 arXiv 社区增加价值的项目想法吗? 了解更多关于 arXivLabs 的信息.