We present the new software OpDiLib, a universal add-on for classical operator overloading AD tools that enables the automatic differentiation (AD) of OpenMP parallelized code. With it, we establish support for OpenMP features in a reverse mode operator overloading AD tool to an extent that was previously only reported on in source transformation tools. We achieve this with an event-based implementation ansatz that is unprecedented in AD. Combined with modern OpenMP features around OMPT, we demonstrate how it can be used to achieve differentiation without any additional modifications of the source code; neither do we impose a priori restrictions on the data access patterns, which makes OpDiLib highly applicable. For further performance optimizations, restrictions like atomic updates on the adjoint variables can be lifted in a fine-grained manner for any parts of the code. OpDiLib can also be applied in a semi-automatic fashion via a macro interface, which supports compilers that do not implement OMPT. In a detailed performance study, we demonstrate the applicability of OpDiLib for a pure operator overloading approach in a hybrid parallel environment. We quantify the cost of atomic updates on the adjoint vector and showcase the speedup and scaling that can be achieved with the different configurations of OpDiLib in both the forward and the reverse pass.


翻译:我们展示了新的软件 OpDiLib, 这是一种通用的软件 OpDiLib, 用于经典操作员超载 AD 工具, 使得 OpenMP 平行代码的自动区分( AD) 。 有了它, 我们就可以在反向模式操作员超载 AD 工具中建立对 Opim MP 功能的支持, 其程度以前只在源转换工具中报告过。 我们通过一个在 AD 上前所没有的以事件为基础的执行 ansatz 实现这一点。 加上在 OMPT 周围的现代 OpenMP 功能, 我们展示了如何在不进一步修改源代码的情况下, 实现差异化; 我们也没有先验地限制数据访问模式, 使得 OpdiLib 高度适用 OpdiLib 。 对于进一步的性能优化, 可以对代码中任何部分的原子变量更新进行细微调整。 OpdiLb 也可以通过宏观界面应用半自动方式应用, 支持不执行 OMPT 。 在详细的业绩研究中, 我们展示了ODIL 和前向式更新的版本格式中, 。

0
下载
关闭预览

相关内容

【经典书】C语言傻瓜式入门(第二版),411页pdf
专知会员服务
51+阅读 · 2020年8月16日
100+篇《自监督学习(Self-Supervised Learning)》论文最新合集
专知会员服务
161+阅读 · 2020年3月18日
Stabilizing Transformers for Reinforcement Learning
专知会员服务
57+阅读 · 2019年10月17日
强化学习最新教程,17页pdf
专知会员服务
171+阅读 · 2019年10月11日
MIT新书《强化学习与最优控制》
专知会员服务
273+阅读 · 2019年10月9日
计算机 | 国际会议信息5条
Call4Papers
3+阅读 · 2019年7月3日
谷歌足球游戏环境使用介绍
CreateAMind
31+阅读 · 2019年6月27日
Transferring Knowledge across Learning Processes
CreateAMind
26+阅读 · 2019年5月18日
IEEE | DSC 2019诚邀稿件 (EI检索)
Call4Papers
10+阅读 · 2019年2月25日
强化学习的Unsupervised Meta-Learning
CreateAMind
17+阅读 · 2019年1月7日
无监督元学习表示学习
CreateAMind
26+阅读 · 2019年1月4日
Unsupervised Learning via Meta-Learning
CreateAMind
41+阅读 · 2019年1月3日
分布式TensorFlow入门指南
机器学习研究会
4+阅读 · 2017年11月28日
Arxiv
6+阅读 · 2021年6月24日
Arxiv
9+阅读 · 2021年4月8日
Arxiv
6+阅读 · 2018年10月3日
VIP会员
相关VIP内容
【经典书】C语言傻瓜式入门(第二版),411页pdf
专知会员服务
51+阅读 · 2020年8月16日
100+篇《自监督学习(Self-Supervised Learning)》论文最新合集
专知会员服务
161+阅读 · 2020年3月18日
Stabilizing Transformers for Reinforcement Learning
专知会员服务
57+阅读 · 2019年10月17日
强化学习最新教程,17页pdf
专知会员服务
171+阅读 · 2019年10月11日
MIT新书《强化学习与最优控制》
专知会员服务
273+阅读 · 2019年10月9日
相关资讯
计算机 | 国际会议信息5条
Call4Papers
3+阅读 · 2019年7月3日
谷歌足球游戏环境使用介绍
CreateAMind
31+阅读 · 2019年6月27日
Transferring Knowledge across Learning Processes
CreateAMind
26+阅读 · 2019年5月18日
IEEE | DSC 2019诚邀稿件 (EI检索)
Call4Papers
10+阅读 · 2019年2月25日
强化学习的Unsupervised Meta-Learning
CreateAMind
17+阅读 · 2019年1月7日
无监督元学习表示学习
CreateAMind
26+阅读 · 2019年1月4日
Unsupervised Learning via Meta-Learning
CreateAMind
41+阅读 · 2019年1月3日
分布式TensorFlow入门指南
机器学习研究会
4+阅读 · 2017年11月28日
Top
微信扫码咨询专知VIP会员