作者: Michael Innes
DOI:
关键词:
摘要: This paper presents reverse-mode algorithmic differentiation (AD) based on source code transformation, in particular of the Static Single Assignment (SSA) form used by modern compilers. The approach can support control flow, nesting, mutation, recursion, data structures, higher-order functions, and other language constructs, output is given to an existing compiler produce highly efficient differentiated code. Our implementation a new AD tool for Julia language, called Zygote, which high-level dynamic semantics while transparently compiling adjoint under hood. We discuss benefits this both usability performance tools.