This paper presents a novel optimization for differentiable programming named coarsening optimization. It offers a systematic way to synergize symbolic differentiation and algorithmic differentiation (AD). Through it, the granularity of the computations differentiated by each step in AD can become much larger than a single operation, and hence lead to much reduced runtime computations and data allocations in AD. To circumvent the difficulties that control flow creates to symbolic differentiation in coarsening, this work introduces phi-calculus, a novel method to allow symbolic reasoning and differentiation of computations that involve branches and loops. It further avoids "expression swell" in symbolic differentiation and balance reuse and coarsening through the design of reuse-centric segment of interest identification. Experiments on a collection of real-world applications show that coarsening optimization is effective in speeding up AD, producing several times to two orders of magnitude speedups.
翻译:本文为名为粗略优化的不同编程提供了一个新颖的优化。 它提供了一种系统化的方法来协调符号差异和算法差异( AD ) 。 通过它, AD 中每个步骤所区别的计算颗粒性可以大大大于一个操作,从而导致AD 中运行时间计算和数据分配的大大减少。 为了避免控制流动造成的困难,从而在粗略中造成象征性差异,这项工作引入了二进制计算法,这是一种新颖的方法,允许对涉及分支和循环的计算进行象征性推理和区分。 它进一步避免了符号差异和平衡中的“表情膨胀 ”, 通过设计以再利用为中心的利益识别部分来进行再利用和剖析。 对真实世界应用的收集实验表明, 焦优化对于加速 AD 有效, 生成了两次到两个数量级的加速。