领域特定语言的算法微分

摘要:使用算法微分(AD)可以自动化生成任意软件项目中的导数。这将生成可维护的导数,始终与软件的计算一致。如果在软件中使用特定领域语言(DSL),则目前的方法是使用相同的AD工具对DSL库进行微分。这种解决方案的缺点是性能降低,因为编译器无法再优化例如SIMD操作。本文中的新方法将DSL的类型和操作集成到AD工具中。它将是一种操作符重载工具,该工具是从DSL的抽象定义生成的。这种方法使编译器能够再次进行优化,例如对SIMD操作进行优化,因为所有计算仍然是使用原始数据类型进行的。这也将减少AD所需的内存,因为AD工具不再看到DSL实现中的语句。本文介绍了实现,并展示了解决方案性能的初步结果。

作者:Max Sagebaum and Nicolas R. Gauger

论文ID:1803.04154

分类:Mathematical Software

分类简称:cs.MS

提交时间:2018-03-13

PDF 下载: 英文版 中文版pdf翻译中